2017-11-27 10 views
0

object_detection/train.py 스크립트를 사용하여 자체 탐지기를 조정하는 Tensorflow Object Detection API를 실행 중이며 here이 발견되었습니다. 문제는 내가 계속 CUDA_ERROR_OUT_OF_MEMORY을 얻고 있다는 것입니다.Tensorflow #에 대한 CUDA_ERROR_OUT_OF_MEMORY # object_detection/train.py

트레이너의 메모리 사용량을 줄이기 위해 배치 크기를 줄이는 방법을 찾았지만 16에서 4로 줄였습니다. 여전히 같은 오류가 발생합니다. 차이점은 batch_size = 16을 사용할 때 ~ 18 단계에서 오류가 발생했으며 이제 ~ 70 단계에서 오류가 발생했습니다. 편집 :batch_size = 1로 설정하면 2700 단계에서 오류가 발생하므로 문제가 해결되지 않았습니다.

교육 과정을 중단 할 때까지 원활하게 실행하려면 어떻게해야합니까? 나는 정말로 빠른 훈련을받을 필요가 없다.

편집 : 현재이 용도로 GTX 750 Ti 2GB를 사용하고 있습니다. GPU는 교육 및 모니터 이미지 제공 이외의 용도로 사용되지 않습니다. 현재 나는 훈련을 위해 80 개의 이미지만을 사용하고 평가를 위해 20 개의 이미지만을 사용하고 있습니다.

+0

GPU 크기, 교육 데이터 크기에 대한 정보를 추가하고 다른 곳에서 GPU를 동시에 사용하고 있습니까? –

+0

@SmitShilu 요청한 정보를 추가했습니다. 도와 줘서 고마워! – Minoru

+0

죄송합니다. 광산에서 재현 할 수 없지만 각 이미지가 고해상도이거나이 링크를 참조하면 이미지 크기 문제 일 수 있습니다. https://github.com/tensorflow/models/issues/1854 –

답변

0

내 문제의 해결책을 찾았습니다. batch_size은 문제가 아니지만, config.gpu_options.allow_growth = True 구성을 사용했기 때문에 batch_size이 높을수록 학습 메모리 소비가 빨라졌습니다. 이 설정을 사용하면 Tensorflow가 필요할 때 메모리 소비량을 늘리고 GPU 메모리가 100 % 사용할 때까지 사용하려고합니다.

문제는 내가 (자신의 튜토리얼에서 권장 한대로) eval.py 스크립트를 동시에 실행했고 GPU 메모리의 parte를 사용하고 있다는 것이 었습니다. train.py 스크립트가 모두 100 %를 사용하려고 시도하면 오류가 발생합니다.

교육 과정에서 최대 사용 비율을 70 %로 설정하여 해결했습니다. 또한 훈련 중 말더듬 문제를 해결했습니다. 이것은 내 GPU를위한 최적의 값이 아니지만 예를 들어 config.gpu_options.per_process_gpu_memory_fraction = 0.7 설정을 사용하여 구성 할 수 있습니다.

1

처음부터 교육을 시작할 수 있기 때문에 나는 batch_size가 아닌 것으로 생각합니다.

터미널을 열 ANS 실행

엔비디아 SMI -l

이 오류가 발생하면 다른 프로세스 킥이 있는지 확인합니다. batch_size = 16으로 설정하면 꽤 빨리 찾을 수 있습니다.