我有自己的6600个数字训练图像集(0~9),18200个英文低字母训练图像集(a~z),18200个英文大写字母训练图像集(A~Z)。
我首先用CNN模型训练我的数字训练集,它工作得很好。
这是我的CNN模型结构。
learning rate = 0.0001
28X28 input image
11X11 output label.(0~9(5500 training sets) and none digit ex)a~z, A~Z(1100 training sets))
CONV1
filter(3,3,1,32)->relu->maxpool(1,2,2,1) and stride(1,2,2,1)
CONV2
filter(3,3,32,64)->relu->maxpool(1,2,2,1) and stride(1,2,2,1)
CONV3
filter(3,3,64,128)->relu->maxpool(1,2,2,1) and stride(1,2,2,1)->reshape(-1, 128*4*4)
FC1
input - (128*4*4)
relu
output - (625)
FC2
input - (625)
relu
output - (11)
its acc :
![enter image description here][1]
its cost : ![enter image description here][2]我认为这个CNN模型训练得很好。
我用我自己的英文小写字母(a~z)训练了同样的CNN模型,出现了问题。
与数字CNN模型只有一个区别,那就是FC2层输出(27)
这是用英文小写字母训练的CNN模型的acc和cost
访问控制:

成本:

与数字CNN模型相比,acc和CNN模型存在严重的波动情况。
我想让这个CNN模型更稳定。如果你感兴趣,你能给我一些建议吗?
我认为CNN模型的形成是原因,但不能具体解释问题是什么
发布于 2017-11-22 18:28:59
就我个人而言,我认为英文小写字母(a-z)的波动在我看来是正常的。与digits数据集相比,波动很可能是由数据集中存在的类数量增加引起的。数字数据集只有10个类,但英文小写字母有26个类。因此,在英文小写字母数据集的训练过程中有更多的波动是合乎逻辑的,因为模型更有可能遇到以前没有见过的例子。
您可以尝试的一种方法是减少波动,即增加批量大小,以便模型可以在每个训练步骤“查看”更多示例的同时调整其权重。
我对我的回答不太有信心,但这是我在1+一年的CNN训练中观察到的。期待着看看它是否也适用于您的模型。
https://stackoverflow.com/questions/47428336
复制相似问题