2012-02-04 3 views
9

나는 두 개의 입력, 숨겨진 레이어 및 layer.I 기차에 다음을 사용하십시오 출력 신경망 N pybrain을 가지고 :pybrain에서 신경망 훈련을 어떻게 계산하거나 모니터 할 수 있습니까?

trainer = BackpropTrainer(net,ds) 
trainer.trainUntilConvergence() 

그물 신경망이며, DS는 기차 데이터입니다.

내 질문은 교육을 완료하는 데 필요한 시간을 계산할 수 있는지, 어떻게 훈련 진행 상황을 모니터링 할 수 있는지입니다. 감사합니다.

답변

10

당신은 항상 BackpropTrainer (소스 코드 here) 를 서브 클래스 화해, maxEpochs를 사용하는 경우 trainUntilConvergence를 오버라이드 (override), 신 (新) 시대와 시대 사이의 비율을 사용하여 완전성의 비율을 추적 할 수 있습니다.

maxEpochs을 사용하지 않으면 유효성 검사기의 평균 변경 비율과 continueEpochs의 크기를 기반으로 남아있는 에포크의 수를 항상 추측 할 수 있습니다. 또는 단순히 유효성 검사 오류의 변경 비율을 검사하면됩니다. 신기원을 시간에 맵핑하려면 각 신기원의 시간을 프로파일 링하고 저장해야합니다.

+1

이상적으로 당신이 trainEpochs을 사용하고자하는 것입니다 도움을 줄(). X 수의 에포크를 훈련시키고, 결과를 확인하고, x 에포크 수를 훈련시킵니다. 수렴 또는 최대 신기원까지 반복하십시오. – NothingMore

2

아무것도 내가 그것을 사용하는 코드를 제외하고 이전의 코멘트에 추가 없습니다 :

maxepochs=20 
results=[] 
for i in range(len(maxepochs)): 
    aux = trainer.train() 
    results.extend(aux) 
    plt.figure() 
    plt.scatter(range(len(results[0])),results[0]) 
    plt.draw() 

당신은 매 사이클에 새로운 플롯을 얻을 것입니다. 별로 좋지는 않지만 저에게는 효과적입니다.

희망 내가 대신 trainUntilConvergence를 수정하는) (당신이

+0

maxepochs는 int입니다. len 속성이 없습니다. 결과라고 했니? 추가 (보조)? – agcala

관련 문제