[python] Keras 모델을 GPU에서 실행할 수 있습니까?

제출 기한이 36 시간 인 Keras 모델을 실행 중입니다. CPU에서 모델을 훈련하면 약 50 시간이 걸립니다. GPU에서 Keras를 실행할 수있는 방법이 있습니까?

Tensorflow 백엔드를 사용하고 있으며 아나콘다를 설치하지 않고 Jupyter 노트북에서 실행하고 있습니다.



답변

예, GPU에서 keras 모델을 실행할 수 있습니다. 먼저 확인해야 할 사항이 거의 없습니다.

  1. 시스템에 GPU가 있습니다 (Nvidia. AMD는 아직 작동하지 않으므로)
  2. Tensorflow의 GPU 버전을 설치했습니다.
  3. CUDA 설치 지침을 설치했습니다.
  4. GPU가 작동 하는지 확인하여 Tensorflow가 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에서 실행됩니다.

keras (> = 2.1.1)이 GPU를 사용하고 있는지 확인하려면 :

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

모두 제일 좋다.


답변

확실한. GPU 용 TensorFlow를 이미 설치했다고 가정합니다.

케라를 가져온 후 다음 블록을 추가해야합니다. 56 코어 CPU와 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)

물론이 사용은 내 컴퓨터의 최대 제한을 적용합니다. CPU 및 GPU 소비 값을 줄일 수 있습니다.


답변

2.0 호환 답변 : 위에서 언급 한 답변은 Keras Model에서 GPU를 사용하는 방법에 대해 자세히 설명하지만 .NET에서 어떻게 할 수 있는지 설명하고 싶습니다 Tensorflow Version 2.0.

사용 가능한 GPU 수를 확인하려면 아래 코드를 사용할 수 있습니다.

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

작업 및 텐서가 할당 된 장치를 찾으 tf.debugging.set_log_device_placement(True)려면 프로그램의 첫 번째 문을 입력하십시오.

장치 배치 로깅을 활성화하면 Tensor 할당 또는 작업이 인쇄됩니다. 예를 들어 아래 코드를 실행합니다.

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)

아래에 표시된 출력을 제공합니다.

장치 / job : localhost / replica : 0 / task : 0 / device : GPU : 0 tf.Tensor ([[22. 28.] [49. 64.]], shape = (2, 2), dtype = float32)

자세한 내용은 이 링크를 참조하십시오.


답변

물론이야. Tensorflow 또는 CNTk 백엔드에서 실행중인 경우 코드는 기본적으로 GPU 장치에서 실행되지만 Theano 백엔드 인 경우 다음을 사용할 수 있습니다.

Theano 플래그 :

“THEANO_FLAGS = device = gpu, floatX = float32 python my_keras_script.py”


답변

스크립트가 작업 관리자에서 GPU를 실행 중인지 확인합니다. 그렇지 않은 경우 CUDA 버전이 이미 제안 된 다른 답변과 같이 사용중인 tensorflow 버전에 맞는 것으로 의심됩니다.

또한 텐서 플로우로 GPU를 실행하려면 CUDA 버전에 적합한 CUDA DNN 라이브러리가 필요합니다. 여기 에서 다운로드 / 추출 하고 DLL (예 : cudnn64_7.dll)을 CUDA bin 폴더 (예 : C : \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.1 \ bin)에 넣습니다.


답변