是否有可能将keras模型(网络结构和权重的h5文件)转换为tensorflow模型?或者是否有与keras中model.save等价的函数在tensorflow中可用?
是否有可能将keras模型(网络结构和权重的h5文件)转换为tensorflow模型?或者是否有与keras中model.save等价的函数在tensorflow中可用?
是的,这是可能的,因为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