如何使用 Pytorch 在(尖峰)神经网络中定义输入层

xiaoxingxing pytorch 410

原文标题How to define the input layer in (spiking) neural network with Pytorch

我最近开始使用 Python,更具体地说是使用 Pytorch 库来创建神经网络。我正在使用尖峰神经网络 (SNN),但我怀疑定义人工神经网络 (ANN) 和 SNN 的方式非常相似,这是您必须指定神经元类型的唯一更改。

在 MNIST 数据集的典型示例中,定义了神经网络:

net = nn.Sequential(
nn.Flatten(),
nn.Linear(28*28, 10, bias=False),  
neuron.LIFNode(tau=tau)
)

作为定义 SNN 的代码的最后一行。这里的问题是我与图像问题关系不大,我不确定代码行的第一个超参数(“28 * 28”)的确切含义nn.Linear(28*28, 10, bias=False)。我不知道这是否意味着您有 28 个神经元并且在每个神经元中每个样本引入 28 个点,或者输入层就像一个 28*28 的矩阵,您只在每个样本中引入一个点,或者输入层基于784 个神经元(28 乘以 28)。

我正在尝试面对一个回归任务问题,其中我的训练数据集基于 4096 个样本,并且在每个样本中我有 64 个点。所以,我的问题是如何引入这个输入,因为我只想要一个输入神经元,每个样本可以引入 64 个点。

提前致谢。

原文链接:https://stackoverflow.com//questions/71509332/how-to-define-the-input-layer-in-spiking-neural-network-with-pytorch

回复

我来回复
  • Baptiste Prevot的头像
    Baptiste Prevot 评论

    如文档中所述,nn.Linear的第一个参数是将通过该层的输入的维度,第二个参数是输出的大小(也可以称为神经元的数量)。

    这里的第一个参数是28*28可能是因为给nn.Sequential网络的输入是形状为 28×28 的图像,nn.Flatten将它们变成大小为28*28的向量。

    2年前 0条评论