擅长:python、mysql、java
<p>我刚才不得不解决那个问题。假设你有一个.caffemodel(二进制proto格式),结果很简单。</p>
<ol>
<li><p>下载最新的<a href="https://github.com/BVLC/caffe/blob/master/src/caffe/proto/caffe.proto" rel="nofollow noreferrer">caffe.proto</a></p></li>
<li><p>编译到python库:
protoc——python_out=。咖啡原型机</p></li>
<li><p>导入和分析</p></li>
</ol>
<p>下面的示例代码</p>
<pre><code>import numpy as np
import sys, os
import argparse
import caffe_pb2 as cq
f = open('VGG_ILSVRC_16_layers.caffemodel', 'r')
cq2 = cq.NetParameter()
cq2.ParseFromString(f.read())
f.close()
print "name 1st layer: " + cq2.layers[0].name
</code></pre>
<p>为我制作:</p>
<pre><code>name 1st layer: conv1_1
</code></pre>
<p>显然你可以从你的对象中提取任何你想要的东西。我只是打印了第一层的名字作为例子。
另外,您的模型可能是用layer s数组(不推荐使用)或layer数组(没有)来表示层,但是您得到了要点。</p>