Извлекать веса сети в кафе

Я хочу извлечь вес оптимизированной сети с 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

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