Чи можна запустити модель Keras на gpu?


125

Я запускаю модель Keras, термін подання якої становить 36 годин, якщо я треную свою модель на процесорі, це займе приблизно 50 годин, чи є спосіб запустити Keras на gpu?

Я використовую бекенд Tensorflow і запускаю його на своєму ноутбуку Юпітера без анаконди.


Я виявив це: medium.com/@kegui/… Складається враження, що можна було б вивчити високо оцінені питання у вузькому полі тут, а потім зробити повну "відповідь" на "Середній" та заробити фактичні гроші за перегляди.
EngrStudent

Для процесора AMD. Дивіться цю публікацію. stackoverflow.com/a/60016869/6117565
Бікрам

Відповіді:


175

Так, ви можете запускати моделі keras на GPU. Кілька речей, вам доведеться перевірити спочатку.

  1. у вашій системі є GPU (Nvidia. Оскільки AMD ще не працює)
  2. Ви встановили версію GPU tensorflow
  3. Ви встановили інструкції з установки CUDA
  4. Переконайтеся, що tensorflow працює з перевіркою GPU, чи працює GPU

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

АБО

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

вихід буде приблизно таким:

[
  name: "/cpu:0"device_type: "CPU",
  name: "/gpu:0"device_type: "GPU"
]

Як тільки все це буде зроблено, ваша модель запуститься на GPU:

Щоб перевірити, чи керас (> = 2.1.1) використовує GPU:

from keras import backend as K
K.tensorflow_backend._get_available_gpus()

Всього найкращого.


мені доведеться встановити python 3.5 для цього права? інакше tensorflow не буде працювати?
Райан

Не обов `язково. TF працює з 2,7 і 3,5 обома. Оберіть правильну версію TF, це все.
Вікаш Сінгх

добре, погано йти з 2,7, проблеми з хавігами з встановленням 3,5
Райан

Я отримую цю помилку -Could not find any downloads that satisfy the requirement tensorflow in /usr/local/lib/python2.7/dist-packages Downloading/unpacking tensorflow Cleaning up... No distributions at all found for tensorflow in /usr/local/lib/python2.7/dist-packages Storing debug log for failure in /home/hyperworks/.pip/pip.log
Райан

12
K.tensorflow_backend._get_available_gpus()не працює в TensorFlow 2.0.
nbro

21

Звичайно. Я припускаю, що ви вже встановили TensorFlow для GPU.

Після імпорту кери потрібно додати наступний блок. Я працюю на машині, яка має 56 ядерних процесорів і gpu.

import keras
import tensorflow as tf


config = tf.ConfigProto( device_count = {'GPU': 1 , 'CPU': 56} ) 
sess = tf.Session(config=config) 
keras.backend.set_session(sess)

Звичайно, це використання застосовує мої машини до максимальних лімітів. Ви можете зменшити значення споживання процесорів та gpu.


1
Помилкаmodule 'tensorflow' has no attribute 'ConfigProto'
Divyanshu Srivastava

Ви використовуєте tensorflow 2? Я перевірив його на tf 1.X.
Johncasey

13

Сумісний відповідь : Хоча вищезгадана відповідь детально пояснювала, як використовувати GPU на моделі Keras, я хочу пояснити, як це можна зробити Tensorflow Version 2.0.

Щоб знати, скільки доступних графічних процесорів, ми можемо скористатись наведеним нижче кодом:

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

Щоб дізнатися, яким пристроям призначені ваші операції та тензори, поставте tf.debugging.set_log_device_placement(True)як перше твердження вашої програми.

Увімкнення журналу розташування пристроїв призводить до друку будь-яких розподілів тензорів або операцій. Наприклад, запустивши наведений нижче код:

tf.debugging.set_log_device_placement(True)

# Create some tensors
a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
c = tf.matmul(a, b)

print(c)

дає результат, показаний нижче:

Виконання op MatMul у пристрої / роботі: localhost / replica: 0 / task: 0 / device: GPU: 0 tf.Tensor ([[22. 28.] [49. 64.]], shape = (2, 2), dtype = float32)

Для отримання додаткової інформації перейдіть за цим посиланням


1

Звичайно. якщо ви працюєте на резервних копіях Tensorflow або CNTk, ваш код буде працювати на ваших GPU-пристроях за замовчуванням. Але, якщо Theano виходить, ви можете використовувати наступні

Прапори Theano:

"THEANO_FLAGS = пристрій = gpu, floatX = float32 python my_keras_script.py"


0

Перевірте, чи не працює ваш сценарій GPU в диспетчері завдань. Якщо ні, підозріть, що ваша версія CUDA є правильною для використовуваної версії тензорфлоу, як уже запропоновано інші відповіді.

Крім того, для роботи GPU з tensorflow необхідна належна бібліотека CUDA DNN для версії CUDA. Завантажте / витягніть його звідси і покладіть DLL (наприклад, cudnn64_7.dll) у папку бін CUDA (наприклад, C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.1 \ bin).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.