模型数据转换:keras to tensorflow

近期准备把用keras训练好的模型部署到移动端,数据格式转换的第一步就是 .h5文件转化为 .pd文件

. h5文件转化为 .pd 文件

  • keras保存的一种模型文件为.h5格式,可直接用 model.save() 的方法把整个模型保存成,h5文件;或者把参数和网络分开保存,model.save_weights() 保存参数为.h5文件,model.to_json() 保存网络为 .json文件
  • 开源代码地址:https://github.com/amir-abdi/keras_to_tensorflow ,上面有详细的叙述使用方法,主要问题在于配置代码运行环境,此处省略一些库的配置。
  • 遇到的问题一:keras_to_tensorflow源码中加载保存好的模型时,遇到类似 ValueError: Unknown layer: YourLayer 的问题,因为可能你要转的模型网络的某一layer不是keras中已有的标准layer,所以需要自己导入这layer。
  1. 先导入这个模块如 YourLayer
    from YourModule import YourLayer
  2. 然后把源码中加载模型的代码
    model = keras.models.load_model(input_model_path)
    更改为
    model = keras.models.load_model(input_model_path,custom_objects={"YourLayer": YourLayer})
  • 遇到的问题二:适配导入的YourMoudle模块和此源码所需的 keras和 tensorflow版本,若是适配不了,想办法简单地修改其源码。

你可能感兴趣的:(深度学习)