Keras模型的导出和pb文件的转换
Posted sddai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Keras模型的导出和pb文件的转换相关的知识,希望对你有一定的参考价值。
Keras有两种类型的模型,序贯模型(Sequential)和函数式模型(Model),函数式模型应用更为广泛,序贯模型是函数式模型的一种特殊情况。
两类模型有一些方法是相同的:
-
model.summary()
:打印出模型概况,它实际调用的是keras.utils.print_summary -
model.get_config()
:返回包含模型配置信息的Python字典。模型也可以从它的config信息中重构回去
config = model.get_config()
model = Model.from_config(config)
# or, for Sequential:
model = Sequential.from_config(config)
-
model.get_layer()
:依据层名或下标获得层对象 -
model.get_weights()
:返回模型权重张量的列表,类型为numpy array -
model.set_weights()
:从numpy array里将权重载入给模型,要求数组具有与model.get_weights()
相同的形状。 -
model.to_json
:返回代表模型的JSON字符串,仅包含网络结构,不包含权值。可以从JSON字符串中重构原模型:
from models import model_from_json
json_string = model.to_json()
model = model_from_json(json_string)
model.to_yaml
:与model.to_json
类似,同样可以从产生的YAML字符串中重构模型
from models import model_from_yaml
yaml_string = model.to_yaml()
model = model_from_yaml(yaml_string)
-
model.save_weights(filepath)
:将模型权重保存到指定路径,文件类型是HDF5(后缀是.h5) -
model.load_weights(filepath, by_name=False)
:从HDF5文件中加载权重到当前模型中, 默认情况下模型的结构将保持不变。如果想将权重载入不同的模型(有些层相同)中,则设置by_name=True
,只有名字匹配的层才会载入权重
json_string = nima.nima_model.to_json()
with open (‘model.json‘, ‘w‘) as ft:
ft.write(json_string)
print(‘@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@‘)
print(‘write json done.‘)
https://github.com/amir-abdi/keras_to_tensorflow
以上是关于Keras模型的导出和pb文件的转换的主要内容,如果未能解决你的问题,请参考以下文章
将 keras 模型从 pb 文件转换为 tflite 文件
将 Keras 模型导出到 .pb 文件并针对推理进行优化会在 Android 上提供随机猜测
如何将训练有素的 Tensorflow 模型转换为 Keras?
Tensorflow (.pb) 格式到 Keras (.h5)