TensorFlow 및 keras에서 GPU에 사용되는 설정 작업

2810 단어 TensorFlowkerasGPU

1. 훈련 실행 시 GPU 지정


실행 시 코드 한 줄 추가:

CUDA_VISIBLE_DEVICES=1 python train.py

2. 실행 중 필요에 따라 또는 정량으로 GPU 할당


Tensorflow는 세션을 열 때 몇 줄의 코드를 추가하면 됩니다. Keras는 GPU를 지정하고 필요에 따라 TensorFlow와 다른 용량을 제한합니다. 왜냐하면 Keras 훈련은 봉인되어 있어서 세션에 대한 조작이 좋지 않기 때문입니다.다음은 두 가지 대응하는 조작이다.

keras의 작업:


import os
import tensorflow as tf
from keras.backend.tensorflow_backend import set_session
 
#  GPU  
os.environ["CUDA_VISIBLE_DEVICES"] = "0" # GPU 
 
config = tf.ConfigProto()
config.gpu_options.allocator_type = 'BFC' #A "Best-fit with coalescing" algorithm, simplified from a version of dlmalloc.
config.gpu_options.per_process_gpu_memory_fraction = 0.3 # 
config.gpu_options.allow_growth = True  # 
set_session(tf.Session(config=config)) 

TensorFlow의 작업:


# GPU
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
 
# GPU 
config = tf.ConfigProto() 
config.gpu_options.per_process_gpu_memory_fraction = 0.9 #  GPU90%  
session = tf.Session(config=config)
 
# GPU 
config = tf.ConfigProto() 
config.gpu_options.allow_growth = True 
session = tf.Session(config=config)
추가: Keras 및 Tensorflow CPU, GPU 강제 사용
Keras가 Theano 백엔드를 사용한다면 자동으로 GPU를 사용하지 않고 CPU만 사용해야 합니다. GPU를 시작하려면 Theano 내부 명령을 사용하면 됩니다.
Tensorflow 백엔드의 Keras와 Tensorflow는 자동으로 보이는 GPU를 사용하므로 CPU에서만 실행해야 합니다.인터넷에서 세 가지 방법을 찾았는데 마지막 방법은 나에게 유용하지만 세 가지 모두 다음과 같이 기록했다.
tensorflow의 with tf를 사용합니다.device ('/cpu:0'): 함수입니다.간단한 조작은 앞에서 말한 영역에 모든 명령을 넣는 것이다.
tensorflow를 사용하여 Session을 선언할 때의 매개 변수: tensorflow에서 Session의 일부 매개 변수 설정, 그리고 Keras가 호출한 Tensorflow의 Session을 어떻게 설정하는지Keras를 참조하여 GPU 사용 메모리 크기(Tensorflow backend) 설정 .
Tensorflow, Session 선언 시 device_count={'gpu':0}이면 됩니다. 코드는 다음과 같습니다.

import tensorflow as tf  
sess = tf.Session(config=tf.ConfigProto(device_count={'gpu':0}))
Keras의 경우 백엔드 함수를 호출하여 위에서 정의한 Session과 같이 사용하도록 설정하면 됩니다. 코드는 다음과 같습니다.

import tensorflow as tf
import keras.backend.tensorflow_backend as KTF 
KTF.set_session(tf.Session(config=tf.ConfigProto(device_count={'gpu':0})))
다중 스레드와 GPU 메모리 설정 등에 사용할 수 있습니다Keras 참조 GPU 사용 메모리 크기(Tensorflow backend) 설정 .
3, 세 번째는 CUDA_VISIBLE_DEVICES 명령행 매개변수, 코드는 다음과 같습니다.

CUDA_VISIBLE_DEVICES="0" python3 train.py
이상의 개인적인 경험으로 여러분께 참고가 되었으면 좋겠습니다. 또한 많은 응원 부탁드립니다.

좋은 웹페이지 즐겨찾기