Как вы экспортируете.caffemodels в другие приложения?
Можно ли перевести информацию в файл.caffemodel так, чтобы она могла быть прочитана (например) Matlab. То есть, есть ли способ написать вашу модель, используя что-то еще, что с прототипом, и импортировать веса, обученные с использованием Caffe?
Если ответ "Нет, это бинарный файл и всегда будет таким", есть ли документация относительно структуры файла, чтобы можно было как-то извлечь важную информацию?
2 ответа
Решение
Как Вам известно, .caffemodel
состоит из весов и уклонов. Простой способ считывания весов и смещений для кофейной модели с учетом прототипа состоит в том, чтобы просто загрузить сеть в Python и прочитать весовые коэффициенты.
Ты можешь использовать:
import caffe
net = caffe.Net(<prototxt-file>,<model-file>,<phase>);
и получить доступ к параметрам из net.params
Я возьму VGG в качестве примера
from caffe.proto import caffe_pb2
net = caffe_pb2.NetParameter()
caffemodel = sys.argv[1]
with open(caffemodel, 'rb') as f:
net.ParseFromString(f.read())
for i in net.layer:
print i.ListFields()[0][-1]
#conv1
#relu1
#norm1
#pool1
#conv2
#relu2
#norm2
#pool2
#conv3
#relu3
#conv4
#relu4
#conv5
#relu5
#pool5
#fc6
#relu6
#drop6
#fc7
#relu7
#drop7
#fc8
#prob