Выделение 86973087744 превышает 10% системной памяти - PullRequest
0 голосов
/ 02 октября 2019

enter image description here Я использую SRGAN для супер-разрешения, если изображения размером от 64x64 до 1024x1024. Сеть очень глубокая (в ней 16 остаточных блоков). Если я использую код для супер-разрешения от 64х64 до 256х256, все в порядке. Но для 16-кратного повышения частоты я начинаю получать ошибку памяти. Я использую Nvidia GeForce GTC 1080Ti. На системном мониторе я вижу, что память и своп достигают максимальных значений, и через некоторое время код вылетает. Я также установил версию Tensorflow GPU. Почему код использует память процессора вместо памяти графического процессора?

1 Ответ

0 голосов
/ 02 октября 2019

Вы можете попробовать перед началом сеанса:

os.environ["CUDA_VISIBLE_DEVICES"]="0"
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.7)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

Так как это ограничивает использование памяти графического процессора, я думаю, у вас не будет сбоев памяти. Однако имейте в виду, что при ограниченном использовании памяти графического процессора процесс будет длиться дольше. Более того, os.environ сделает вас уверенным, что вы находитесь в CUDA. Однако ="0" часть может быть изменена от системы к системе. Вы также можете попробовать ="".

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