0

본인의 연구를 위해 가정에서 추출한 ZFNet (prototxt)을 구현했습니다. 정의를 20k 반복 한 후에 테스트 정확도는 ~ 0.001 (즉, 1/1000), 테스트 손실은 ~ 6.9, 트레이닝 손실은 ~ 6.9로 1k 클래스에서 추측 게임을 계속하는 것 같습니다. 나는 철저히 전체 정의를 확인하고 새로운 훈련을 시작하기 위해 일부 하이퍼 파라미터를 변경하려했으나 화면에 표시된 것과 같은 결과는 없었습니다. ...ILSVRC12에서 ZFNet을 배울 때 테스트 정확도가 향상되지 않습니다.

누구나 나에게 약간의 빛을 보여줄 수 있습니까? ? 미리 감사드립니다!


prototxt의 하이퍼 매개 변수는 논문 [1]에서 파생됩니다. 이 논문의 그림 3에서 알 수 있듯이 레이어의 모든 입력과 출력은 정확합니다.

비틀기는 # 33에서 설명하고있는 바와 같이 대신 224225로 설정된 트레이닝 및 테스트 모두에 대한 입력

  • crop -s;

  • 블롭의 크기를 일관되게하기 위해 conv3, conv4conv5에 대한 1 픽셀 제로 패딩 [1];

  • [1]의 constant에서 gaussianstd: 0.01으로 변경된 모든 학습 가능한 레이어의 필러 유형.

  • weight_decay : PR # 33의 @sergeyk에서 제안한대로 0.0005에서 0.00025으로 변경됩니다.

[1] ZEILER, M. 및 퍼거스, R. 떠올리 이해 길쌈 네트웍스

과 불량한 부분에 대한 ECCV ... 2014, I 붙여 그 here

+0

서식을 보내 주셔서 감사합니다. @Shai – stoneyang

답변

1

몇 가지 제안 사항 :

  1. gauss에서 xavier으로 초기화를 변경하십시오.
  2. "ReLU" 대신 "PReLU" 개의 작업으로 작업하십시오. 일단 당신의 그물이 수렴하면 그들을 제거하기 위해 미세 조정할 수 있습니다.
  3. base_lr을 (또는 두 주문까지) 축소하여보십시오.
+1

제안 해 주셔서 감사합니다. 새로운 실험을 시작하기 위해 매개 변수를 변경하고 피드백이 추가됩니다. @Shai – stoneyang

+1

'base_lr'을 '0.01'에서 '0.001'로 떨어 뜨리면 약 122k 반복 이후 '정확도'가 '0.47'이상으로 향상되었습니다. 나는 700k 반복 후에 최종 결과를보고하기 위해 돌아갈 것이다. @Shai – stoneyang

+1

'base_lr'을 0.001에서 0.005로 올렸습니다. 즉, 초기 설정에서'base_lr'의 절반 밖에되지 않았습니다.'700k' 반복 이후의 테스트 정확도는'60.x %'입니다. Caffenet 또는 AlexNet보다 거의 3 포인트가 높은 공식 caffe에서 복제. 내 제안서 중 하나가 저절로 저장되었으며 나머지는 일반적인 교육 과제에 도움이 될 수 있습니다. @Shai – stoneyang