2017-03-19 6 views
2

2 진 분류를 위해 vgg-16을 미세 조정합니다. 손실 함수로 sigmoidLoss 레이어를 사용했습니다. 나는바이너리 분류 모델 테스트 용 PyCaffe 출력 레이어

밖으로 = net.forward()를해야

내 의심의 여지가있다 :

모델을 테스트하기 위해 나는이 이미지 모델을로드 및 사용하여 출력을 가지고있는 파이썬 파일을 코딩 Sigmoid 또는 SigmoidLoss 레이어의 출력을 가져옵니다. 그리고 두 레이어의 차이점은 무엇입니까?

내 출력 실제로 입력 화상 존재 클래스 1의 확률 것이다. **

답변

1

의 출력을 조사한다 원래 prototxt을 수정하여 별도의 배포 prototxt를 생성 할 수있다. 다음

같은

  • 우리는 더 이상 우리의 데이터 레이블을 제공하는 분류의 경우에 관해서는, 훈련을 위해 사용하지 않은 데이터 층을 제거하는 단계입니다.
  • 데이터 레이블에 종속 된 계층을 제거하십시오.
  • 데이터를 수락하도록 네트워크를 설정하십시오.
  • 결과를 네트워크에 출력하십시오. 이 경우 검사에 사용 아니에요 있도록 SigmoidWithLoss 층에

당신은 여기에 대한 자세한 내용을보실 수 있습니다 : deploy prototxt 그렇지

, 당신은
가 {기차 단계를} 포함 추가 할 수 있습니다 네트워크. 예측을하려면 Sigmoid 레이어의 출력을 확인하십시오.

1

SigmoidWithLoss 층을 접지 진실 라벨 w.r.t 손실을 나타내는 배치 당 단일 번호를 출력한다.

한편, Sigmoid 층은 배치의 각 입력에 대한 확률 값을 출력합니다. 이 출력 이 아니므로 지상 진실 레이블을 계산해야합니다.

가 입력 당 확률을 찾고 있다면

, 당신이 테스트 세트에서 예측을 만들기위한 Sigmoid

+0

접지 진실 라벨이 없기 때문에 SigmoidWithLoss 레이어의 출력은 테스트 중에 무엇을 나타 냅니까? –

+0

@ ShivamDuggal [이 답변보기] (http://stackoverflow.com/a/39018076/1714410). 지상 진실없이''SigmoidCrossEntropyLoss ''레이어를 가질 수 없습니다. 레이어 **에는 두 개의 입력이 있어야합니다. – Shai