기본적으로 다음 예제를 예로 들 수 있습니다. keras를 가져온 후 CPU 및 GPU 소비 값을 지정하기만 하면 됩니다. 케라스 구성 파일은 $HOME/.keras/keras.json에 저장된 JSON 파일입니다. 기본 구성 파일은 다음과 같습니다: 1. 어떤 종류의 프로세서는 GPU의 배열을 조작 해야 하는 경우 사용 – 예를 들어 PCI 버스에 연결 된 각 엔비디아 GPU의 수를 구입 했 어 – 여기 `순진한` 소리에 대 한 사과. 2. 여러 RPi를 어레이에서 조작 할 수 있습니까 – 어떻게? 3. 멀티 코어 CPU는 여러 프로세서가 멀티 프로세서에 대해 `조작`되는 것과 동일한 PC에서 사용되나요? 이러한 변경으로 인해 네트워크는 지속적으로 증강된 예제를 보고 있으며, 이를 통해 네트워크는 학습 집합에서 더 나빠지는 동시에 유효성 검사 데이터에 더 잘 일반화할 수 있습니다. 대부분의 상황에서 이러한 트레이드 오프는 가치있는 하나입니다.

자세한 내용은 multi_gpu_모델에 대한 설명서를 참조하십시오. 다음은 간단한 예입니다: 예를 들어 56코어 CPU와 gpu가 있는 컴퓨터에서 작업하는 경우 keras를 가져온 후 다음 블록을 추가해야 합니다. 다음은 커널 매트릭스가있는 입력의 matmul을 구현하는 사용자 정의 계층의 예입니다 : 라인의 대부분의 예제는 내가 가진 것과 같은 순차적 모델을 사용하지 않고 또한 타임 시리즈 데이터에 multi_gpu_model을 적용하지 않는다는 것을 발견했습니다. 초기 모델 인수처럼 사용할 수 있지만 여러 GPU에 워크로드를 분산하는 Keras 모델 인스턴스입니다. 또한 TensorFlow 백엔드를 사용하고 GPU에서 실행하는 경우 일부 작업에는 결정적이지 않은 출력, 특히 tf.reduce_sum()이 있습니다. 이는 GPU가 많은 작업을 병렬로 실행하기 때문에 실행 순서가 항상 보장되는 것은 아닙니다. 수레의 정밀도가 제한되어 있기 때문에 여러 숫자를 함께 추가하더라도 추가 순서에 따라 약간 다른 결과를 제공할 수 있습니다. 결정적이지 않은 작업을 방지할 수 있지만 일부는 TensorFlow에서 그라데이션을 계산하기 위해 자동으로 만들어질 수 있으므로 CPU에서 코드를 실행하는 것이 훨씬 간단합니다. 이를 위해 CUDA_VISIBLE_DEVICES 환경 변수를 빈 문자열로 설정할 수 있습니다. 병렬 모델은 GPU로 전송되는 모델 인스턴스 주위의 래퍼이므로 model.save 또는 최상의 가중치를 저장하는 데 사용되는 콜백을 사용할 때 개체를 직접 호출할 수 없습니다. 최상의 가중치를 저장하려면 가중치를 전송하거나 내부 모델에 액세스해야 하므로 이 사용 사례를 처리하기 위해 사용자 지정 콜백을 코딩해야 합니다. 나는 이것이 케라스의 향후 버전에서 사용하기 쉬워질 것이라고 확신합니다, 이것은 처음으로 멀티 GPU 교육이 Keras의 공식 릴리스에 포함되어 있다는 것을 명심하십시오.

또한 내부 모델 개체에 액세스하는 방법에 대한 블로그 게시물을 수행하려고합니다. 사용자 지정 학습 루프 및 tf가 있는 Keras 모델을 사용하는 예제는 열성적인 실행 가이드를 참조하십시오. 그라데이션 테이프. CIFAR10 예제에서 일괄 처리 교육을 확인할 수 있습니다. Keras에서는 도면층을 어셈블하여 모델을 작성합니다. 모델은 (일반적으로) 레이어 그래프입니다. 모델의 가장 일반적인 유형은 계층 스택입니다: tf.keras.순차 적 모델. 현재 tf.contrib.distribute.MirroredStrategy은 지원되는 유일한 배포 전략입니다. MirroredStrategy는 단일 컴퓨터에서 모두 줄이기를 사용하여 동기 학습을 사용하여 그래프 내 복제를 수행합니다. Keras와 함께 DistributionStrategy를 사용하려면 tf.keras.estimator.estimator를 tf.estimator.estimator로 변환한 다음 거의 1년 동안 이 멀티 GPU 함수를 사용하고 테스트한 추정기를 학습합니다.

공식 케라스 배포의 일환으로 그것을 보고 흥분. 안녕하세요 애드리안, 아름답고 매우 실용적인 튜토리얼 주셔서 감사합니다.