MMdnn keras to Tensorflow

相关链接:
MMdnn
Keras README
TensorFlow README

逐步转换(用于调试):

1.将模型(包括架构和权重)从Keras转换为IR在这里插入图片描述
例子:
在这里插入图片描述
把cnn.h5和cnn.json转换生成了tf-cnn.json,tf-cnn.npy,tf-cnn.pb

命令: mmtoir -f keras -d tf-cnn -n cnn.json -w cnn.h5
在这里插入图片描述
转化成功:
可能出现的错误:
在这里插入图片描述
这个错误是因为 cnn.h5文件和cnn.json文件不匹配导致的。即不是同一套代码生成的。

2.将模型从IR转换为Tensorflow代码段在这里插入图片描述
例子:mmtocode -f tensorflow --IRModelPath tf-cnn.pb --IRWeightPath tf-cnn.npy --dstModelPath tf-cnn.py
在这里插入图片描述
在这里插入图片描述
这个时候生成了tf-cnn.py
注意:会遇到这个问题,对照下面图片修改,3个地方即可。注意改axis = 1
在这里插入图片描述
在这里插入图片描述

3.将模型从IR转换为Tensorflow模型
在这里插入图片描述
例子: mmtomodel -f tensorflow -in tf-cnn.py -iw tf-cnn.npy -o tf_cnn --dump_tag SERVING
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这时候生成了tf_cnn文件夹,tf_cnn文件夹里面有这variables和saved_model.pb两个文件

4.重用转换后的Tensorflow模型
如果要重新训练转换后的模型,可以在转换后的代码文件中将变量is_train从“False”更改为“True”,然后使用“–dump_tag TRAINING”将其转储。

export_dir = "./tf_resnet152"
with tf.Session(graph=tf.Graph()) as sess:
    tf.saved_model.loader.load(sess, [tf.saved_model.tag_constants.TRAINING], export_dir)

    x = sess.graph.get_tensor_by_name('input:0')
    y = sess.graph.get_tensor_by_name('xxxxxx:0')
    ......
    _y = sess.run(y, feed_dict={x: _x})

在这里插入图片描述

例子:mmtomodel -f tensorflow -in tf-cnn.py -iw tf-cnn.npy -o tf_cnn --dump_tag TRAINING
在这里插入图片描述

5.MMdnn的局限性:
在这里插入图片描述
把keras的CNN部分转换完后,后面加上RNN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值