理解 torch7 深度学习框架中定义的模型

understanding model defined in torch7 deep learning framework

我想在这里理解 torch7 框架中定义的深度学习模型:code

我是深度学习和 torch7 框架的新手。我试过阅读 nn graph 火炬模块的文档,但是,我不明白这一行代表什么:

local e1 = - nn.SpatialConvolution(input_nc, ngf, 4, 4, 2, 2, 1, 1)

= - 发生了什么事?

我看过的火炬教程使用简单直接的方式定义模型:

...
model = nn.Sequential()
model:add(...)
...

但是,我所指的代码使用了我不理解的 = -- 操作;我也找不到任何以这种方式定义模型的教程。请帮助我理解代码。

这是使用 nngraph 包编写模型的替代语法。基本上有两种可能性,要么使用 __call__ 运算符 (()),要么使用 __unm__(一元乘法,在表达式前放置一个 - 符号)和 __sub__(二进制减法-)得到"your code looks like a data flow".

看看nngraph包的文档,这可以帮助你理解语法:https://github.com/torch/nngraph#two-hidden-layers-mlp