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

时间:2016-06-06 23:15:08

标签: torch

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

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

  1. 自己编写nn.Module。这似乎很重要。
  2. 将模型分成两部分并手动注入常量。我真的希望模型只是一个用nn.Module调用的:forward(input)子类,并允许消费者对常量的存在一无所知。
  3. 使用nn.ParallelTable,但这也会将常量暴露给模型消费者。
  4. 在没有偏见的情况下使用nn.Linear并覆盖权重。我只是不确定如何阻止优化程序执行更新。

2 个答案:

答案 0 :(得分:0)

您可以创建一个nn.Linear并覆盖: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

答案 1 :(得分:0)

使用MulConstant

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