Можно ли возобновить обучение с модели контрольной точки в Tensorflow? - PullRequest
0 голосов
/ 28 апреля 2020

Я делаю автоматическую сегментацию, я тренировал модель в выходные дни, и питание отключилось. Я тренировал свою модель более 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})

I включил все мои данные, которые разбивают мои тренировочные данные на 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

1 Ответ

1 голос
/ 28 апреля 2020

В основном вам не хватает памяти. Так что вам нужно выполнить оценку в малой партии. Размер партии по умолчанию равен 32 и попытаться выделить небольшой размер партии.

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

из керас документация

batch_size: целое число или нет. Количество образцов на обновление градиента. Если не указано, batch_size по умолчанию будет 32.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...