【问题标题】:How to save a Keras model in the CNTK format如何以 CNTK 格式保存 Keras 模型
【发布时间】:2017-07-06 08:02:15
【问题描述】:

有没有办法将 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')

【问题讨论】:

标签: keras cntk


【解决方案1】:

请看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)

【讨论】:

  • 是的。我可以保存模型。但是当我尝试加载保存的模型文件时,却报错:raise ValueError('Cannot load a model that is neither a file nor a byte buffer.') RuntimeError: SWIG director method error
【解决方案2】:

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

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

你会发现更多细节here

【讨论】:

    【解决方案3】:

    我使用这个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

    【讨论】:

    • 这不是答案,而是评论
    猜你喜欢
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 2022-11-16
    • 2022-01-19
    • 2018-05-02
    相关资源
    最近更新 更多