Python Keras负载模型需要花费大量时间来加载检查点

Python Keras负载模型需要花费大量时间来加载检查点,python,keras,Python,Keras,我正在创建检查点,以便再次恢复训练 checkpoint = ModelCheckpoint('model.h5', monitor='val_loss', verbose=1, save_best_only=True, mode='min') 但是当我试图恢复训练时,加载model.h5非常慢 from keras.models import load_model model = load_model('model.h5',custom_objects={'GroupNormalizatio

我正在创建检查点,以便再次恢复训练

checkpoint = ModelCheckpoint('model.h5', monitor='val_loss', verbose=1, save_best_only=True, mode='min')
但是当我试图恢复训练时,加载
model.h5
非常慢

from keras.models import load_model
model = load_model('model.h5',custom_objects={'GroupNormalization' : GroupNormalization},compile=False)

有办法解决这个问题吗?

。h5扩展是加载任何大文件最快的扩展之一。加载重量时,可能需要注意两点

  • 你用的是普通硬盘吗
  • 你在用GPU吗
  • 如果不是GPU,则加载到RAM中,然后
  • 如果旧处理器可能需要时间加载,则加载和卸载操作是CPU密集型工作

  • 使用
    ModelCheckpoint
    保存模型,而不使用
    Save\u weights\u only=True
    也将保存优化器状态。您可能会注意到,保存的文件大小比仅具有重量的文件大得多

    较大的文件加载速度较慢,尤其是CPU速度较慢的情况下。Colab在GPU实例上使用1个核心CPU,因此速度非常慢


    如果您现在只想恢复训练,请使用
    save_weights_only=True
    ,然后在恢复时,创建模型并使用
    model。加载重量应更快。但是请注意,优化器将被重置。

    我正在使用colab,但我也在本地服务器上进行了测试。是的,我正在使用GPUhe已经在使用
    save\u weights\u only=True
    。他在问题中提到了这一点@Houzayfafafai那是
    只保存最好的东西
    ,这是完全不同的事情!!没有办法
    load\u model
    只对重量有效,对吗?我可以通过
    load\u weight
    恢复训练吗?你可以,你只需要重量。如果您使用类似于
    adam
    的东西,那么拥有优化器状态会更好,但它只会使前几次迭代收敛得更快,这不是必需的。我正在使用
    Quadro GV100
    加载我的注意层,当将compile attr设置为
    True
    时,加载模型大约需要6秒。加载模型需要多长时间?我等了大约一个小时,这是一个300 mb的文件,但没有加载