Torch、神经网络 - gmodule 对象上的正向函数 - nngraph class
Torch, neural nets - forward function on gmodule object - nngraph class
我是 torch 和 lua 的新手(任何关注我最新帖子的人都可以证明 :) 并且对 gmodule 对象的转发函数有以下问题(class nngraph).
根据源代码(https://github.com/torch/nn/blob/master/Module.lua - 因为 class gmodule 继承自 nn.module)语法是:
function Module:forward(input)
return self:updateOutput(input)
end
但是,我发现 table 作为输入传递的情况,如:
local lst = clones.rnn[t]:forward{x[{{}, t}], unpack(rnn_state[t-1])}
其中:
clones.rnn[t]
本身就是一个gmodule对象。反过来,rnn_state[t-1] 是具有 4 个张量的 table。所以最后,我们得到了类似于
result_var = gmodule:forward{[1]=tensor_1,[2]=tensor_2,[3]=tensor_3,...,[5]=tensor_5}
问题是,根据网络架构,您能否将输入(格式为 table)不仅传递到输入层,还传递到隐藏层?
在那种情况下,你必须检查每一层是否恰好传递了一个输入? (输出层除外)
非常感谢
我终于找到了答案。模块 class(以及继承的 class g模块)有一个输入和一个输出。
但是,输入(以及输出)不必是向量,但它可以是向量的集合 - 这取决于神经网络配置,在这种特殊情况下,它是一个非常复杂的递归神经网络网.
所以如果网络有多个输入向量,你可以这样做:
result_var = gmodule:forward{[1]=tensor_1,[2]=tensor_2,[3]=tensor_3,...,[5]=tensor_5}
其中每个 tensor/vector 是输入向量之一。这些向量中只有一个是 X 向量或特征向量。其他的可以作为其他中间节点的输入。
反过来,result_var(即输出)可以将一个输出作为张量(预测)或一组张量作为输出(一组张量),具体取决于网络配置。
如果是后者,这些输出张量之一就是预测,并且提醒通常用作下一个时间步中中间节点的输入——但这又取决于网络配置。
我是 torch 和 lua 的新手(任何关注我最新帖子的人都可以证明 :) 并且对 gmodule 对象的转发函数有以下问题(class nngraph).
根据源代码(https://github.com/torch/nn/blob/master/Module.lua - 因为 class gmodule 继承自 nn.module)语法是:
function Module:forward(input)
return self:updateOutput(input)
end
但是,我发现 table 作为输入传递的情况,如:
local lst = clones.rnn[t]:forward{x[{{}, t}], unpack(rnn_state[t-1])}
其中:
clones.rnn[t]
本身就是一个gmodule对象。反过来,rnn_state[t-1] 是具有 4 个张量的 table。所以最后,我们得到了类似于
result_var = gmodule:forward{[1]=tensor_1,[2]=tensor_2,[3]=tensor_3,...,[5]=tensor_5}
问题是,根据网络架构,您能否将输入(格式为 table)不仅传递到输入层,还传递到隐藏层?
在那种情况下,你必须检查每一层是否恰好传递了一个输入? (输出层除外)
非常感谢
我终于找到了答案。模块 class(以及继承的 class g模块)有一个输入和一个输出。
但是,输入(以及输出)不必是向量,但它可以是向量的集合 - 这取决于神经网络配置,在这种特殊情况下,它是一个非常复杂的递归神经网络网.
所以如果网络有多个输入向量,你可以这样做:
result_var = gmodule:forward{[1]=tensor_1,[2]=tensor_2,[3]=tensor_3,...,[5]=tensor_5}
其中每个 tensor/vector 是输入向量之一。这些向量中只有一个是 X 向量或特征向量。其他的可以作为其他中间节点的输入。
反过来,result_var(即输出)可以将一个输出作为张量(预测)或一组张量作为输出(一组张量),具体取决于网络配置。
如果是后者,这些输出张量之一就是预测,并且提醒通常用作下一个时间步中中间节点的输入——但这又取决于网络配置。