2017-09-13 4 views
1

나는 다음 tutorial을 따라 객체 감지 TensorFlow 1.3 모델을 훈련시킵니다. Google 클라우드에서 내 작은 데이터 세트 (1 클래스, ~ 100 개의 예)로 faster_rcnn_resnet101_coco 또는 faster_rcnn_inception_resnet_v2_atrous_coco 모델을 재교육하고 싶습니다. 상대방 자습서에서 제안 된대로 많은 클래스와 PATH_TO_BE_CONFIGURED를 변경했습니다. config files.Google 클라우드 ml의 교육 모델 중에 메모리 예외가 발생하는 이유는 무엇입니까?

데이터 집합 : 이미지 당 12 개의 이미지, 4032 × 3024, 10-20 개의 레이블이있는 경계 상자.

왜 메모리 예외가 발생합니까?

마스터 0 내가 다른 구성 시도 있습니다 메모리 부족 실행 및 247

의 비 - 제로 상태로 종료 복제본 :

  1. 규모 계층을 BASIC_GPU
  2. default config yaml
  3. 사용자 정의 YAML은 더 많은 메모리와 인스턴스를 사용하는

    trainingInput: 
        runtimeVersion: "1.0" 
        scaleTier: CUSTOM 
        masterType: complex_model_l 
        workerCount: 7 
        workerType: complex_model_s 
        parameterServerCount: 3 
        parameterServerType: standard 
    
+0

아마도 클래스 수가 너무 많거나 너무 큰 이미지를 먹고 있습니다. – fabrizioM

+0

클래스가 하나뿐입니다. 어쩌면 이미지가 너무 커요? (4032 × 3024) –

답변

1

데이터 세트를 설명해 주시겠습니까? 사용자가 OOM 문제를 겪을 때의 경험에 따르면 데이터 세트의 이미지가 고해상도이기 때문에 일반적으로 발생합니다. 이미지를 작은 크기로 미리 조정하면 메모리 문제를 해결하는 데 도움이됩니다.

+0

이미지 당 12 개의 이미지, 4032 × 3024, 10-20 개의 레이블이있는 경계 상자. –

+0

큰 이미지입니다! 그것이 OOM의 원인입니다. 작은 값으로 크기를 조정할 수있는 이유가 있습니까? –

+0

왜 그들이 크다고 생각하니? 하나의 이미지 크기는 ~ 1.4 MB입니다.바흐 크기 1로 훈련합니다. –

1

큰 데이터 세트에서 작업하는 경우 구성 파일 (config.yaml)에 "large_model"을 사용하고 런타임 버전을 "1.4"로 지정하여 최근에 안정된 버전의 tensorflow를 선택하는 것이 좋습니다. ". ML 엔진이 TensorFlow 버전 1.0을 선택하게하는 "1.0"을 선택했습니다. 이에 대한 자세한 내용은 말한다 Runtime Version를 참조하십시오.

는 "당신은 에 사용할 지원되는 클라우드 ML 엔진 런타임 버전을 지정 할 수 있습니다 교육 작업 런타임 버전은 TensorFlow의 버전과 다른 파이썬 패키지를 지시 당신이해야 할 이유가 없다면 훈련 서비스에 항상 최신 안정 버전 인 기본 버전을 사용하게해야합니다. "

masterType: large_model 

당신이 특별히 적합, 많은 메모리와 기계를 선택할 수 있습니다, 위의 설정에서

trainingInput: 
runtimeVersion: "1.4" 
scaleTier: CUSTOM 
masterType: large_model 
workerCount: 7 
workerType: complex_model_l 
parameterServerCount: 3 
parameterServerType: standard 

:

는 그러므로, 나는 다음과 같은 구성을 사용하는 것이 좋습니다 모델이 너무 큽니다 (많은 수의 노드가있는 숨겨진 레이어 또는 레이어가 많은 경우). 희망이 도움이됩니다.