通常情况下,训练好的caffe模型包含两个文件:
- prototxt:网络结构描述文件,存储了整个网络的图结构;
- caffemodel:权重文件,存储了模型权重的相关参数和具体信息
对于某些大型的网络,如果需要对caffe模型中一小部分结构网络做一些性能或精度分析,可以对caffe模型的结构及权重进行截取。caffe源码提供了读取caffe模型的python接口,可以比较方便地进行相应的操作。
修改prototxt
以Inception模型为例,如下图左则为使用Netron可视化的模型前3层及prototxt描述的内容,假设要截取第3层,修改后的模型如下图右则所示,修改方法为:
- 修改输入数据的维度为第2层的输出维度
- 删除第2层以及第3层后的所有层
- 修改第3层的bottom值为第一层的top值
截取权重数据
首先要下载caffe源码
git clone https://github.com/BVLC/caffe
</