Tôi có thể chạy mô hình Keras trên gpu không?


125

Tôi đang chạy mô hình Keras, với thời hạn gửi là 36 giờ, nếu tôi đào tạo mô hình của mình trên cpu thì sẽ mất khoảng 50 giờ, có cách nào để chạy Keras trên gpu không?

Tôi đang sử dụng chương trình phụ trợ Tensorflow và chạy nó trên sổ ghi chép Jupyter của mình mà không cần cài đặt anaconda.


Tôi đã tìm thấy điều này: medium.com/@kegui/… Có cảm giác như một người có thể xem xét các câu hỏi được đánh giá cao trong một lĩnh vực hẹp ở đây, sau đó đưa ra "câu trả lời" đầy đủ trên Phương tiện và kiếm tiền thực tế từ lượt xem.
EngrStudent

Đối với GPU AMD. Xem bài đăng này. stackoverflow.com/a/60016869/6117565
bikram

Câu trả lời:


175

Có, bạn có thể chạy các mô hình keras trên GPU. Một số điều bạn sẽ phải kiểm tra đầu tiên.

  1. hệ thống của bạn có GPU (Nvidia. Vì AMD chưa hoạt động)
  2. Bạn đã cài đặt phiên bản GPU của tensorflow
  3. Bạn đã cài đặt hướng dẫn cài đặt CUDA
  4. Xác minh rằng tensorflow đang chạy bằng GPU kiểm tra xem GPU có hoạt động không

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

HOẶC LÀ

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

đầu ra sẽ như thế này:

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

Khi tất cả điều này được thực hiện xong, mô hình của bạn sẽ chạy trên GPU:

Để kiểm tra xem keras (> = 2.1.1) có đang sử dụng GPU hay không:

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

Tất cả những gì tốt nhất.


Tôi sẽ phải cài đặt python 3.5 cho quyền này? Còn lại tensorflow sẽ không hoạt động?
Ryan

Không cần thiết. TF hoạt động với cả 2,7 và 3,5. Chọn đúng phiên bản TF thế là xong.
Vikash Singh

alright, ốm đi với 2.7, vấn đề havig với việc cài đặt 3,5
Ryan

Tôi gặp lỗi này -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()không hoạt động trong TensorFlow 2.0.
nbro

21

Chắc chắn rồi. Tôi cho rằng bạn đã cài đặt TensorFlow cho GPU.

Bạn cần thêm khối sau sau khi nhập keras. Tôi đang làm việc trên một chiếc máy có CPU 56 lõi và một 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)

Tất nhiên, việc sử dụng này thực thi giới hạn tối đa cho máy của tôi. Bạn có thể giảm giá trị tiêu thụ cpu và gpu.


1
Lỗimodule 'tensorflow' has no attribute 'ConfigProto'
Divyanshu Srivastava

Bạn đang sử dụng tensorflow 2? Tôi đã thử nghiệm nó cho tf 1.X.
johncasey

13

2.0 Câu trả lời tương thích : Trong khi câu trả lời được đề cập ở trên giải thích chi tiết về cách sử dụng GPU trên Keras Model, tôi muốn giải thích nó có thể được thực hiện như thế nào Tensorflow Version 2.0.

Để biết có bao nhiêu GPU, chúng ta có thể sử dụng đoạn mã dưới đây:

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

Để tìm hiểu các hoạt động và bộ căng của bạn được chỉ định cho những thiết bị nào, hãy đặt tf.debugging.set_log_device_placement(True)làm câu lệnh đầu tiên của chương trình.

Việc bật ghi nhật ký vị trí thiết bị sẽ in bất kỳ phân bổ hoặc hoạt động Tensor nào. Ví dụ: chạy đoạn mã dưới đây:

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)

đưa ra Đầu ra được hiển thị bên dưới:

Thực thi op MatMul trong thiết bị / công việc: localhost / bản sao: 0 / tác vụ: 0 / thiết bị: GPU: 0 tf.Tensor ([[22. 28.] [49. 64.]], shape = (2, 2), dtype = float32)

Để biết thêm thông tin, hãy tham khảo liên kết này


1

Tất nhiên. nếu bạn đang chạy trên phụ trợ Tensorflow hoặc CNTk, mã của bạn sẽ chạy trên thiết bị GPU của bạn theo mặc định. Nhưng nếu phụ trợ Theano, bạn có thể sử dụng sau

Cờ Theano:

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


0

Xem liệu tập lệnh của bạn có đang chạy GPU trong Trình quản lý tác vụ hay không. Nếu không, hãy nghi ngờ phiên bản CUDA của bạn là phiên bản phù hợp với phiên bản tensorflow bạn đang sử dụng, như các câu trả lời khác đã đề xuất.

Ngoài ra, cần có thư viện CUDA DNN phù hợp cho phiên bản CUDA để chạy GPU với tensorflow. Tải xuống / giải nén nó từ đây và đặt DLL (ví dụ: cudnn64_7.dll) vào thư mục bin CUDA (ví dụ: C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.1 \ bin).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.