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

Two top blobs in train.prototxt when using caffe.NetSpec() in Python

我在 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