Я создал виртуальную среду tenorflow-gpu в Anaconda и протестировал некоторые коды на jupyter-lab. Во время этого я обнаружил проблему: сначала я установил устройство на GPU: 0 with tf.device('/gpu:0'):
, и все в порядке , Затем я установил для устройства значение GPU: 1 with tf.device('/gpu:1'):
, произошла ошибка (поскольку доступен только GPU: 0), поэтому я установил для устройства значение GPU: 0, а затем произошло нечто интересное, что ошибка все еще существует! Сначала я задавался вопросом, что-то не так с cuda или другими, но в последнее время я обнаружил, что могу решить проблему, перезапустив ядро. Так в чем же причина проблемы и есть ли лучшее решение, чем перезапуск ядра (так хлопотно!)? Еще одна деталь, которую я хочу добавить, заключается в том, что эта проблема не возникала на pycharm в той же среде. Ниже приведен код и информация об ошибке.
import tensorflow as tf
a = tf.constant([1.0, 2.0, 3.0], shape=[3], name='a')
b = tf.constant([1.0, 2.0, 3.0], shape=[3], name='b')
with tf.device('/gpu:0'):
c = a + b
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
sess.run(tf.global_variables_initializer())
print(sess.run(c))
InvalidArgumentError: Cannot assign a device for operation add_1: node add_1 (defined at <ipython-input-2-088a6027ad
89>:5) was explicitly assigned to /device:GPU:1 but available devices are [ /job:localhost/replica:0/task:0/device:
CPU:0, /job:localhost/replica:0/task:0/device:GPU:0 ]. Make sure the device specification refers to a valid device.
[[add_1]]