Tensorflow에서 여러 GPU 사용 방법

개시하다


이 글은 텐소플로우에서 여러 GPU를 사용해 계산하기 위해 텐소플로우2를 실었다.0부터 사용할 수 있는 tf입니다.distribute.Strategy를 사용한 예는 다음과 같습니다.
공식적으로도 GPU 배정에 관한 기사가 있지만, 이쪽 기사는 금방 이뤄질 수 있다는 취지로 더 간결하게 해설했다.
또 실제 사용의 예로 딥러닝은 기본적으로 이렇기 때문에 딥러닝의 학습을 예로 들어 해설한다.

Tensorflow Strategy


Tensorflow-gpu의 Deep learning을 사용한 학습은 기본적으로 단일 GPU를 사용합니다.
기기에 여러 GPU를 탑재하고 여러 GPU를 사용해 학습하려면 가장 쉬운 방법은 텐소플로우2다.0에서 공개된 Strategy를 사용합니다.
또한 Strategy를 사용하는 여러 GPU의 사용은 Tensorflow가 공식적으로 추천한 최선의 실천이다.

사용 예


사용 방법은 매우 간단하여 모델의 Compuile, Build를 MirroredStrategy의 범위로 묶는다.
이렇게 하면 여러 개의 GPU에 적응할 수 있다.
이번에 사용한 MirroredStrategy 외에도 여러 대의 기기와 TPU의 분산을 지원하는 Strategy를 사용할 수 있다.
https://www.tensorflow.org/guide/distributed_training?hl=ja
참고로 Strategy의 뒷면에서 각 GPU를 통해 모델을 복제하여 그들 사이에서 입력 데이터를 분할한다.데이터의 병렬 처리를 진행하다.

strategy = tf.distribute.MirroredStrategy()
with strategy.scope():
  inputs = tf.keras.layers.Input(shape=(1,))
  predictions = tf.keras.layers.Dense(1)(inputs)
  model = tf.keras.models.Model(inputs=inputs, outputs=predictions)
  model.compile(loss='mse',
                optimizer=tf.keras.optimizers.SGD(learning_rate=0.2))
model.fit( ... )

끝맺다


다중 GPU를 사용하여 DN을 고속으로 학습하세요!

참고 자료


https://www.tensorflow.org/guide/gpu?hl=ja
https://www.tensorflow.org/guide/distributed_training?hl=ja

좋은 웹페이지 즐겨찾기