caffe-tensorflow转换介绍及使用
caffe-tensorflow可以将caffe的网络定义文件和预训练参数转换成tensorflow的形式,包括tensorflow的网络结构源码和npy格式的权重文件。
从github上下载源码,进入源码目录运行convert.py即可。
其调用格式为
python convert.py def_path --caffemodel caffemodel_path --data-output-path dataoutput_path --code-output-path codeoutput_path
其中def_path为必需项,四个参数两个caffe输入,两个tensorflow端的输出。如果只需要权重参数则只需前三个参数。输出的tensorflow代码为其源码中Network的子类,网络构建过程实现了其setup方法,因此需在代码中引入才可以调用。tensorflow目录下network.py这个文件中实现了Network类,这个类封装了一些layer,包括带group的conv层,caffe-tensorflow的转换还是比较安全的,自行转换会遇到很多诸如caffe,tensorflow卷积核格式、fc权重格式、输入输出数据表示格式的不同的问题,caffe-tensorflow这个项目都会自行转换。
caffe-tensorflow实现细节
caffe-tensorflow的具体原理是通过pycaffe读取网络定义文件,并重新生成一张图,图上的节点保存各个层的信息,GraphBuilder类负责生成图结构,每个节点代表一个layer,作者定义了许多transformer,每个transformer对图