Тензорный поток графического процессора работает медленнее, чем тензорный поток процессора на ноутбуке? - PullRequest
0 голосов
/ 28 января 2020

Я недавно установил тензор потока графического процессора, CUDA и cuDNN на своем ноутбуке, чтобы обучать мои модели, используя мой графический процессор, используя это учебное пособие. Мой ноутбук - Lenovo Ideapad 510 с процессором = i5-7th и графическим процессором = GForce 940MX (4 ГБ). Следуя инструкциям, я установил и настроил все необходимые изменения, необходимые для использования моего графического процессора.

результаты обучения набора данных mnist на графическом процессоре

Каждому эпо c всего за 6 секунд потребовалось собрать 60 000 изображений. И на таблице nvidia-smi я мог видеть, что моя память GPU была 19MiB. В этом уроке его использование памяти графическим процессором составило 777 МБ.

Затем я попытался запустить свой собственный набор данных и модель, которая имеет 88000 изображений и работает для 10 эпизодов. nvidia-smi для этого обучения показывает использование GPU как 19MiB. tf.test.is_gpu_available() также возвращает FALSE.

CNN MODEL

classifier = Sequential()


classifier.add(Conv2D(32, (3, 3), input_shape = (100, 100, 3), activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))

classifier.add(Conv2D(32, (3, 3), activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))

classifier.add(Flatten())

classifier.add(Dense(units = 128, activation = 'relu'))
classifier.add(Dense(units = 39, activation = 'softmax'))

classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])



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('train',
                                                 target_size = (100,100),
                                                 batch_size = 32,
                                                 class_mode = 'categorical')

test_set = test_datagen.flow_from_directory('test',
                                            target_size = (100, 100),
                                            batch_size = 32,
                                            class_mode = 'categorical')

classifier.fit_generator(training_set,
                         steps_per_epoch = 88534,
                         epochs = 10,
                         validation_data = test_set,
                         validation_steps = 1418)

classifier.save('/home/harish/Desktop/asl-alphabet/asl_pred.h5')

Почему я не могу обучать данные быстрее, чем обычный процессор? Как включить GPU для тренировок?

Ответы [ 2 ]

1 голос
/ 28 января 2020

Используемая вами ссылка имеет несколько способов установки драйвера NVIDIA. Я не уверен, какой метод вы использовали. Первый способ, как правило, не рекомендуется, потому что большую часть времени, что установить драйвер с задним сроком. (Если вы хотите переустановить драйвер, взгляните на этот , описанный в официальной документации tenorflow.)

Однако теперь перейдем к главному.

Поскольку команда nvidia-smi работает, давайте пропустим часть установки драйвера.

Но tf.test.is_gpu_available() возвращает False, что может быть вызвано многими причинами (например, несовместимость CuDNN или Tensorflow с вашим текущим драйвером).

A быстрые решения может быть

  1. Пожалуйста, проверьте текущую версию драйвера графического процессора и найдите подходящий Tensorflow Verson, совместимый с вашим текущим Версия драйвера графического процессора.

  2. Установите программу tenorflow с использованием среды conda. Это позволит загрузить правильные CUDA, CuDNN и другую необходимую библиотеку.

Tensorflow GPU: conda install -c anaconda tensorflow-gpu=<version>

Keras GPU conda install -c anaconda keras-gpu=<version_match_with_tensorflow> (однако tf.keras может быть лучше вместо этой отдельной установки Keras)

0 голосов
/ 28 января 2020

На ноутбуках случается, что приложение не хочет использовать выделенную карту, поскольку оно работает через дисплей Intel. Проверьте, использует ли ваш ноутбук графический процессор Nvidia на панели управления nvidia в разделе настроек 3d, выберите Высокопроизводительная графика Nvidia.

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