gpt4 book ai didi

neural-network - caffe:模型定义:使用 caffe.NetSpec() 编写具有不同阶段的同一层

转载 作者:行者123 更新时间:2023-12-04 13:47:55 25 4
gpt4 key购买 nike

我想用python设置一个caffe CNN,使用caffe.NetSpec()界面。虽然我看到我们可以把测试网放在 solver.prototxt , 我想写在model.prototxt具有不同的相位。例如,caffe model prototxt实现两个不同阶段的数据层:

layer {
name: "data"
type: "Data"
top: "data"
top: "label"
include {
phase: TRAIN
}
....
}
layer {
name: "data"
type: "Data"
top: "data"
top: "label"
include {
phase: TEST
}
....
}

我应该如何在 python 中获得这样的实现?

最佳答案

尽管已经给出了几个答案,但没有一个涵盖更真实的场景,您甚至不知道(在编写代码时)层的名称。例如,当您从较小的 block 组装网络时,您不能编写:

n.data = L.Data(#...
n.test_data = L.Data(#...

因为该 block 的每个下一个实例化都会覆盖 datatest_data (或 batchnorm ,它更有可能被放入 block 中)。

幸运的是,您可以通过 __getitem__ 分配给 NetSpec 对象。 ,像这样:
layer_name = 'norm{}'.format(i) #for example
n[layer_name + '_train'] = L.Data(#...
n[layer_name + '_test'] = L.Data(#...

关于neural-network - caffe:模型定义:使用 caffe.NetSpec() 编写具有不同阶段的同一层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36844968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com