Я хотел бы иметь возможность извлекать все размеры ядра и шаги для каждого из слоев объединения и свертки в сети pycaffe. Это кажется возможным, поскольку я вижу, что он используется в функции рисования (см. строку 94 здесь https://github.com/BVLC/caffe/blob/daf013931b31ed9c95250a89d09b7220badbcefe/python/caffe/draw.py)
К сожалению, когда я пытаюсь использовать этот синтаксис таким образом:
net = caffe.Net(model_def, # defines the structure of the model
model_weights, # contains the trained weights
caffe.TEST) # use test mode (e.g., don't perform dropout)
# For each layer
for layer_name, layer in net.layer_dict.iteritems():
if layer.type == 'Convolution':
print layer.type
print layer.convolution_param.kernel_size[0] if len(layer.convolution_param.kernel_size) else 1
Я получаю следующую ошибку:
Convolution
AttributeError: 'Layer' object has no attribute 'convolution_param'
Это странно, потому что я явно частично прав, так как layer.type работает правильно, так как я могу успешно выполнить проверку и только попытаться извлечь параметры свертки для слоя свертки. Что происходит не так? Когда я пытаюсь увидеть, что это за «слой» объекта, я вижу это:
<caffe._caffe.Layer object at 0x7fe3a2fad050>
Это означает, что на самом деле это объект слоя PyCaffe. Я везде искал ссылку на класс PyCaffe Layer, но ничего не придумал. Кто-нибудь знает хорошую ссылку или как правильно извлечь информацию о ядре и шаге?
draw.py
я вижу цикл по атрибутуlayer
, а неlayer_dict
(строка 153:for layer in caffe_net.layer
). Вы пробовали сделать это таким образом? - person kostek   schedule 19.05.2017caffe.Net()
, не являетсяcaffe.proto.caffe_pb2.NetParameter
, который используется вdrawp.py
. Вы, вероятно, должны получить эту информацию от BLOB-объектов. Проверьте это сообщение в блоге: christopher5106.github.io/deep/learning/2015/09/04/ - person kostek   schedule 19.05.2017caffe.proto.caffe_pb2.NetParameter
, который используется вdraw.py
? - person Kantthpel   schedule 19.05.2017