我是咖啡馆的新手。谢谢你们!
在https://github.com/BVLC/caffe/blob/master/src/caffe/proto/caffe.proto中
我看到1个未注释的枚举变量阶段。它有两个选项:训练和测试。
enum Phase {
TRAIN = 0;
TEST = 1;
}
它们是如何工作的?我最近看到一个模型也有这两个阶段。.prototxt文件如下所示:
name: "CIFAR10_full"
layer {
name: "cifar"
type: "Data"
top: "data"
top: "label"
data_param {
source: "CIFAR-10/cifar10_train_lmdb"
backend: LMDB
batch_size: 200
}
transform_param {
mirror: true
}
include: { phase: TRAIN }
}
layer {
name: "cifar"
type: "Data"
top: "data"
top: "label"
data_param {
source: "CIFAR-10/cifar10_test_lmdb"
backend: LMDB
batch_size: 100
}
transform_param {
mirror: false
}
include: { phase: TEST }
}
我可以从训练阶段切换到测试阶段吗?开关在哪里?
发布于 2016-06-06 22:49:51
在训练期间(即,执行$CAFFE_ROOT/tools/caffe train [...]
),caffe可以在训练阶段和测试阶段之间交替:即,在训练阶段参数被改变,而在测试阶段,参数是固定的,并且模型仅运行前馈示例来估计模型的当前性能。
使用两个不同的数据集进行训练和测试是很自然的,这就是使用不同的phase
值的原因。
您可以阅读有关训练/测试迭代here的更多信息。
发布于 2018-08-30 05:09:29
TRAIN
为训练期间使用的模型指定一个层。
TEST
为测试期间使用的模型指定一个层。
因此,您可以在单个prototxt文件中定义两个模型:一个模型用于训练,一个模型用于测试。
有关这方面的信息,可以在网页http://caffe.berkeleyvision.org/gathered/examples/imagenet.html的模型定义部分找到
https://stackoverflow.com/questions/37659976
复制相似问题