logo
Loading...

範例中用 assert 的部分會跳出error? - Cupoy

範例中有一段用 assert 來確認 sigmoid 後的 BCELoss 與 BCEWithLog...

範例中用 assert 的部分會跳出error?

2021/07/24 下午 09:11
使用 PyTorch 搭建神經網路模型
Chi-Kang Su
觀看數:12
回答數:1
收藏數:0

範例中有一段用 assert 來確認 sigmoid 後的 BCELoss 與 BCEWithLogitsLoss 的值回相同。我在這裡會跳出錯誤。我實際把 loss_2 及 loss_3 拿出來看,值的確是相同的。但是當我用 loss_2 == loss_3 時,卻返回 False。想請問為什麼會有這樣的狀況。 ```python ## 將每一組 prediciotn, target 算出來的值平均 criterios = BCELoss(reduction='mean') loss_2 = criterios(sigmoid(prediction), target) ## BCEWithLogitsLoss自帶 sigmoid 功能 criterios = BCEWithLogitsLoss(reduction='mean') loss_3 = criterios(prediction, target) assert loss_2 == loss_3 ## 應該要與 output2相同 print(loss_3) ```

回答列表

  • 2021/07/24 下午 09:59
    Chi-Kang Su
    贊同數:0
    不贊同數:0
    留言數:0

    我用 float 把數值取出來,發現 loss_2 及 loss_3 在後幾位位數的時候有一些落差。這樣的情形執行個幾次就會發生。為什麼 loss_2 及 loss_3 會有落差呢