caffe与tensorflow之间模型转换

一.caffe转换为tensorflow

1.下载模型转换代码:

git clone https://github.com/ethereon/caffe-tensorflow

caffe-tensorflow 模型转换文件为 https://github.com/ethereon/caffe-tensorflow 中的 convert.py,可以将caffe的模型定义文件.prototxt和训练好的模型分别转换为tensorflow类,和tensorflow模型文件.

2.举个例子
将examples/minist目录下的lenet.prototxt和训练好的caffe模lenet_iter_10000.caffemodel,
转换为tensorflow下的网络结构lenet.py和模型lenet.npy

步骤

  • a) 安装caffe和tensorflow共存环境,
    敲黑板啦,要按顺序安装!
#创建caffe和tensorflow的虚拟环境,并进入环境
conda create -n caffe-tf python=3.6
source activate caffe-tf

#安装caffe-gpu
conda install caffe-gpu

#默认安装的protobuf的版本是3.6,降低protobuf的版本为3.2,这样,caffe和tensorflow才能不冲突
conda install protobuf=3.2

#安装tensorflow-gpu
conda install tensorflow-gpu

#检查是否安装成功
python
import caffe
import tensorflow
  • b)环境安装好,接下来就执行下面命令,开始模型转换吧
python convert.py --def_path examples/mnist/lenet.prototxt --caffemodel examples/mnist/lenet_iter_10000.caffemodel --data-output-path lenet.npy --code-output-path lenet.py

二.tensorflow转换为caffe

1.下载模型转换代码

git clone https://github.com/abner2015/tensorflow2caffemodel.git

2 准备网络配置文件和模型
已有:网络参数配置prototxt文件 和训练好的tf model
目标:caffe mdoel

其中prototxt:"./tensorflow2caffemodel/VGG_ILSVRC_16_layers_deploy.prototxt"
tf model:wget http://download.tensorflow.org/models/vgg_16_2016_08_28.tar.gz

3 修改tf2caffe.py脚本

#注释掉 import cv2

#依据需要,修改下面路径
checkpoint_path = "./vgg_16.ckpt" #已知
cf_prototxt = "./VGG_ILSVRC_16_layers_deploy.prototxt" #已知
cf_model = "./vgg16.caffemodel" #输出

#添加主函数
if __name__ == '__main__':
    tf2caffe(cheakpoint_path, cf_prototxt, cf_model)

4 运行

python tf2caffe.py

参考链接:
https://blog.csdn.net/zhaoyoulin2016/article/details/81304634
https://blog.csdn.net/primezpy/article/details/78819249
https://blog.csdn.net/u011961856/article/details/77937128

你可能感兴趣的:(模型转换)