MM.*_*MM. 4 python numpy neural-network deep-learning caffe
我有一个caffemodel文件,其中包含ethereon的caffe-tensorflow转换实用程序不支持的图层.我想生成一个我的caffemodel的numpy表示.
我的问题是,如何将一个caffemodel文件(我也有原型文件,如果有用的话)转换为numpy文件?
附加信息:我安装了python,caffe和python接口等.我显然没有经历过咖啡.
这是一个很好的函数,可以将一个caffe网转换为一个python的字典列表,所以你可以腌制它并随意读取它:
import caffe
def shai_net_to_py_readable(prototxt_filename, caffemodel_filename):
net = caffe.Net(prototxt_filename, caffemodel_filename, caffe.TEST) # read the net + weights
pynet_ = []
for li in xrange(len(net.layers)): # for each layer in the net
layer = {} # store layer's information
layer['name'] = net._layer_names[li]
# for each input to the layer (aka "bottom") store its name and shape
layer['bottoms'] = [(net._blob_names[bi], net.blobs[net._blob_names[bi]].data.shape)
for bi in list(net._bottom_ids(li))]
# for each output of the layer (aka "top") store its name and shape
layer['tops'] = [(net._blob_names[bi], net.blobs[net._blob_names[bi]].data.shape)
for bi in list(net._top_ids(li))]
layer['type'] = net.layers[li].type # type of the layer
# the internal parameters of the layer. not all layers has weights.
layer['weights'] = [net.layers[li].blobs[bi].data[...]
for bi in xrange(len(net.layers[li].blobs))]
pynet_.append(layer)
return pynet_
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5234 次 |
| 最近记录: |