Torch/nn:乘以常数矩阵的规范方法是什么?



nn.MM需要一个将相乘的矩阵的表参数。在我的例子中,其中一个矩阵是一些先前定义的模型(例如nn.Sequential)的输出,另一个只是一个常量矩阵。 如何将常量注入nn的管道中,如果我这样做,我应该担心优化器会开始更改它吗?

我知道我可以通过以下方式解决注射问题:

  1. 写我自己的nn.Module.这似乎很严厉。
  2. 将模型分成两部分并手动注入常量。我真的希望模型只是一些nn.Module子类,它被:forward(input)调用,并允许消费者幸福地不知道常量的存在。
  3. 使用 nn.ParallelTable ,但这也会将常量暴露给模型消费者。
  4. 使用无偏差的nn.Linear并覆盖权重。我只是不确定如何阻止优化器执行更新。

您可以创建一个 nn。线性和覆盖 :accGradParameters 为无操作函数

m = nn.Linear(100,200)
-- copy your weights / bias into m.weight / m.bias
m.accGradParameters = function() end
-- m is a constant multiplier thing

使用 MulConstant

m=nn.MulConstant(7,true)(myMatrix)

最新更新