300x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 그래프
- 코딩
- 프로그래밍
- 브루트포스
- 운영체제
- DFS
- 동적프로그래밍
- 동적 프로그래밍
- PYTHON
- linux
- 순열
- 파이썬
- BFS
- 구글 킥스타트
- 리눅스
- kick start
- AI
- dp
- 백준
- 알고리즘
- 코딩테스트
- 킥스타트
- google coding competition
- 프로그래머스
- OS
- 딥러닝
- 네트워크
- nlp
- CSS
- 코딩 테스트
Archives
- Today
- Total
오뚝이개발자
[Keras] 케라스로 멀티 gpu 사용하기(여러 개의 gpu 사용하기, multi gpu) 본문
728x90
300x250
keras를 사용해 멀티 gpu를 사용하는 방법을 알아보자. 해당 메소드는 케라스 2.0.9 버전부터 사용이 가능하니 해당 버전에 맞춰 설치해야 한다.
model = Sequential()
model.add(layers.LSTM(32, input_shape=(None, float_data.shape[-1])))
model.add(layers.Dense(1))
# multi-gpu 사용
from keras.utils.training_utils import multi_gpu_model
model = multi_gpu_model(model, gpus=2)
model.compile(optimizer=RMSprop(), loss='mae')
history = model.fit_generator(train_gen,steps_per_epoch=500,epochs=20,validation_data=val_gen,validation_steps=val_steps)
위와 같이 keras.utils.training_utils로부터 multi_gpu_model을 import하고 model = multi_gpu_model(model, gpus=2)와 같이 gpus= 부분에 사용하고자 하는 gpu 갯수를 입력해주면 된다. 만약 배치 사이즈가 1024, gpus=2라면 2개의 서브 배치로 나누어져 512개씩 각각의 gpu에서 처리되고 합쳐진다.
주의할 점은 배치 사이즈가 작은 경우 데이터를 나누고 합치는 과정에서 소요되는 시간때문에 오히려 하나의 gpu를 사용하는 것보다도 시간이 오래 걸리게 되는 경우가 생긴다는 것이다. 적절히 본인이 돌리고자 하는 코드에서의 배치 사이즈에 맞게 사용하도록 하자.
728x90
300x250
'AI > AI 개발' 카테고리의 다른 글
허깅페이스(Huggingface)로 내 모델 포팅(porting)하기 (0) | 2022.01.20 |
---|---|
[Anaconda] conda 가상환경 remove, copy, rename (0) | 2021.12.31 |
ML개발 GPU 사용 환경 세팅하기(Anaconda, Tensorflow, Keras, CUDA, cuDNN) (2) | 2021.11.15 |
[Tensorflow] 텐서플로우 GPU로 실행하도록 설정하는 방법 (0) | 2021.11.07 |
[Keras] 케라스 AttributeError: module 'keras.optimizers' has no attribute 'RMSprop' 에러 해결법 (0) | 2021.10.27 |
Comments