我刚开始学习深度学习。我在使用Caffe时发现有两个prototxt文件,一个是”deploy”,另一个是”train_val”。
我知道”train_val”是用来训练模型的。但对于”deploy”文件,有人说它是用来测试图像的。
所以,我的疑问是”deploy”文件是否只有forward()
网络,因此测试图像数据只通过前向网络一次就能得到分数?
回答:
正如你已经注意到的,'train_val.prototxt'
和'deploy.prototxt'
之间存在一些基本区别。
一个关键区别是'deploy.prototxt'
通常缺少任何损失层。
当你没有为网络定义损失函数时,反向传播就没有意义了:你要传播什么梯度?什么函数的梯度?
因此,Caffe中的net
对象在所有阶段都实现了backward()
方法。然而,当你测试没有损失函数的网络时(只有预测),这个方法是没有意义的。