이제 action
을 출력하고 부적절한 후보를 필터링하는 데 filter
을 사용하는 다음 모델을 재생 중입니다. https://arxiv.org/abs/1702.03274PyTorch의 최종 레이어에서 마스크 특정 요소
이 모델에서 출력은 마지막 softmax 계층 이후에 필터링됩니다. action_size==3
이라고 가정 해 보겠습니다. 따라서 밀도가 높은 & asoftmax layer 이후의 출력은 아래와 같습니다.
output: [0.1, 0.7, 0.2]
filter: [0, 1, 1]
output*filter: [0, 0.7, 0.2]
그러나 pytorch에서
,logsoftmax
는
NLLLoss
으로 바람직하다. 그래서 내 출력은 아래와 같습니다. 이것은 말이되지 않습니다.
output: [-5.4, -0.2, -4.9]
filter: [0, 1, 1]
output*filter: [0, -0.2, -4.9]
따라서 pytoroch는 vanilla Softmax
을 권장하지 않습니다. 특정 조치를 취하기 위해 가면을 어떻게 적용해야합니까? 바닐라 Softmax와 함께 카테고리 크로스 엔트로피 손실 함수가 있습니까?
이 모듈은 Softmax와 자체 사이에서 로그를 계산할 것으로 기대되는 NLLLoss와는 직접적으로 작동하지 않습니다. Logsoftmax를 대신 사용하십시오 (더 빠르고 더 나은 숫자 속성을가집니다). http://pytorch.org/docs/master/nn.html#torch.nn.Softmax