Может ли Keras с поддержкой Tensorflow принудительно использовать процессор или графический процессор?

У меня есть Keras, установленный с бэкэндом Tensorflow и CUDA. Я хотел бы иногда по требованию заставить Keras использовать CPU. Можно ли это сделать, не говоря уже об установке отдельного процессора Tensorflow в виртуальной среде? Если да, то как? Если бэкэнд был Theano, флаги могли быть установлены, но я не слышал о флажках Tensorflow, доступных через Keras.

5 Solutions collect form web for “Может ли Keras с поддержкой Tensorflow принудительно использовать процессор или графический процессор?”

Если вы хотите заставить Keras использовать CPU

Способ 1

import os os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" # see issue #152 os.environ["CUDA_VISIBLE_DEVICES"] = "" 

перед тем, как импортировать Keras / Tensorflow.

Путь 2

Запустите свой скрипт как

 $ CUDA_VISIBLE_DEVICES="" ./your_keras_code.py 

См. Также https://github.com/fchollet/keras/issues/4613

В соответствии с учебным tf.device keras вы можете просто использовать ту же область tf.device что и в обычном тензорном потоке:

 with tf.device('/gpu:0'): x = tf.placeholder(tf.float32, shape=(None, 20, 64)) y = LSTM(32)(x) # all ops in the LSTM layer will live on GPU:0 with tf.device('/cpu:0'): x = tf.placeholder(tf.float32, shape=(None, 20, 64)) y = LSTM(32)(x) # all ops in the LSTM layer will live on CPU:0 

Довольно изящным и раздельным способом сделать это является использование

 import tensorflow as tf from keras import backend as K num_cores = 4 if GPU: num_GPU = 1 num_CPU = 1 if CPU: num_CPU = 1 num_GPU = 0 config = tf.ConfigProto(intra_op_parallelism_threads=num_cores,\ inter_op_parallelism_threads=num_cores, allow_soft_placement=True,\ device_count = {'CPU' : num_CPU, 'GPU' : num_GPU}) session = tf.Session(config=config) K.set_session(session) 

Здесь с booleans GPU и CPU вы можете указать, следует ли использовать GPU или GPU при запуске вашего кода. Обратите внимание, что я делаю это, указав, что есть 0 графических устройств, когда я хочу просто использовать CPU. В качестве дополнительного бонуса с помощью этого метода вы можете указать, сколько графических процессоров и процессоров использовать тоже! Кроме того, через num_cores вы можете установить количество ядер ЦП для использования.

Все это выполняется в конструкторе моего класса перед любыми другими операциями и полностью отделяется от какой-либо модели или другого кода, который я использую.

Единственное, что нужно отметить, это то, что вам понадобятся функции tensorflow-gpu и cuda / cudnn потому что вы всегда даете возможность использовать GPU.

Я просто потратил некоторое время на это. Ответ Томы не завершен. скажем, ваша программа test.py, вы хотите использовать gpu0 для запуска этой программы и сохранить другой gpus бесплатно. вы должны написать CUDA_VISIBLE_DEVICES = 0 python test.py

обратите внимание, что это УСТРОЙСТВА НЕ УСТРОЙСТВА

Это сработало для меня (win10), место перед импортом keras:

 import os os.environ['CUDA_VISIBLE_DEVICES'] = '-1' 
  • import input_data MNIST shadoworflow не работает
  • Переподготовка Tensorflow в Windows
  • Тензорный поток: использование нейронной сети для классификации положительных или отрицательных фраз
  • Загрузка модели pyspark ML в среде без искры
  • Можно ли применять только градиентный спуск, например оптимизаторы, с примером кода из градиентов обработки в TensorFlow?
  • Быстрое вычисление прибыли
  • Нет модуля с тензорным потоком - iPython notebook
  • Случайное состояние Python в разбиении набора данных
  • Как подготовить набор данных для Keras?
  • Прогнозировать использование данных с меньшими временными шагами (разное измерение) с использованием модели Keras RNN
  • Как записать вывод потери Keras в файл
  • Python - лучший язык программирования в мире.