我对根据我们自己的数据更改用于在 caffe 中训练 net
的参数感到困惑。
- 我们应该更多地关注网络的哪些层来训练网络 我们自己的数据?例如,根据数量输出的数量 类。
我尝试训练 FCN32 进行语义分割。我将 Deconvolution 层(即 upscore_sign)
中的输出数量更改为我的数据中的类别数量,但它给出了一个错误。
- 我们在不同的卷积层中有不同的输出。怎么能 我检测到彼此不同的输出,我应该选择哪一个 改变?
- 下一个问题是
deploy.prototxt
有什么区别 和train_val.prototxt
。 - deploy.prototxt 的应用是什么?我应该改变
deploy.prototxt
中的层基于 train_val.prototxt?
如果有人知道,我非常感谢,请分享您的知识。
谢谢
最佳答案
Which layer of the net we should pay attention
当针对新任务微调模型时,标签数量可能不同,必须更改最后一层的num_output
。
最后一层用作概率预测层,输出每个预测变量的概率向量:对于图像分类,网络预测每个图像的概率向量;在 FCN 中,网络输出概率向量 pre pixel。概率向量的长度 = 标签数 = 最后一层的 num_output
。因此,您必须更改此值以适应新任务中的新标签数量。
参见 this post for more details .
What is the difference between
'deploy.prototxt'
and'train_val.prototxt'
此差异在 this post 中进行了解释.
Should I change the layers in
'deploy.prototxt'
based on the'train_val.prototxt'
?
是的!
关于caffe - train_val.prototxt、solver.prototxt、deploy.prototxt的哪些部分参数要根据我们自己的数据修改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41529464/