首页 > 解决方案 > 将内核过滤器限制为只有 -1、0 或 1 的条目?

问题描述

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

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

标签: pytorchtorchautoencoder

解决方案


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

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

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


推荐阅读