Caffe는 다중 손실을 지원합니다. 그런 다음 역 전파 단계에서 일부 얼룩은 서로 다른 손실로 인한 여러 그라디언트를 가질 수 있습니다. Caffe는이 얼룩의 그라데이션을 어떻게 처리합니까?Caffe는 하나 이상의 출력 브랜치가있는 얼룩의 그라데이션을 어떻게 업데이트합니까?
내가 아는 한, 이것은 네트워크를 설계 할 때 고려되지 않을 수도 있습니다. 그러나이 질문은 새로운 레이어를 쓰려고 할 때 정말로 혼란 스럽습니다. 어떤 아이디어 주셔서 감사합니다!
답변 해 주셔서 감사합니다. 각 손실의 무게를 제어하는'loss_weight'가 있다는 것을 알고 있습니다. 그러나 나는 아직도 Caffe이 그것을 어떻게 구현 하는지를 모른다. 나는 Caffe에서 각 레이어가 상위 블롭의 diff를 받아들이고, 계산을하고, 결과를'mutable_cpu_diff()'를 통해 아래쪽 블롭의 diff에 전달한다고 생각합니다. 위의 그림을 예로 들어 보겠습니다. 'conv2'의 top blob (규칙으로'conv2'라고 부름)은'auxiliary'와'pool2'의 맨 아래에 있습니다. 'auxiliary'와'pool2'는 모두 배경 화면에서 bottom blob의 diff를 바꿀 것입니다. 그렇다면'conv2' blob의'diff'는 어떻게 업데이트 될까요? –
@ C.Li 그라디언트 체인 규칙이 – Shai
을 지시하므로 그라디언트 체인 규칙에 대한 아이디어를 얻습니다. 그러나 Caffe이 언제 어디에서 그것을 구현하는지 명확하지 않습니다. 어떤 생각? 고마워요! –