【问题标题】:Tensorflow keras - How to avoid erroring out when loading h5 model if model is not presentTensorflow keras - 如果模型不存在,如何避免在加载 h5 模型时出错
【发布时间】:2019-07-03 17:47:26
【问题描述】:

当我尝试像这样获取模型时,我正在编写一个专门训练机器学习模型的应用程序:

model = tf.keras.models.load_model('./models/model.h5')

我收到一个错误:

Unable to open file (unable to open file: name = 'models/model.h5', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)

但在某些特殊情况下,模型可能不存在于磁盘上,此时应创建、训练并保存模型以供以后使用。检查模型是否存在的正确方法是什么?我可以使用 python 中的内置功能来检查文件是否存在,但对我来说很明显 load_model 上应该有一个参数,如果文件不存在则返回 None 而不是抛出错误。

【问题讨论】:

    标签: python-3.x tensorflow keras


    【解决方案1】:

    检查文件是否存在的 Python 方法是正确的方法。

    这可能是个人的,但应该返回 None 并不明显。打开文件时,该文件必须存在。

    你可以:

    import os.path
    
    if os.path.isfile(fname):
        model=load_model(fname)
    else:
        model = createAndTrainModel()
    

    或者你可以

    try:
        model=load_model(fname)
    except:
        model = createAndTrainModel()
    

    我更喜欢第一个。

    【讨论】:

    • try: return tf.keras.models.load_model('./models/model.h5') except OSError: 是我目前使用的方法,指定确切的异常,但这是我的额外代码不喜欢,我习惯在这种情况下得到一个空值。
    猜你喜欢
    • 2019-08-03
    • 2019-04-12
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 2021-03-08
    • 2021-02-18
    • 2019-08-28
    相关资源
    最近更新 更多