python - 在 Python 中使用 caffe.NetSpec() 时,train.prototxt 中的两个顶部 blob

标签 python machine-learning neural-network deep-learning caffe

我在 python 中使用 caffe.NetSpec 使用以下代码在体系结构中定义和导出:

conv1_1 = L.Convolution(data,top='conv1_1',name='conv1_1',
                        convolution_param=
                        {'kernel_size':3,'num_output':64,'pad':1},
                        param=[{'lr_mult':1, 'decay_mult':1},
                               {'lr_mult':2,'decay_mult':0}])

但是,当生成 train.protxt 时,层中出现两个 Top blob,如下所示:

layer {
name: "conv1_1"
type: "Convolution"
bottom: "Data1"
top: "Convolution1"
top: "conv1_1"
param {
  lr_mult: 1
  decay_mult: 1
}
param {
  lr_mult: 2
  decay_mult: 0
}
convolution_param {
  num_output: 64
  pad: 1
  kernel_size: 3
  }
}

这里出了什么问题? 谢谢

最佳答案

如何使用 NetSpec() 对象?

import caffe

ns = caffe.NetSpec() # use this object to store the layers
ns.data, ns.label = L.Data(name='data',  ntop=2, 
                           data_param={'source':'', 'batch_size': 32})
ns.conv1_1 = L.Convolution(ns.data, name='conv1_1',
                    convolution_param=
                    {'kernel_size':3,'num_output':64,'pad':1},
                    param=[{'lr_mult':1, 'decay_mult':1},
                           {'lr_mult':2,'decay_mult':0}])
print str(ns.to_proto()) # print the net stored in ns object

关于python - 在 Python 中使用 caffe.NetSpec() 时,train.prototxt 中的两个顶部 blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42494235/

相关文章:

python - pytables。使用 f.get_node() 访问节点时发出警告

machine-learning - 如何训练 NER 识别单词不是实体?

machine-learning - 多类情况的混淆矩阵,所有评估指标的估计

machine-learning - 自动编码器不学习恒等函数

neural-network - 子梯度的总和或平均值?,小批量 SGD keras

machine-learning - 如何消除风格迁移神经网络中的反卷积噪声

Python 子进程挂起命名管道

python - pymongo 没有关闭连接

python - 如何将大量数据附加到 Pandas HDFStore 并获得自然的唯一索引?

machine-learning - 双向 LSTM 和 LSTM 有什么区别?