如何修改批处理规范化层(DeconvNet),使其能够与caffe一起运行?
我想在我的数据上运行,但它似乎是为另一个版本的如何修改批处理规范化层(DeconvNet),使其能够与caffe一起运行?,caffe,conv-neural-network,image-segmentation,pycaffe,batch-normalization,Caffe,Conv Neural Network,Image Segmentation,Pycaffe,Batch Normalization,我想在我的数据上运行,但它似乎是为另一个版本的caffe编写的。有人知道如何更改批处理参数吗 在Deconvnet中的那个 layers { bottom: 'conv1_1' top: 'conv1_1' name: 'bn1_1' type: BN bn_param { scale_filler { type: 'constant' value: 1 } shift_filler { type: 'constant' value: 0.001 }
caffe
编写的。有人知道如何更改批处理参数吗
在Deconvnet中的那个
layers { bottom: 'conv1_1' top: 'conv1_1' name: 'bn1_1' type: BN
bn_param { scale_filler { type: 'constant' value: 1 }
shift_filler { type: 'constant' value: 0.001 }
bn_mode: INFERENCE } }
Caffe为cifar10提供的一个示例:
layer {
name: "bn1"
type: "BatchNorm"
bottom: "pool1"
top: "bn1"
batch_norm_param {
use_global_stats: true
}
param {
lr_mult: 0
}
param {
lr_mult: 0
}
param {
lr_mult: 0
}
include {
phase: TEST
}
}
一旦我想运行它,请首先显示以下错误:
I1029 13:46:47.156885 11601 solver.cpp:87] Creating training net from net file: train_val.prototxt
[libprotobuf ERROR google/protobuf/text_format.cc:299] Error parsing text-format caffe.NetParameter: 59:3: Unknown enumeration value of "BN" for field "type".
F1029 13:46:47.157971 11601 upgrade_proto.cpp:88] Check failed: ReadProtoFromTextFile(param_file, param)
将BN
更改为BatchNorm
后,会显示有关参数的新错误:
I1029 14:03:38.497725 12097 solver.cpp:87] Creating training net from net file: train_val.prototxt
[libprotobuf ERROR google/protobuf/text_format.cc:299] Error parsing text-format caffe.NetParameter: 59:3: Unknown enumeration value of "BatchNorm" for field "type".
F1029 14:03:38.503345 12097 upgrade_proto.cpp:88] Check failed: ReadProtoFromTextFile(param_file, param)
有人试过训练Deconvnet吗?如果是的话,你能指引我吗?
谢谢您能告诉我这样更改是否正确吗
layer {
name: "bn1_1"
type: "BatchNorm"
bottom: "conv1_1"
top: "conv1_1"
param {
lr_mult: 0
}
param {
lr_mult: 0
}
param {
lr_mult: 0
}
include {
phase: TEST
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_conv1_1"
type: "Scale"
bottom: "conv1_1"
top: "conv1_1"
scale_param {
bias_term: true
bias_filler {
type: "constant"
value: 0.001
}
}
}
你能告诉我这样改变是否正确吗
layer {
name: "bn1_1"
type: "BatchNorm"
bottom: "conv1_1"
top: "conv1_1"
param {
lr_mult: 0
}
param {
lr_mult: 0
}
param {
lr_mult: 0
}
include {
phase: TEST
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_conv1_1"
type: "Scale"
bottom: "conv1_1"
top: "conv1_1"
scale_param {
bias_term: true
bias_filler {
type: "constant"
value: 0.001
}
}
}
看起来你使用的是旧的咖啡馆版本。请重新设置到最新的
主版
版本,然后尝试使用类型:“BatchNorm”
至于比例和偏差/偏移,您需要添加一个额外的“比例”
层。有关更多信息,请参阅。我在3个月前几乎是从caffe网站的主分支安装的。谢谢你的帮助。Will tryIt似乎您的caffe将“type”
视为枚举,而不是字符串:枚举在较旧的版本中使用,不再使用。第一个是来自Deconvnet
,我没有更改它,我只是想知道我应该对它们的代码做什么样的更改。我的caffe版本是1.0.0
您似乎正在使用旧的caffe版本。请重新设置到最新的主版
版本,然后尝试使用类型:“BatchNorm”
至于比例和偏差/偏移,您需要添加一个额外的“比例”
层。有关更多信息,请参阅。我在3个月前几乎是从caffe网站的主分支安装的。谢谢你的帮助。Will tryIt似乎您的caffe将“type”
视为枚举,而不是字符串:枚举在较旧的版本中使用,不再使用。第一个是来自Deconvnet
,我没有更改它,我只是想知道我应该对它们的代码做什么样的更改。我的caffe版本是1.0.0
那么刻度的填充物呢?亲爱的Shai,我是通过caffe.NetSpec()
创建图层的,所以我这样写的scale=L.scale(conv,in_place=True,bias_term=1,bias_filler=dict(type='constant',value=0.001))
。如何添加它,我认为它的值是1
所以比例没有改变,我错了吗?比例的填充物呢?亲爱的Shai,我正在通过caffe.NetSpec()
创建层,所以我这样写scale=L.scale(conv,in_place=True,bias_term=1,bias_filler=dict(type='constant',value=0.001))
。如何添加它,我认为它的值是1
所以比例没有变化,我错了吗?