《机器学习从入门到入职》卷积神经网络-keras-数据集CIFAR10

实验代码链接:

CSDN:

https://download.csdn.net/download/qq_38649386/12674161

GitHub:

总目录:

https://github.com/kernstarc/-keras-

对应章节:

https://github.com/kernstarc/-keras-/tree/master/%E7%AC%AC%E5%8D%81%E7%AB%A0%E5%8D%B7%E7%A7%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9CCIFAR10

 

《机器学习从入门到入职》: 第十章 , P348

深度学习卷积神经网络代码 - 框架 : keras - 数据集 : CIFAR10

实验原理:

 

待更新

 

实验结果:

 

 

 

实验结论:

前提条件:硬件受限,Epoch:5(轮数不够)

1.训练模型对CIFAR10数据集的loss/accuracy比mnist数据集差很多;

a.训练次数不够:

在增加训练次数的情况下,Epoch=40下,train_accuracy:62.3%   ;  test_accuracy:59.04%

但是最后模型评分曲线仍是上升趋势,还可以增加次数。

 b.模型结构性问题:

主要原因是模型结构性问题,本卷积神经网络模型:

        第一层:提取特征边缘;

        第二层:提取特征是物体的局部特征;

        仍需要更高层来提取特征,包含完整的物体特征;

 

实验问题及解决:

1.怎么本地加载CIFAR10数据集?

 a.代码:

from keras.datasets import cifar10


(X_train,y_train),(X_test,y_test) = cifar10.load_data()

print(X_train.shape)

b.结果:

(50000, 32, 32, 3)

c.注意点:

1.文件位置

        需要注意的是,CIFAR10 数据集不用像mnist数据集那样放在代码根目录下的data文件里面。

而是要放在keras的datasets文件夹下:用户./keras/datasets

2.下载数据集名称:

        cifar-10-python.tar.gz   更改为: cifar-10-batches-py.tar.gz

3.链接:

https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz

 

2.怎么根据mnist数据集卷积神经网络模型更改CIFAR10网络模型

a.input_shape

将mnist数据集模型的input_shape = (28,28,1)改成input_shape = (32,32,3)

这个是CIFAR10图片的格式

 

3.ValueError: Input 0 of layer sequential_1 is incompatible with the layer: expected ndim

翻译:

ValueError:层序列1的输入0与层不兼容:应为ndim。

原因:

CIFAR10数据集是5维的,不符合卷积的输入要求是4维

# 数据预处理 
# np.newaxis
X_train = X_train[:,:,:,np.newaxis]

不需要像mnist数据集那样对数据进行预处理

删除上面代码后,X_train.shape : (50000, 32, 32, 3) , 符合卷积神经网络的输入要求是4维的要求。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值