不是有水平的文章,就是个菜鸟的简单记录。持续更新
1.deploy.prototxt
与train_val.prototxt文件类似,没有反向传播的部分,只是头尾有些区别。没有了第一层的数据层,也没有最后的accuracy层(用于反向传播),但最后多了一个直接计算前向的概率的Softmax层。用于用训练好的模型进行预测时使用的文件。
一般不推荐用代码来生成,熟悉train_val.prototxt的可以将其复制一份进行相应的修改。
删除原有train_val.prototxt中开始用于训练的输入的两个数据层(train和test),因为利用模型分类将不再需要用到标签数据。
2.关于恢复训练
如果我们在训练途中就停电或者有了其他的情况,我们可以通过之前保存的状态恢复数据,使用的时候直接添加–snapshot参数即可,如:
./build/tools/caffe train --solver=models/bvlc_reference_caffenet/solver.prototxt --snapshot=models/bvlc_reference_caffenet/caffenet_train_iter_10000.solverstate
这时候运行会从snapshot开始继续运行,如从第600迭代时运行。
3.2017.10.09 一个疑问?
卷积神经网络学出来的feature应该是唯一的吗?怎样的学出来的特征算是“好的特征”?我们固然可以设计不同的网络结构,来学习出不同的特征。但是怎样的特征才是好的特征?以及,我们能否从特征学习的过程中,得到一些规律,用于辅助手工设计特征?毕竟搞一个CNN的话,要大量数据或者微调,而且需要GPU,并且还是一个black box缺乏理论支持的感觉。