1

我在 Nvidia Quadro 板上使用 Keras 2.2.4 训练了一个卷积神经网络。我将训练后的模型保存在两个单独的文件中:一个描述架构的文件 (model.json) 和另一个包含所有权重的文件 (model.h5)。

我想在运行 Keras 2.2.2 的 Nvidia Jetson TX2 板上加载保存的模型,我正在尝试按如下方式进行:

# load json and create model
    json_file = open(prefix+'final_model.json', 'r')
    loaded_model_json = json_file.read()
    json_file.close()
    loaded_model = model_from_json(loaded_model_json)
# load weights into new model
    loaded_model.load_weights(prefix+"model.h5")
    model = loaded_model

但是,当我尝试加载时,出现以下错误:

已加载模型 = model_from_json(已加载模型_json)

文件“/home/nvidia/.local/lib/python3.5/site-packages/keras/engine/saving.py”,第 368 行,在 model_from_json 返回反序列化(配置,custom_objects=custom_objects)文件“/home/nvidia/ .local/lib/python3.5/site-packages/keras/layers/ init .py”,第 55 行,在反序列化 printable_module_name='layer') 文件“/home/nvidia/.local/lib/python3.5/site -packages/keras/utils/generic_utils.py”,第 145 行,在 deserialize_keras_object 列表(custom_objects.items())))文件“/home/nvidia/.local/lib/python3.5/site-packages/keras/engine /sequential.py”,第 292 行,在 from_config custom_objects=custom_objects) 文件“ /home/nvidia/.local/lib/python3.5/site-packages/keras/layers/init.py”,第 55 行,在反序列化 printable_module_name='layer') 文件“/home/nvidia/.local/lib/python3.5/site-packages/keras/utils/generic_utils.py”,第 165 行,在 deserialize_keras_object 中:' + function_name) ValueError: Unknown layer:name

我也尝试将整个模型保存在一个文件中,但遇到了同样的错误。

我已经尝试过这里的解决方案,但无法解决。

有没有人见过这个错误?有什么建议么?

4

3 回答 3

4

昨天我遇到了同样的问题,我刚刚通过 conda 更新了 keras,一切正常。

于 2018-11-10T04:25:13.283 回答
0

只需使用以下命令将 keras 包更新为最新版本

conda update keras

于 2018-12-03T17:03:26.840 回答
0

结果tensorflow对我来说是不同的版本。该模型是用创建的tensorflow v2.1.0,我试图用tensorflow v1.10.0. 只要确保tensorflow 版本是一致的

于 2020-03-25T18:58:42.897 回答