2016-12-12 9 views
0

Я пытаюсь понять, что делает сверточная нейронная сеть SegNet, поэтому я создал модуль Python для этого, надеясь распечатать различные формы и свойства своих слоев.pycaffe не распознает действительный параметр в файле prototxt

from __future__ import print_function 
import numpy as np 
import matplotlib.pyplot as plt 
from PIL import Image 
import caffe 

caffe.set_device(0) 
caffe.set_mode_gpu() 
net = caffe.Net('/path/to/models/segnet_train.prototxt', caffe.TEST) 

[print(k, v.data.shape) for k, v in net.blobs.items()] 

Но он говорит мне, что файл является неправильным, хотя я могу правильно тренировать эту сеть с SegNet условия файлов (см файла prototxt here). Что это значит и что мне делать?

Вот полная ошибка

[libprotobuf ERROR google/protobuf/text_format.cc:274] Error parsing text-format caffe.NetParameter: 7:26: Message type "caffe.LayerParameter" has no field named "dense_image_data_param". 
WARNING: Logging before InitGoogleLogging() is written to STDERR 
F1212 15:59:09.624486 20202 upgrade_proto.cpp:88] Check failed: ReadProtoFromTextFile(param_file, param) Failed to parse NetParameter file: /path/to/models/segnet_train.prototxt 
+1

Это сообщение http://stackoverflow.com/a/39432128/6281477 может предоставить вам некоторый намек. – Dale

+0

Спасибо! Не совсем моя ошибка. У меня нет ничего подобного для изменения, поэтому я изменил _dense \ _image \ _data \ _param_ на _image \ _data \ _param_. Теперь ошибка изменилась на «... не имеет параметра« bn_param »'. Я нашел что-то [здесь] (https://github.com/alexgkendall/SegNet-Tutorial/issues/13), но я этого не понимаю. Вы можете мне помочь? – BusyAnt

+1

Думаю, вы не установили правильную версию caffe, которую SegNet берет на себя. Потому что у другой версии caffe могут быть разные 'caffe.proto' и разные слои в папке' src/caffe/layers/'. – Dale

ответ

1

Как Дейл отметил в своем comment, это действительно проблема кофейной версии. Я использовал независимую сборку caffe, тогда как SegNet поставляется со своим собственным кофе.

Я изменил путь python к этому распределению, и все сработало нормально.