我使用torch-caffe-binding将caffe模型转换为火炬。我想删除最后的损失图层并添加其他火炬图层,我可以删除.prototxt
文件中的图层并“训练”模型以获取.caffemodel
文件并导入火炬?
并且模型使用lmdb类型数据,当我使用net:forward(input)
来训练模型时,模型只使用数据层中定义的数据而不是使用input
数据。那么如何训练使用lmdb数据的模型呢?
caffe模型有一些自定义图层,因此我无法使用loadcaffe
在火炬中加载模型
答案 0 :(得分:1)
这里有3个问题 -
为了使用lmdb而不是使用数据层,请连接 您对第一个转换层的输入(假设您的第一个非输入 图层是转换的,例如说你有
layer {
name: "input-data"
type: "DummyData"
top: "data"
top: "im_info"
dummy_data_param {
shape { dim: 1 dim: 3 dim: 224 dim: 224 }
}
}
以及
input: "data"
input_shape: {
dim: 1
dim: 3
dim: 224
dim: 224
}
然后
layer {
name: "conv1"
type: "Convolution"
bottom: "data" --> **here put data instead of input-data**
top: "conv1"
convolution_param {
num_output: 96
kernel_size: 3
pad: 1
stride: 1
}
}