首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在caffe prototxt文件中。训练和测试阶段做什么?

在caffe prototxt文件中。训练和测试阶段做什么?
EN

Stack Overflow用户
提问于 2016-06-06 22:25:41
回答 2查看 2.6K关注 0票数 3

我是咖啡馆的新手。谢谢你们!

https://github.com/BVLC/caffe/blob/master/src/caffe/proto/caffe.proto

我看到1个未注释的枚举变量阶段。它有两个选项:训练和测试。

代码语言:javascript
复制
enum Phase {
   TRAIN = 0;
   TEST = 1;
}

它们是如何工作的?我最近看到一个模型也有这两个阶段。.prototxt文件如下所示:

代码语言:javascript
复制
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 }
}

我可以从训练阶段切换到测试阶段吗?开关在哪里?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-06 22:49:51

在训练期间(即,执行$CAFFE_ROOT/tools/caffe train [...]),caffe可以在训练阶段和测试阶段之间交替:即,在训练阶段参数被改变,而在测试阶段,参数是固定的,并且模型仅运行前馈示例来估计模型的当前性能。

使用两个不同的数据集进行训练和测试是很自然的,这就是使用不同的phase值的原因。

您可以阅读有关训练/测试迭代here的更多信息。

票数 4
EN

Stack Overflow用户

发布于 2018-08-30 05:09:29

TRAIN为训练期间使用的模型指定一个层。

TEST为测试期间使用的模型指定一个层。

因此,您可以在单个prototxt文件中定义两个模型:一个模型用于训练,一个模型用于测试。

有关这方面的信息,可以在网页http://caffe.berkeleyvision.org/gathered/examples/imagenet.html的模型定义部分找到

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37659976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档