2017-10-04 8 views
0

저는 Keras + TensorFlow 백엔드를 사용하여 신경망 실험을 수행하고 있습니다. Windows 7을 실행하는 PC에서 GPU를 사용하여이 작업을 수행합니다.신경망 훈련 실험 큐 관리자

내 워크 플로는 다음과 같습니다.

모델을 정의하는 작은 파이썬 스크립트를 작성한 다음 유효 정확도가 10-15 에포크 이후에 향상되지 않으면 모델을 정의한 다음 model.fit_generator ~ 50 신기원과 조기 중지합니다. 그런 다음 나는 같은 명령으로 터미널을 실행한다. python model_v3_4_5.py

보통 한 신기원은 약 1.5 시간이 걸린다. 이 기간 동안 몇 가지 새로운 아이디어 (교육 매개 변수 또는 새로운 아키텍처)가 내 머리 속으로 들어옵니다.

은 그 때 나는 실험을하는 동안

나는 병렬로 여러 모델을 훈련하지 않는 것이 좋습니다 것으로 나타났습니다 ... 새로운 파이썬 스크립트를 작성합니다. 획기적인 시간이 두 배가되고 유효성 검사 정확도가 이상하게 감소했습니다.

따라서 첫 번째 교육이 끝나고 두 번째 교육이 끝날 때까지 기다리고 싶습니다. 동시에, 나는 내 PC의 공회전을 피하고 첫 번째 작업이 끝난 직후에 새로운 훈련을 실행하고 싶습니다.

하지만 처음 훈련이 끝나면 정확하게 알 수 없으므로 timeout <50 hours> && python model_v3_4_6.py과 같은 명령을 실행하는 것이 바보 같은 해결책이됩니다.

그러면 어떤 종류의 큐 관리자가 필요합니다.

내 마음에 와서 한 가지 해결책은 젠킨스가 제공하는 대기열과 내 PC에 젠킨스 노예를 설치하는 것입니다. 내가 아는 한, 젠킨스는 GPU 액세스에 문제가있다.

다른 변형 - 별도의 셀에있는 Jupyter 노트북의 교육 모델. 그러나 여기서 셀 실행 대기열을 볼 수 없습니다. 그리고 이것은 topic, being discussed입니다.

업데이트. 다음 변형. 모델 스크립트에 몇 가지 코드를 추가하고 현재 GPU 상태를 검색합니다 (현재 NN을 실행합니까?). 계산중인 경우 기다립니다. 이렇게하면 GPU가 유휴 상태가되기를 기다리는 스크립트 (여러 가지 새로운 아이디어가 있습니다)의 경우 문제가 발생합니다.

다른 변형이 있습니까?

+0

당신이 사용하려는 경우 고정 표시기 https를 호출/tensorflow/ –

+0

@ RobertD.Mogos : 죄송합니다, 이해가 안됩니다. 도커가 모든 종류의 대기열을 활성화합니까? – wl2776

+0

내 잘못, 더 설명해야합니다. 아니요, 그렇진 않지만 기본적으로 모델 당 도커를 시작할 수 있습니다. 이렇게하면 훈련을 도커로 격리하여 유효성 검사 정확도가 저하되지 않을 수도 있습니다. –

답변

0

마지막으로, 나는

set PYTHONPATH=%CD% 
:start 

for %%m in (train_queue\model*.py) do (
    python %%m 
    del %%m 
) 

timeout 5 
goto start 

하나는 하위 디렉토리 train_queue를 만들고 그 안에 모델 스크립트를두고 간단한 cmd를 스크립트에 왔어요. 모든 스크립트는 출력에 시간 소인이 들어있는 파일을 기록합니다. ? //github.com/fchollet/keras/tree/master/docker https://hub.docker.com/r/tensorflow :

이 스크립트는 또한 timeout program