训练集的损失收敛,但是验证机的损失不收敛,还有的损失是nan,这个怎么解决呀?是因为:
看 FDConv.py:642-643:
global_x = F.adaptive_avg_pool2d(x, 1)
channel_attention, filter_attention, spatial_attention, kernel_attention = self.KSM_Global(global_x)
KSM_Global 的输入 global_x 就是当前这张图做全局平均池化后的结果。也就是说 channel_attention/filter_attention/spatial_attention/kernel_attention 这几个乘性增益(FDConv.py:691 那一行连乘)是这张具体图片的函数,不是训练进度的函数。同理 KSM_Local(FDConv.py:646)也是吃 global_x。
训练集的损失收敛,但是验证机的损失不收敛,还有的损失是nan,这个怎么解决呀?是因为:
看 FDConv.py:642-643:
global_x = F.adaptive_avg_pool2d(x, 1)
channel_attention, filter_attention, spatial_attention, kernel_attention = self.KSM_Global(global_x)
KSM_Global 的输入 global_x 就是当前这张图做全局平均池化后的结果。也就是说 channel_attention/filter_attention/spatial_attention/kernel_attention 这几个乘性增益(FDConv.py:691 那一行连乘)是这张具体图片的函数,不是训练进度的函数。同理 KSM_Local(FDConv.py:646)也是吃 global_x。