我刚刚在后端安装了带caffe的数字。我正在尝试在我的数据集上训练RNN with 50 layers。为了简单起见,我最初在我的数据集中只有三个类,即roads
,parks
和ponds
。默认情况下,上述网络不包括准确度和丢失层,因此在训练期间或之后,它不会在DIGITS界面上显示任何准确性或丢失。为了解决这个问题,我只是复制了AlexNet
中的相关图层,并将它们放在RNN的末尾,以查看实际发生的情况。我在RNN中添加了以下三层
layer {
name: "accuracy"
type: "Accuracy"
bottom: "fc1000"
bottom: "label"
top: "accuracy"
include {
stage: "val"
}
}
layer {
name: "loss"
type: "SoftmaxWithLoss"
bottom: "fc1000"
bottom: "label"
top: "loss"
exclude {
stage: "deploy"
}
}
layer {
name: "softmax"
type: "Softmax"
bottom: "fc1000"
top: "softmax"
include {
stage: "deploy"
}
}
当网络经过培训时,它在DIGITS界面中的准确率仅为34%。当我使用DIGITS的Classify Many
特征并对验证数据集进行分类时,它告诉我所有内容都是road
类,因此在混淆矩阵中实现了33%的准确性。因为,我是这个领域的新手,我怀疑在网络末端添加上述三层后出现了问题。是对的吗?我弄乱了整个网络吗?如何在不拧紧网络的情况下可视化数字的准确性和丢失情况?
修改1
以下是我使用Torch在DIGITS中添加facebook Resnet model时收到的错误。 。
请注意,之前有一个错误抱怨cudnn
nil
require cunn
当我在网络定义中将require cudnn
更改为{{1}}时就消失了,因为这对我来说似乎是一个错字。< / p>
答案 0 :(得分:1)
你没有破坏网络。您不需要两个softmax
图层。问题可能是它没有收敛。至于网络初始化参数,我找不到作者training.prototxt
。他建议在facebook's torch implementation中看到this PR,它与原始实施相比有一些变化。您可以做的一件事是使用deepdetect的培训网络。但PR的结论之一是它由于BatchNorm
层的caffe实现问题而没有收敛。 deepdetect
的作者似乎不同意它没有收敛。无论哪种方式似乎都在this PR中得到修复。总结如下:
caffe
deepdetect
&#39; s net and solver。imagenet
或cifar
(损失减少和错误减少)