2017-04-10 2 views
0

분산 된 Google 클라우드 ML에서 코드를 실행할 수 있었지만 클러스터를 실행하면 해당 데이터가 클러스터 내의 각 컴퓨터에 복제되지만 각 컴퓨터에 데이터를 배포하려고합니다.Google 클라우드의 직원간에 데이터 배포

클라우드 ML에서 클러스터 내의 각 시스템에 데이터를 배포하려면 어떻게해야합니까? 도와주세요 !!!!

+0

비동기 분산 교육을 수행하고 있습니까? 해결하려는 작업에 대한 정보가 도움이 될 것입니다. – rhaertel80

답변

0

일반적으로 분산 비동기 교육에서는 각 작업자가 데이터의 겹치지 않는 파티션에 기차를 배치하는 대신 각 작업자가 모든 데이터에서 작업하기를 원합니다.

비동기 교육에서 매개 변수는 모든 근로자로부터 업데이트를 받기 위해 기다리지 않고 업데이트를 처리합니다. 따라서 한 근로자가 다른 근로자보다 느린 경우 다른 근로자보다 업데이트가 적습니다. 각 작업자가 자신의 데이터에만 액세스 할 수 있도록 데이터를 분할하면 더 느린 작업자에 속하는 예제의 수가 매개 변수에 대한 업데이트가 적어 지므로 효과적으로 다운 웨이트됩니다. 그러면 모델의 품질 및 일반화 가능성에 부정적인 영향을 미칩니다.

synchronous training을 사용하고 모든 작업자를 강제로 업데이트하도록하면 작업자간에 데이터를 안전하게 분할 할 수 있지만 각 작업마다 모든 작업자의 업데이트를 기다려야하므로 가장 느린 작업자만큼 느려집니다. 모든 근로자의 업데이트를 강제하지 않으면 저속 근로자의 사례가 완전히 무시 될 가능성이 있으므로 비동기 교육보다 상황이 실제로 더 나쁠 수 있습니다.

보다 견고하기 때문에 비동기 교육이 더 일반적입니다.

다행히 모든 근로자가 모든 데이터를 검토하는 것은 일반적으로 합리적인 일입니다. 데이터 (herehere)를 무작위로 추출하는 경우 주어진 시간 (모든 작업자)에서 조사되는 예제는 전체 데이터 세트에서 대체하여 무작위로 샘플링 된 batch_size * num_workers 예제 세트입니다.

비동기 교육에서 데이터를 읽는 정식 방식은 실제로 특히 분산 된 교육에서 충분히 잘 작동합니다. 그러나 너무 많은 데이터가있는 경우 몇 가지 신기원을 수행 할 수 있습니다. 모델은 각 예제를 동일한 횟수 (교체없이 샘플링)로 보는 것이 좋습니다. 그것은 더 복잡하고 덜 강력하지만, 수행 될 수 있습니다. 그것은 별도의 게시물입니다.