《机器学习从入门到入职》卷积神经网络-keras-CIFAR10-参数调优-图像数据增强

代码链接:

CSDN:

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

GitHub:

 

实验原理:

参数调优改进代码:

# 构建卷积模型
model = Sequential()
model.add(Conv2D(20, kernel_size=5, padding="same", input_shape=input_shape))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding='valid'))
# 增加Dropout层
# 在第一池化层/第二池化层/最后一个池化层的效果都不一样
# 第一个添加的效果最好
model.add(Dropout(0.15))
# 添加规则化器的约束
model.add(Conv2D(50, kernel_size=3, padding="same", kernel_regularizer=keras.regularizers.l2(0.01)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding='valid'))
# 增加新的卷积层、池化层
model.add(Conv2D(20, kernel_size=5, padding="same", input_shape=input_shape))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding='valid'))
# 扁平化处理
model.add(Flatten())
model.add(Dense(500))
model.add(Activation("relu"))
model.add(Dense(10))
model.add(Activation("softmax"))

图像数据增强:

发现代码有点问题,改完后再发。

 

实验结果:

硬件受限,只训练5轮,和之前做过的实验也是5轮对比收敛速度。

《机器学习从入门到入职》卷积神经网络-keras-CIFAR10-参数调优-图像数据增强_第1张图片《机器学习从入门到入职》卷积神经网络-keras-CIFAR10-参数调优-图像数据增强_第2张图片

实验结论:

1.实验对比:

没有任何处理:

参数调优:

图像数据增强:

因为Epoch不够,但是理论上:

没有任何处理的模型在Epoch=40的情况下,accuracy=63.2%,val_accuracy=59.04%.

参数调优模型需要Epoch=80的情况下,可以提升5%左右;

数据增强模型在Epoch=160的情况下,可以提升10%左右;

而上面图片的结果很可能是改进后模型复杂度提高,较低的Epoch收敛速度变慢引起。

 

 

问题解决:

 

 

 

 

 

 

你可能感兴趣的:(keras,神经网络,深度学习)