Извлекать веса сети в кафе
Я хочу извлечь вес оптимизированной сети с python
, у меня есть .caffemodel
файл и я получил net.params
который дает мне параметры всей сети. Проблема в том, когда я называю это, например, для первого слоя, т.е. net.params['ip2']
это дает мне:
<caffe._caffe.BlobVec object at 0x7f1cb03c8fa0>
Как мне получить матрицу весов вместо указателя?
Заранее спасибо,
Afshin
2 ответа
Решение
Вы должны прочитать сеть, используя файл.prototxt и файл.caffemodel.
net = caffe.Net('path/to/conv.prototxt', 'path/to/conv.caffemodel', caffe.TEST)
W = net.params['con_1'][0].data[...]
b = net.params['con_1'][1].data[...]
Посмотрите эту ссылку и эту ссылку для получения дополнительной информации.
Я понял, это можно получить с помощью weights2 = net.params['ip2'][0].data