如何以CNTK格式保存Keras模型

时间:2017-07-06 08:02:15

标签: keras cntk

有没有办法将Keras模型保存为CNTK格式,以便我们可以使用CNTK的API加载它?

我在下面尝试过这段代码,但失败了:

a = Input(shape=(224,224,3))
b = Conv2D(64, (2,2), name='conv1')(a)
model = Model(inputs=a, outputs=b)
cntk.combine(model.outputs).save('model2.dnn')

3 个答案:

答案 0 :(得分:3)

请参阅Keras-CNTK saving model-v2 format

以CNTK格式保存Keras模型(当使用CNTK作为后端时):

import cntk as C
from keras.backend import load_model

keras_model = load_model('my_keras_model.h5')

cntk.combine(keras_model.model.outputs).save('my_cntk_model')
cntk_model = C.load_model('my_cntk_model')

以TensorFlow格式保存Keras(当使用TensorFlow作为后端时):

model = load_model('model2.h5')
sess = K.get_session()
tf_saver = tf.train.Saver()
tf_saver.save(sess=sess, save_path=checkpoint_path)

答案 1 :(得分:0)

在你的代码之后,试试这个:

loaded_model = cntk.load('model2.dnn')

您会找到更多详情here

答案 2 :(得分:0)

我使用此converter在keras和CNTK之间转换模型。

  1. 保存keras模型model.save('keras_model.h5')

  2. 安装转换器pip install -U git+https://github.com/Microsoft/MMdnn.git@master

  3. 运行命令:mmconvert -sf keras -iw keras_model.h5 -df cntk -om cntk_model.dnn