网站首页 > 技术文章 正文
上期文章我们分享了如何获取人脸数据以及保存人脸数据,有了上次搜集的人脸数据集,我们就可以对人脸的数据进行神经网络的训练,本期的神经网络基于SVM支持向量机算法,由于SVM算法可以使用小数据集进行神经网络的训练,我们本期基于SVM下的SVC分类器算法来训练神经网络
还记得我们分享过的车牌识别,其车牌识别的神经网络训练也是使用了SVM算法来进行神经网络的训练
svm.SVC分类器
支持向量机(support vector machine)是一种分类算法,但是也可以做回归,根据输入的数据不同可做不同的模型(若输入标签为连续值则做回归,若输入标签为分类值则用SVC做分类)。
sklearn里对SVM的算法实现在包sklearn.svm里
SVM.SVC分类器:
C:C-SVC的惩罚参数C?默认值是1.0
C越大,相当于惩罚松弛变量,希望松弛变量接近0,即对误分类的惩罚增大,趋向于对训练集全分对的情况,这样对训练集测试时准确率很高,但泛化能力弱。C值小,对误分类的惩罚减小,允许容错,将他们当成噪声点,泛化能力较强。
函数参数:
kernel :核函数,默认是rbf,可以是‘linear’,‘poly’, ‘rbf’
liner – 线性核函数:u'v
poly – 多项式核函数:(gamma*u'*v + coef0)^degree
rbf – RBF高斯核函数:exp(-gamma|u-v|^2)
degree :多项式poly函数的维度,默认是3,选择其他核函数时会被忽略
gamma : ‘rbf’,‘poly’ 和‘sigmoid’的核函数参数。默认是’auto’,则会选择1/n_features
coef0 :核函数的常数项。对于‘poly’和 ‘sigmoid’有用
probability :是否采用概率估计.默认为False
shrinking :是否采用shrinking heuristic方法,默认为true
tol :停止训练的误差值大小,默认为1e-3
cache_size :核函数cache缓存大小,默认为200
class_weight :类别权重,字典形式传递。设置第几类的参数C为weight*C(C-SVC中的C)
verbose :允许冗余输出
max_iter :最大迭代次数。-1为无限制
decision_function_shape :‘ovo’, ‘ovr’ or None, default=None3
random_state :数据洗牌时的种子值,int值
代码实战
1、读取人脸数据
上期文章我们提取了几个不同人脸的人脸数据,使用pickle.load方法来加载数据
2、训练神经网络
在训练神经网络前,我们把人脸数据的 label值进行编码转换为transform数据,以便能够传递给神经网络
14行进行了神经网络训练,核函数采用linear线性函数,惩罚参数C值设置为1,采用概率估计
当然,你可以尝试其他核函数进行神经网络的训练,以便查看每种核函数的不同
3、保存预训练模型与label编码
待神经网络训练完成后,我们保存一下神经网络训练的模型,以便后期进行人脸的识别
保存人脸label,以便后期进行神经网络的人脸识别使用
通过以上的代码,就可以对人脸数据进行神经网络的训练以及保存,保存的预训练模型是我们下期进行人脸识别的主要神经网络模型,小编使用了自己最喜欢的一位女明星的照片来进行训练,使用颖宝的照片,概率在80%以上,使用其他美女照片,概率很低,这便达到了我们神经网络训练的目的。
有了预训练模型,下期就分享一下如何使用模型来进行人脸识别
猜你喜欢
- 2024-10-12 神经网络训练模型 神经网络训练好的模型怎么用
- 2024-10-12 人工智能Keras的第一个图像分类器(CNN卷积神经网络的图片识别)
- 2024-10-12 使用Keras进行深度学习(二):CNN讲解及实践
- 2024-10-12 pytorch利用CNN卷积神经网络来识别手写数字
- 2024-10-12 Tensorflow入门教程-第五课:TensorFlow中的卷积神经网络(CNN)
- 2024-10-12 7 大类卷积神经网络(CNN)创新综述
- 2024-10-12 卷积神经网络(CNN)简要教程 卷积神经网络代码入门
- 2024-10-12 测试开发 | 卷积神经网络(CNN):图像识别的骨干
- 2024-10-12 C++ 中的卷积神经网络 (CNN) c++实现卷积神经网络
- 2024-10-12 MNIST数字识别——CNN篇 数字识别网络
你 发表评论:
欢迎- 最近发表
-
- 在 Spring Boot 项目中使用 activiti
- 开箱即用-activiti流程引擎(active 流程引擎)
- 在springBoot项目中整合使用activiti
- activiti中的网关是干什么的?(activiti包含网关)
- SpringBoot集成工作流Activiti(完整源码和配套文档)
- Activiti工作流介绍及使用(activiti工作流会签)
- SpringBoot集成工作流Activiti(实际项目演示)
- activiti工作流引擎(activiti工作流引擎怎么用)
- 工作流Activiti初体验及在数据库中生成的表
- Activiti工作流浅析(activiti6.0工作流引擎深度解析)
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)