Как вызвать исключение для тензорного потока из-за ошибки памяти - PullRequest
4 голосов
/ 23 мая 2019

Я выполняю несколько выводов тензорного потока, используя sess.run() в цикле, и случается, что некоторые выводы слишком тяжелы для моего GPU.

Я получаю сообщения об ошибках типа:

2019-05-23 15:37:49.582272: E tensorflow/core/common_runtime/executor.cc:623] 
Executor failed to create kernel. Resource exhausted: OOM when allocating tensor of shape [306] and type float

Я хотел бы иметь возможность отлавливать эти конкретные ошибки OutOfMemory, но не другие ошибки (которые могут быть связаны с неправильным форматом ввода или поврежденным графиком.)

Очевидно, структура похожа на:

try:
   sess.run(node_output, feed_dict={node_input : value_input})
except:
    do_outOfMemory_specific_stuff()

не работает, так как другие виды ошибок приведут к вызову функции do_outOfMemory_specific_stuff.

Есть идеи, как отловить эти ошибки OutOfMemory?

1 Ответ

5 голосов
/ 23 мая 2019

Вы должны быть в состоянии поймать это через:

...
except tf.errors.ResourceExhaustedError as e:
    ...

согласно этой документации .

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