首页 > 编程知识 正文

python人脸识别训练模型,卷积神经网络如何做图像识别

时间:2023-05-05 23:22:08 阅读:128741 作者:547

本文介绍如何使用由python编写的卷积神经网络代码(使用axdby玩的声音),以及如何比较卷积神经网络与常规神经网络预测的效果。

这个例子是一个经典的识别MNIST手写的AI程序。 以下手写数字分别表示504192。 该程序训练此类样本,并通过测试集验证正确率。

稍后我会单独写文章介绍卷积神经网络的原理。

准备:

安装虚拟机

pip安装虚拟件

创建env

虚拟新闻

Cd新冠

source bin/activate

安装Theano库

pip install Theano

下载代码

git clone https://github.com/m Nielsen/neural-networks-and-deep-learning.git

卷积神经网络位于src/network3.py上。 作者编写代码后,Theano库更新,downsample被丢弃,因此network3.py需要进行两处修改。 “#”之后是原始代码,没有“#”的是修改后的代码。

# from the ano.tensor.signalimportdownsample

from the ano.tensor.signal.poolimportpool _ 2d

.

# pooled _ out=down sample.max _ pool _ 2d (input=conv _ out,ds=self.poolsize,ignore_border=True ) )

pooled _ out=pool _ 2d (input=conv _ out,ws=self.poolsize,ignore_border=True ) )

进入python

Cd neural-networks-and-deep-learning/src

phtyon

普通神经网络

使用常规的全连接层模型训练各种参数。 每个参数的意思是稍后专门写文章介绍。 也请参考作者的书。

单隐藏层

100隐藏新闻

60 epochs

学习速率:=0.1

迷你batch size : 10

无规则化

首先通过普通神经网络训练,执行指令:

导入网络3

来自网络3导入网络

fromnetwork3importconvpoollayer,FullyConnectedLayer,SoftmaxLayer

training_data,validation_data,test _ data=network3. load _ data _ shared (

mini_batch_size=10

网络=网络([

fullyconnectedlayer(n_in=784,n_out=100 )、

softmaxlayer(n_in=100,n_out=10 ) ],mini_batch_size )。

net.SGD(training_data,60,mini_batch_size,0.1,

validation_data,test_data )

执行结果

Training mini-batch number 0

培训mini-batch number 1000

培训mini-batch number 2000

培训mini-batch number 3000

培训mini-batch number 4000

epoch 0:验证加速92.62 %

thisisthebestvalidationaccuracytodate。

thecorrespondingtestaccuracyis 92.00 %

培训mini-batch number 5000

培训mini-batch number 6000

培训mini-batch number 7000

培训mini-batch number 8000

培训mini-batch number 9000

epoch 1:验证加速94.64 %

thisisthebestvalidationaccuracytodate。

thecorrespondingtestaccuracyis 94.10 %

.

培训mini-batch number 295000

培训mini-batch number 296000

培训mini-batch number 297000

培训mini-batch number 298000

培训mini-batch number 299000

epoch 59:验证加速97.76 %

thisisthebestvalidationaccuracytodate。

thecorrespondingtestaccuracyis 97.79 %

完成培训网络。

bestvalidationaccuracyof 97.76 % obtainedatiteration 29999

Correspondingtestaccuracyof 97.79 %

准确率为97.79%,或错误率为2.21%

卷积神经网络

使用卷积模型训练各种参数如下。

5个本地接收字段: 5x 5

stride length : 1

功能映射: 20

最大轮询层

2个pooling windows :

执行命令

网络=网络([

convpoollayer (image _ shape=(mini _ batch _ size,1,28,28 ),

filter _ shape=(20,1,5,5 ),

poolsize=(2,2 )、

fullyconnectedlayer (n _ in=20 * 12 * 12,n_out=100 )、

softmaxlayer(n_in=100,n_out=10 ) ],mini_batch_size )。

net.SGD(training_data,60,mini_batch_size,0.1,

validation_data,test_data )

输出功率

Training mini-batch number 0

培训mini-batch number 1000

培训mini-batch number 2000

培训mini-batch number 3000

培训mini-batch number 4000

epoch 0:验证加速94.18 %

thisisthebestvalidationaccuracytodate。

thecorrespondingtestaccuracyis 93.43 %

培训mini-batch number 5000

培训mini-batch number 6000

培训mini-batch number 7000

培训mini-batch number 8000

培训mini-batch number 9000

epoch 1:验证加速96.12 %

thisisthebestvalidationaccuracytodate。

thecorrespondingtestaccuracyis 95.85 %

.

培训mini-batch number 295000

培训mini-batch number 296000

培训mini-batch number 297000

培训mini-batch number 298000

培训mini-batch number 299000

epoch 59:验证加速98.74 %

完成培训网络。

bestvalidationaccuracyof 98.74 % obtainedatiteration 214999

Correspondingtestaccuracyof 98.84 %

命中率为98.84%,或者错误率为1.16%,错误率几乎下降了一半!

相关报道

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。