Keras использует gpu автоматически? - PullRequest
0 голосов
/ 26 декабря 2018

Кажется, что он использует gpu автоматически, но я не знаю, почему.

Сначала я объявил, как показано ниже

tf_config = tf.ConfigProto( allow_soft_placement=True )
tf_config.gpu_options.allow_growth = True
sess = tf.Session(config=tf_config) 
keras.backend.set_session(sess)

Затем я определил некоторую модель, как показано ниже

with K.tf.device('/gpu:0'):
    some keras model

Очевидно, что он будет использовать графический процессор, и я проверил, что он использует первый графический процессор (с индексом 0), как я и ожидал.

Но затем я удалил строку

with K.tf.device('/gpu:0'):

и переименовал все модели керас.Я запустил код, все еще похоже на использование первого gpu (с индексом 0).

В моем Ubuntu я использовал команду nvidia-smi, чтобы проверить использование памяти gpu, и я посмотрел на диспетчер процессов в моих окнах,

Они оба используют память GPU и ее использование.

Насколько я помню, tenorflow не использует gpu, если я не щадю их в своей модели.Но с Keras кажется, что он использует gpu автоматически ... это потому, что я запустил код

tf_config = tf.ConfigProto( allow_soft_placement=True )
tf_config.gpu_options.allow_growth = True
sess = tf.Session(config=tf_config) 
keras.backend.set_session(sess)

или есть какая-то другая причина, по которой я скучаю?

1 Ответ

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

Согласно документации TensorFlow будет использовать графический процессор по умолчанию, если он существует:

Если операция TensorFlow имеет реализации как CPU, так и GPU, устройства GPU будутиметь приоритет , когда операция назначена устройству.Например, у matmul есть как ядра CPU, так и ядра GPU. В системе с устройствами cpu: 0 и gpu: 0 для запуска будет выбрано gpu: 0

...