Bisakah saya menjalankan model Keras di GPU?


125

Saya menjalankan model Keras, dengan batas waktu pengiriman 36 jam, jika saya melatih model saya di cpu akan memakan waktu kurang lebih 50 jam, apakah ada cara untuk menjalankan Keras di gpu?

Saya menggunakan backend Tensorflow dan menjalankannya di notebook Jupyter, tanpa menginstal anaconda.


Saya menemukan ini: medium.com/@kegui/… Rasanya seperti seseorang dapat membaca dengan teliti pertanyaan berperingkat tinggi di bidang sempit di sini, dan kemudian membuat "jawaban" lengkap di Medium, dan menghasilkan uang yang sebenarnya dari penayangan.
EngrStudent

Untuk AMD GPU. Lihat posting ini. stackoverflow.com/a/60016869/6117565
bikram

Jawaban:


175

Ya, Anda dapat menjalankan model keras pada GPU. Beberapa hal yang harus Anda periksa terlebih dahulu.

  1. sistem Anda memiliki GPU (Nvidia. Karena AMD belum berfungsi)
  2. Anda telah menginstal tensorflow versi GPU
  3. Anda telah menginstal instruksi instalasi CUDA
  4. Verifikasi bahwa tensorflow berjalan dengan GPU, periksa apakah GPU berfungsi

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

ATAU

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

keluarannya akan menjadi seperti ini:

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

Setelah semua ini selesai, model Anda akan berjalan di GPU:

Untuk memeriksa apakah keras (> = 2.1.1) menggunakan GPU:

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

Semua yang terbaik.


saya harus menginstal python 3.5 untuk hak ini? kalau tidak tensorflow tidak akan berfungsi?
Ryan

Tidak perlu. TF bekerja dengan 2,7 dan 3,5 keduanya. Pilih versi TF yang benar itu saja.
Vikash Singh

baiklah, sakit pergi dengan 2.7, masalah navigasi dengan menginstal 3.5
Ryan

Saya mendapatkan Kesalahan ini -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
Ryan

12
K.tensorflow_backend._get_available_gpus()tidak berfungsi di TensorFlow 2.0.
nbro

21

Tentu. Saya kira Anda telah menginstal TensorFlow untuk GPU.

Anda perlu menambahkan blok berikut setelah mengimpor keras. Saya sedang mengerjakan mesin yang memiliki 56 core cpu, dan sebuah 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)

Tentu saja, penggunaan ini memberlakukan batas maksimum mesin saya. Anda dapat menurunkan nilai konsumsi cpu dan gpu.


1
Kesalahanmodule 'tensorflow' has no attribute 'ConfigProto'
Divyanshu Srivastava

Anda menggunakan tensorflow 2? Saya mengujinya untuk tf 1.X.
johncasey

13

2.0 Jawaban yang Kompatibel : Sementara jawaban yang disebutkan di atas menjelaskan secara rinci tentang cara menggunakan GPU pada Model Keras, saya ingin menjelaskan bagaimana hal itu dapat dilakukan Tensorflow Version 2.0.

Untuk mengetahui berapa banyak GPU yang tersedia, kita dapat menggunakan kode di bawah ini:

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

Untuk mengetahui perangkat mana yang menetapkan operasi dan tensor Anda, letakkan tf.debugging.set_log_device_placement(True)sebagai pernyataan pertama program Anda.

Mengaktifkan pencatatan penempatan perangkat menyebabkan semua alokasi atau operasi Tensor dicetak. Misalnya, menjalankan kode di bawah ini:

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)

memberikan Output yang ditunjukkan di bawah ini:

Menjalankan op MatMul di perangkat / pekerjaan: localhost / replika: 0 / tugas: 0 / perangkat: GPU: 0 tf.Tensor ([[22. 28.] [49. 64.]], bentuk = (2, 2), dtype = float32)

Untuk informasi lebih lanjut, lihat tautan ini


1

Tentu saja. jika Anda menjalankan di backend Tensorflow atau CNTk, kode Anda akan berjalan di perangkat GPU Anda secara default. Tetapi jika Theano backend, Anda dapat menggunakan

Bendera Theano:

"THEANO_FLAGS = device = gpu, floatX = float32 python my_keras_script.py"


0

Lihat apakah skrip Anda menjalankan GPU di Manajer tugas. Jika tidak, curiga versi CUDA Anda benar untuk versi tensorflow yang Anda gunakan, seperti yang sudah disarankan oleh jawaban lain.

Selain itu, pustaka DNN CUDA yang tepat untuk versi CUDA diperlukan untuk menjalankan GPU dengan tensorflow. Unduh / ekstrak dari sini dan letakkan DLL (mis., Cudnn64_7.dll) ke dalam folder bin CUDA (mis., C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.1 \ bin).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.