将内核过滤器限制为仅包含 -1、0 或 1 的条目



我的自动编码器模型学习像素值为 -1、0 或 1 的图像中最常见的模式。虽然我的模型运行良好,但解码落入局部最小值,浮点值介于 -1 和 1 之间。

无论如何,在

Pytorch 中我可以将内核过滤器限制为具有条目 -1、0 或 1 以观察更好的学习能力吗?

如果您的目标值是离散的,那么在 3 个类中使用像素级 softmax 可能更有意义,同时将重建损失转换为交叉熵。

你绝对可以做到这一点,但这可能是一个坏主意。要将权重限制为特定值,您可以在每次训练迭代后将权重设置为所需的值,例如使用 torch.clamp 将它们设置为范围 [-1, 1]:

model.my_layer.weight.detach().clamp_(-1,1)

虽然上述方法在某些情况下可能有效,但您将权重离散化为仅 3 个可能值的问题很难使用梯度进行优化,并且可能导致很少或没有学习。

相关内容

  • 没有找到相关文章

最新更新