是否可以从Tensorflow中的检查点模型恢复训练



我正在做自动分割,周末我在训练一个模型,结果停电了。我已经训练了我的模型50多个小时,并使用线每5个时期保存一次我的模型

model_checkpoint = ModelCheckpoint('test_{epoch:04}.h5', monitor=observe_var, mode='auto', save_weights_only=False, save_best_only=False, period = 5)

我正在使用以下行加载保存的模型:

model = load_model('test_{epoch:04}.h5', custom_objects = {'dice_coef_loss': dice_coef_loss, 'dice_coef': dice_coef})

我已经包含了我的所有数据,这些数据将我的训练数据拆分为用于扫描的train_x和用于标签的train_y。当我运行线路时:

loss, dice_coef = model.evaluate(train_x,  train_y, verbose=1)

我得到错误:

ResourceExhaustedError:  OOM when allocating tensor with shape[32,8,128,128,128] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc
[[node model/conv3d_1/Conv3D (defined at <ipython-input-1-4a66b6c9f26b>:275) ]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.
[Op:__inference_distributed_function_3673]
Function call stack:
distributed_function

这基本上是内存不足。因此,您需要进行小批量评估。默认批处理大小为32,请尝试分配较小的批处理大小。

evaluate(train_x,  train_y, batch_size=<batch size>)

来自keras文档

batch_size:整数或无。每次渐变更新的采样数。如果未指定,batch_size将默认为32。

相关内容

  • 没有找到相关文章

最新更新