一.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