Ошибка с 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 назначается параметрам слоя, а не слою напрямую.

Другие вопросы по тегам