Как обеспечить использование тензорного потока с помощью графического процессора - PullRequest
0 голосов
/ 30 июня 2018

Я установил CUDA v9.2 и соответствующий cuDNN вручную, чтобы установить тензор потока GPU Но я понял, что для tenorflow 1.8.0 требуется CUDA 9.0, поэтому я запустил

pip install tensorflow-gpu

из приглашения anaconda (базовая среда), где автоматически устанавливается CUDA 9.0 и соответствующий cuDNN. Я запустил Spyder из той же командной строки. Итак, вот мой код в Python 3.6, где я использую керасы и тензорный поток для обучения с использованием 8000 нечетных изображений -

# Convolutional Neural Networks
# Part 1 - Building the CNN
# Not important

# Part 2- Fitting the CNN to the images - 
from keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator(
        rescale=1./255,
        shear_range=0.2,
        zoom_range=0.2,
        horizontal_flip=True)

test_datagen = ImageDataGenerator(rescale=1./255)

training_set = train_datagen.flow_from_directory(
        'dataset/training_set',
        target_size=(64, 64),
        batch_size=32,
        class_mode='binary')

test_set = test_datagen.flow_from_directory(
        'dataset/test_set',
        target_size=(64, 64),
        batch_size=32,
        class_mode='binary')
with tf.device("/gpu:0"):   # Notice THIS
    classifier.fit_generator(
            training_set,
            steps_per_epoch=8000,
            epochs=25,
            validation_data=test_set,
            validation_steps=2000)

Обратите внимание, что прямо перед тем, как установить набор данных в конце, я поместил его внутрь

with tf.device("/gpu:0"):

Я думаю, это должно гарантировать, что он использует GPU для обучения? Я не уверен, потому что изменение «gpu: 0» на «cpu: 0» дает то же самое время (18-20 минут на эпоху) для обучения. Как я могу убедиться, что тензорный поток в Spyder использует мой графический процессор?

У меня есть NVIDIA GTX 970, поэтому он совместим с CUDA. Также я использую Python 3.6, это проблема? Должен ли я создать отдельную среду Python 3.5 и установить в нем tenorflow-gpu и попробовать?

1 Ответ

0 голосов
/ 30 июня 2018

Создает график.

 with tf.device('/device:GPU:0'):
    a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
    b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
    c = tf.matmul(a, b)
    # Creates a session with log_device_placement set to True.
    sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
    # Runs the op.
    r = sess.run(c)
    print(r)
    import numpy as np
    assert np.all(r == np.array([[22., 28.], [49., 64.]]))

или зайди на сайт tenorflow (https://www.tensorflow.org/programmers_guide/using_gpu)

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")

или это:

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...