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扩展是加载任何大文件最快的扩展之一。加载重量时,可能需要注意两点
使用
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的文件,但没有加载