将Keras模型转换为TensorFlow

3

是否有可能将keras模型(网络结构和权重的h5文件)转换为tensorflow模型?或者是否有与keras中model.save等价的函数在tensorflow中可用?


1
你可能想要查看这篇博客文章这个代码片段 - petezurich
1
非常感谢。这些似乎是用于卷积网络的,我的模型是顺序稠密LSTM进行预测。您知道是否有人做过这样的事情吗? - GS1905ASY
很抱歉,我不知道这是否已经完成。我认为你的特定架构并不重要。模型就是模型。请告诉我们你发现了什么。这可能对其他人也有帮助。祝好运! - petezurich
1个回答

0

是的,这是可能的,因为Keras使用Tensorflow作为后端,也构建了计算图。您只需要从Keras模型中获取此图即可。

"Keras仅使用一个图和一个会话。您可以通过K.get_session()访问会话。与之关联的图将是:K.get_session().graph。"

(来自fchollet: https://github.com/keras-team/keras/issues/3223#issuecomment-232745857)

或者您可以以检查点格式保存此图(https://www.tensorflow.org/api_docs/python/tf/train/Saver):

import tensorflow as tf
from keras import backend as K

saver = tf.train.Saver()
sess = K.get_session()
retval = saver.save(sess, ckpt_model_name)

顺便提一下,自从tensorflow 13版本以后,你可以直接在其中使用keras:

from tensorflow.python.keras import models, layers

请问您能否更新您的答案 - 因为有很多错误,它根本无法工作。 - Vyachaslav Gerchicov
@VyachaslavGerchicov,您还需要吗?如果是,请提供输出,您遇到了什么样的错误?然而,算法很简单:通过Keras获取TF会话,然后使用此会话进行检查点保存。或者您可以将其用于以.pb格式保存模型。 - orsveri
最终我们找到了一些自动机器学习解决方案(无需编写脚本),并决定使用它们。也许将来我们会回到手动编写脚本的方式。 - Vyachaslav Gerchicov
@VyachaslavGerchicov 很高兴听到您找到了好的解决方案!现在有一个选项可以将模型转换为ONNX格式(用于推理)。它支持所有流行的框架 - keras,tf,pytorch,caffe。 - orsveri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接