Я использовал тензорный поток для обучения CNN с Nvidia Geforce 1060 (память 6 ГБ), но у меня возникло исключение OOM.
В первые две эпохи процесс обучения прошел нормально, но в третью эпоху произошло исключение OOM.
============================ 2017-10-27 11:47: 30.219130: W tensorflow / core / common_runtime / bfc_allocator.cc: 277] ********************************************** ******************************************** xxxxxx 2017-10 гг. -27 11: 47: 30.265389: W tensorflow / core / framework / op_kernel.cc: 1192] Ресурс исчерпан: OOM при выделении тензора с формой [10,10,48,48,48] Traceback (последний вызов последним): файл "/anaconda3/lib/python3.6/sitepackages/tensorflow/python/client/session.py", строка 1327, в _do_call return fn (* args) File "/anaconda3/lib/python3.6/site-packages/tensorflow /python/client/session.py ", строка 1306, в состоянии _run_fn, run_metadata) Файл" /anaconda3/lib/python3.6/contextlib.py ", строка 88, в выходе далее (сам .gen) Файл "/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/errors_impl.py", строка 466, в файле raise_exception_on_not_ok_status pywrap_tensorflow.TF_GetCode (status)) tensorflow.python.frameplustedErrors. : OOM w при выделении тензора с формой [10,10,48,48,48] [[Узел: gradient_4 / global / Detector_scope / maxpool_conv3d_2 / MaxPool3D_grad / MaxPool3DGrad = MaxPool3DGrad [T = DT_FLOAT, TInput = DT_FLOAT, kD_form_form_ [1, 2, 2, 2, 1], padding = "VALID", strides = [1, 2, 2, 2, 1], _device = "/ job: localhost / replica: 0 / task: 0 / gpu: 0 "] (глобальный / детектор_скопа / maxpool_conv3d_2 / транспонирование, глобальный / детектор_scope / maxpool_conv3d_2 / MaxPool3D, градиенты_4 / глобальный / детектор_scope / maxpool_conv3d_2 / transpose_1_grad / transpose)]] [[Node: Momentum_4 / updatecv540 = _ "/ job: localhost / replica: 0 / task: 0 / cpu: 0", send_device = "/ job: localhost / replica: 0 / task: 0 / gpu: 0", send_device_incarnation = 1, tensor_name = "edge_1540_Momentum_4 / update ", tensor_type = DT_FLOAT, _device =" / job: localhost / replica: 0 / task: 0 / cpu: 0 "]]
=============================
Итак, я не понимаю, почему я получил это исключение OOM в третью эпоху после завершения обработки первых двух эпох.
Учитывая, что наборы данных одинаковы в каждую эпоху, если у меня закончится память графического процессора, я должен получить исключение в первую эпоху. Но две эпохи я успешно завершил. Итак, почему это произошло позже?
Есть предложения, пожалуйста?