Убедитесь, что TF2 использует мой GPU во время тренировки - PullRequest
1 голос
/ 05 марта 2020

Мне интересно, есть ли способ подтвердить, что моя модель TF обучается на моем GPU после того, как я сохранил на ней данные обучения, как рекомендовано в руководстве по TF. Вот краткий пример кода:

import tensorflow as tf

print('Num GPUs Available:', len(tf.config.experimental.list_physical_devices('GPU')))

# load data on GPU
with tf.device('/GPU:0'):
    mnist = tf.keras.datasets.mnist
    (x_train, y_train), (x_test, y_test) = mnist.load_data()
    x_train, x_test = x_train / 255.0, x_test / 255.0
# define, compile and train the model
model = tf.keras.models.Sequential([tf.keras.layers.Dense(1)])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['acc'])
model.fit(x_train, y_train, batch_size=32, epochs=5)

Ответы [ 2 ]

2 голосов
/ 05 марта 2020

Есть несколько способов проверить наличие графического процессора в Tensorflow 2.x. По сути, если GPU доступен, то модель будет работать на нем (если он не занят, например, другим экземпляром TF, который его заблокировал). Размещение также будет видно в файлах журналов и может быть подтверждено, например, nvidia-smi.

. В приведенном ниже коде я предполагаю, что tensorflow импортируется как tf (в соответствии с соглашением и вашим кодом) .

Для проверки доступных устройств выполните: ', device_type =' CPU '), PhysicalDevice (name =' / Physical_device: XLA_CPU: 0 ', device_type =' XLA_CPU '), PhysicalDevice (name =' / Physical_device: GPU: 0 ', device_type =' GPU '), PhysicalDevice (name = '/ Physical_Device: XLA_GPU: 0', device_type = 'XLA_GPU')] * Чтобы проверить, есть ли в системе графический процессор: is_gpu = len(tf.config.experimental.list_physical_devices('GPU')) > 0 Из Tensorflow 2.1 эта функциональность была перенесена из экспериментальной, и вы можете использовать: tf.config.list_physical_devices() таким же образом, то есть is_gpu = len(tf.config.list_physical_devices('GPU')) > 0 В какой-то момент экспериментальная часть устареет. И последнее, но не менее важное: если ваш тензор потока был построен без CUDA (это не-GPU версия), list_physical_devices('GPU') также повторит urn False, даже если ваша физическая система имеет графический процессор. «Это автоматически c, если GPU распознается TF?»

Да. Цитировать после TF docs :

Примечание: Используйте tf.config.experimental.list_physical_devices ('GPU'), чтобы подтвердить, что TensorFlow использует GPU.

Если он будет распознан, он будет использоваться во время обучения. Если вы хотите быть абсолютно уверены, вы можете запросить более явное ведение журнала:

tf.debugging.set_log_device_placement(True)
0 голосов
/ 06 марта 2020

Для этого есть более простой способ:

import tensorflow as tf
if tf.test.gpu_device_name():
    print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))
else:
    print(""Please install GPU version of TF"")

(или)

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

(или)

В TF появилось несколько полезных функций:

Сообщает, доступен ли графический процессор

tf.test.is_gpu_available()

Возвращает имя устройства графического процессора "

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