Neural network 仿射映射

Neural network 仿射映射,neural-network,Neural Network,我不明白(见下图)。 我不清楚这部分代码 lin = nn.Linear(5, 3) # maps from R^5 to R^3, parameters A, b # data is 2x5. A maps from 5 to 3... can we map "data" under A? data = autograd.Variable(torch.randn(2, 5)) print(lin(data)) # yes 我们定义了有5个输入和3个输出的线性层?然后我们给2x5大小的矩

我不明白(见下图)。 我不清楚这部分代码

lin = nn.Linear(5, 3)  # maps from R^5 to R^3, parameters A, b
# data is 2x5.  A maps from 5 to 3... can we map "data" under A?
data = autograd.Variable(torch.randn(2, 5))
print(lin(data))  # yes
我们定义了有5个输入和3个输出的线性层?然后我们给2x5大小的矩阵馈电?我不明白这里发生了什么

以及他们想要传达的总体理念


您提供的代码片段相当简单

a
nn.Linear()
的输入尺寸为
批量大小x专长尺寸
。如果输入
data=Variable(torch.randn(2,5))
,则输入一个包含2个数据实例的小批。每个数据实例都是一个五维向量。对于每个数据实例,使用线性层的相同权重矩阵,将其五维向量映射到三维向量。因此,线性层返回一个维度矩阵
2x3
,即
batch\u size x new\u feat\u dim


您可以将任何大小的小批量喂料到线性层。

您好,谢谢您的解释。但在一个前馈网络中,我们不需要这个,对吗?我的意思是,我没有弄清楚什么时候需要这个?这是某种降维吗?或者说xA,即我们的数据“x”乘以矩阵A,矩阵A是输入层和第一个隐藏层之间的权重矩阵。他们只是在解释线性层的作用。线性层有两个参数。权重矩阵(在本例中称为A)和偏差项(在本例中称为b)。感谢澄清:)