pb和h5模型转离线模型时去掉无效算子的方法

举报
zxros10 发表于 2020/03/31 10:49:31 2020/03/31
【摘要】 有些算子在om模型中只是透传数据,并不是必须数据处理步骤。所以当在pb模型转om模型遇到这类算子不支持的问题时,总的思想是在pb模型生成的时候就去掉该算子。ckpt模型转pb模型时去掉输出无关算子 见 https://blog.csdn.net/u011511601/article/details/80262707 2. keras的h5模型转pb模型去掉输出无关算子 见 ht...


有些算子在om模型中只是透传数据,并不是必须数据处理步骤。所以当在pb模型转om模型遇到这类算子不支持的问题时,总的思想是在pb模型生成的时候就去掉该算子。

  1. ckpt模型转pb模型时去掉输出无关算子

    见 https://blog.csdn.net/u011511601/article/details/80262707


   2. keras的h5模型转pb模型去掉输出无关算子

   见 https://github.com/amir-abdi/keras_to_tensorflow


在h5转pb的时候,如果使用weight和json文件,可能报错:

ValueError: No model found in config file.

大致是认为keras保存的权重和json文件中没有模型信息。这个和keras的模型保存有关。keras的模型保存网上有很多帖子,

例如:https://blog.csdn.net/jclian91/article/details/83038861

如果weight和json的保存方式无法转为pb模型,那么我们可以使用model.save()方法保存方法来保存模型。具体做法:

  1. 找到模型保存为weight和json文件的地方(model.save_weights()和model.to_json()),或者模型加载的地方(model.load_weights())

  2. 调用mode.save()保存模型。

  3. 运行应用程序的训练命令,触发模型的保存

这样保存的模型使用 https://github.com/amir-abdi/keras_to_tensorflow 中转pb的命令时就不会报错了


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。