python 卷积神经网络

实验二:卷积神经网络

  • 手写体识别
  • 数据准备

使用MNIST数字图像训练卷积神经网络

数据重塑和标签向量化

  • 建立基础卷积模型

卷积模型是Conv2D层和MaxPooling2D层的堆叠,本例中卷积神经网络处理大小为(28,28,1)的输入张量,这正是MNIST图像的格式

  • 建立分类卷积模型

  • 模型建立与训练

设置训练容器

优化算法、损失函数、监督矩阵

训练模型

指定输入、输出,指定迭代次数,指定数据块大小

  • 结果测试

  • 自主练习
  1. 改变网络的深度和宽度

 

深度

宽度

训练集精度

测试集精度

基准

3

64

0.9938

 

0.9919000267982483

 

深度不变,减小宽度

3

32

0.9920

 

0.9886000156402588

 

深度不变,增大宽度

3

128

0.9950

 

0.9922999739646912

 

宽度不变,减小深度

2

64

0.9954

 

0.9873999953269958

 

宽度不变,增大深度

4

64

0.9936

 

0.9891999959945679

 

由此可见,增大卷积神经网络的宽度,训练集和测试集上的精度都有所增加。改变深度会导致测试集上的精度均有所下降。

  1. 改变优化算法

优化算法

训练集精度

测试集精度

Sgd

0.9986
0.9933000206947327

Adagrad

0.9924
0.9912999868392944

Adadelta

0.9944
0.9927999973297119

RMSprop

0.9944
0.9918000102043152

Adam

0.9934
0.9897000193595886

Adamax

0.9922
0.9911000132560731

由此可见,sgd算法对于该问题最有效

  • 猫、狗的二分类问题
  • 数据准备

从数据目录中选取猫、狗的1000张、500张、500张图片分别作为训练数据、验证数据、测试数据,并建立相关目录进行存放。

  • 数据预处理

将JPEG文件解码为RGB像素网格

将这些像素网格转换为浮点数向量

将像素值(0-255)缩放到[0,1]区间

  • 模型建立

建立卷积层和池化层进行模型训练

使用分类层进行二分类猫狗图片

  • 模型训练

使用批量生成器拟合模型

  • 数据增强

数据增强是从现有的训练样本中生成更多的训练模型,其方法是利用多种能够生成可信图像的随机变换来增加样本。其目标是,模型在训练时不会两次查看完全相同的图像。这让模型能够观察到数据的更多内容,从而具有更好的泛化能力。

通过变换、旋转、压缩等来产生新的数据

  • 随机丢弃

在模型中添加一个Dropout层,添加在密集连接分类器前

  • 结果分析
  • 预训练下的猫狗分类(不使用数据增强)
  • 预训练模型

使用VGG16卷积网络提取特征

  • 分类模型建立

  • 模型建立与训练

设置训练容器

训练模型

  • 结果展示

 


pytho

  • 1
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值