数据集来自于CIFAR-10 https://www.cs.toronto.edu/~kriz/cifar.html
CIFAR-10是多伦多大学的一个RGB图片数据集,像素尺寸为32x32,包含60000个样本,10个标签,每一个标签下包含6000个样本,内容为汽车,飞机及各种动物,
其中训练集包含50000个,测试集10000,两者分布完全相同,输入维度为(m,3,32,32)
v1版本网络结构:
Flatten
FC1(512)
Relu1
BN1
FC2(128)
Relu2
BN2
FC3(10)
Softmax
损失函数为catagorical_crossentropy,优化器为adam
epoch=5,batchsize=64
最后结果:
训练集accuracy:0.5595 测试集accuracy: 0.49
v2版本网络结构:
Conv1(32个filter,大小为5x5)
Relu1
Maxpooling1
BN1
Conv2(64个filter,大小为5x5)
Relu2
Maxpooling2
BN2
FC1(128)
Dropout(0.75)
FC2(10)
Softmax
epochs =100,batch_size=32
结果非常不理想,即便调整了dropout的keep_prob,准确率也不高,同时过拟合现象严重,表明样本相对于特征还是太少,
想象每个类只有5000个样本,而一张图片有三千个左右的特征,不对数据集做些处理很难提高精确度
结果: 训练集: 0.8808 测试集: 0.6869
v3版本是tensorflow官方提供的训练模型,也是含有两个卷积块,但是号称最高86%精确度,
与V2不同的是,该模型图片裁剪到24x24,大小只剩下一半左右,再对图片做白化处理,然后通过三种变化方式人为增加了训练集,具体网络结构为
conv1
pool1
norm1
conv2
norm2
pool2
FC1
FC2
softmax
结果: 经过了十个半小时的训练后,在测试集上确实得到了0.860的精确度
960跑这个真是苦不堪言...