tensorflow转caffe mmdnn

mmdnn是微软出的工具,能够在各种深度学习模型之间转换训练好的模型

安装:pip install mmdnn

举例:将tensorflow模型转换为caffe模型,需要安装好tensorflow和pycaffe,

 

之后运行命令:mmconvert -sf tensorflow -in model.ckpt-0.meta -iw  model.ckpt-0 --dstNode coord_output heatmap_output -df caffe -om outmodel

其含义分别是mmconvert 是mmdnn中的命令,-sf 是source framework 源框架,-in是网络结构 , -iw是权重, --dstNode是输出值的节点,也就是tensorflow中输出模型参数的那个tensor的“name“,可以写多个,-df是dest framework,-om是要得到的caffe模型名

 

注意事项:

(1)placeholder需要填写shape参数,否则报错:shape = [shape[0], shape[-1]] + shape[1:-1] list index out of range          并且不能写-1这种自适应性质的参数,

  (2)无法转换caffe中不存在的层,比如tf.reduce_sum

(3)转出来的模型有input层,这个层可以直接去掉。当然可以不管

(4)转出来的模型还会有flatten层,这是在tf中用于将卷积层reshape成能送入全连接的操作。但是在caffe中可以不使用该操作。所以该层可以直接去掉,只需要修改下层的bottom使模型能接上就行。当然也可以不去掉。

(5)在tf.nn.conv2d时strides最好都是1,我这里strides不为1的时候转出来的caffe模型里padding有错

你可能感兴趣的:(tensorflow)