Дважды запускалась ошибка gpu в Google Colab Laboratory - PullRequest
0 голосов
/ 06 декабря 2018

Я хочу проверить FIFIQueue, когда я использую "with tf.device (" / device: GPU: 0 "):", при первом запуске все нормально, но когда я запускаю его дважды, возникает ошибкапросто print не может назначить gpu fifo_queue_EnqueueMany (подробности ошибки на изображении ниже), кто-нибудь сердечный, чтобы помочь мне?

введите описание изображения здесь введите описание изображения здесь

1 Ответ

0 голосов
/ 07 декабря 2018

За замечание drpng по Tensorflow: использование очереди FIFO для кода, работающего на графических процессорах Я не ожидал бы, что FIFOQueue будет планировать на GPU, и действительно обернуть ваш код в файл .py (для просмотра TFвывод в журнал) и размещение устройства регистрации подтверждают, что даже первый (успешный) график запускается на ЦП.

В одной ячейке выполняется:

%%writefile go.py

import tensorflow as tf

config = tf.ConfigProto()
#config.allow_soft_placement=True
config.gpu_options.allow_growth = True
config.log_device_placement=True

def go():
  Q = tf.FIFOQueue(3, tf.float16)
  enq_many = Q.enqueue_many([[0.1, 0.2, 0.3],])
  with tf.device('/device:GPU:0'):
    with tf.Session(config=config) as sess:
      sess.run(enq_many)
      print(Q.size().eval())

go()
go()

И в другой ячейке выполните вышеупомянутое как:

!python3 go.py

и наблюдайте за размещением.

Раскомментируйте назначение allow_soft_placement, чтобы аварийное завершение исчезло.

(Я не знаю, почему первое выполнение удается даже влицо не-мягкого размещения при запросе FIFOQueue планировать на GPU явно, как в «первом разе» вашего кода)

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