Ошибка с to_proto(caffe-master/python/caffe/net_spec.py)- у объекта "LayerParameter" нет атрибута "num_output"
Я пытаюсь создать train.protxt из resnet с pycaffe, и я получил эту ошибку:
Файл "/data/hjy1312/Downloads/caffe-master/python/caffe/net_spec.py", строка 140, в _to_proto
inp._to_proto (слои, имена, имена)
Файл "/data/hjy1312/Downloads/caffe-master/python/caffe/net_spec.py", строка 97, в _to_proto
вернуть self.fn._to_proto(слои, имена, имена)
Файл "/data/hjy1312/Downloads/caffe-master/python/caffe/net_spec.py", строка 162, в _to_proto
assign_proto (layer, k, v)
Файл "/data/hjy1312/Downloads/caffe-master/python/caffe/net_spec.py", строка 64, в assign_proto
is_repeated_field = hasattr (getattr (proto, name), 'extension')
AttributeError: у объекта "LayerParameter" нет атрибута "num_output"
установив точку останова и запустив мой код, я обнаружил, что в моем коде неправильно эта строка:
from caffe import layers as L, params as P, to_proto
return to_proto(acc, loss)
Но я не знаю, что не так с to_proto, кто-нибудь может мне помочь?
Большое спасибо!
1 ответ
Как вы заметили, вы получаете ошибку при выполнении to_protot()
функция, но ошибка не в самой функции, а в вводимых вами данных.
Посмотрите на сообщение об ошибке, которое вы получили
AttributeError: 'LayerParameter' object has no attribute 'num_output'
Как можно понять из сообщения об ошибке, предоставленная вами сетевая спецификация имеет слой (может быть, более одного), который имеет num_output
атрибут для самого слоя (вместо атрибута для параметров слоя).
Чтобы исправить эту ошибку, вам нужно проверить код, определяющий слои, и увидеть, что num_output
назначается параметрам слоя, а не слою напрямую.