The outputs of ISNet is "out, edge out''. Among them, "edge out'' is sigmoid results and ``out'' is not.
Loss function is calculated as follows:
loss_io = self.criterion1(out, labels)
loss_edge = self.criterion2(edge_out, edge_gt) + self.criterion1(edge_out, edge_gt)
Since "self.criterion1'' is softIoULoss that contains sigmoid operations, "self.criterion1(edge_out, edge_gt)" employ sigmoid on "edge_out'' twice.
Please check and correct the problem of twice sigmoid of ``edge_out''.
The outputs of ISNet is "out, edge out''. Among them, "edge out'' is sigmoid results and ``out'' is not. Loss function is calculated as follows: loss_io = self.criterion1(out, labels) loss_edge = self.criterion2(edge_out, edge_gt) + self.criterion1(edge_out, edge_gt)
Since "self.criterion1'' is softIoULoss that contains sigmoid operations, "self.criterion1(edge_out, edge_gt)" employ sigmoid on "edge_out'' twice. Please check and correct the problem of twice sigmoid of ``edge_out''.