【问题标题】:No Parameters in Net class even after inheriting from nn.Module即使从 nn.Module 继承,Net 类中也没有参数
【发布时间】:2020-10-30 23:21:20
【问题描述】:

由于某种原因,我的 Class Net 没有参数,即使我已经正确导入了所有内容。它仍然显示 net 没有参数或属性,即使在打印网络上它也只是打印空列表。谁能告诉我怎么了?

import torch.nn as nn
import torch.nn.functional as F

class Net(nn.Module):
def ___init__(self):
    super(Net, self).__init__()
    self.fc1 = nn.Linear(784, 64)
    self.fc2 = nn.Parameter(nn.Linear(64, 64))
    self.fc3 = nn.Parameter(nn.Linear(64, 64))
    self.fc4 = nn.Parameter(nn.Linear(64, 10))
    
def forward(self, x):
    x = F.relu(self.fc1(x))
    x = F.relu(self.fc2(x))
    x = F.relu(self.fc3(x))
    x = self.fc4(x)
    return F.log_softmax(x, dim=1)

net = Net()
print(net)
print(list(net.parameters()))

输出:

Net()
[]

【问题讨论】:

  • P.S.甚至尝试将 nn.Linear 包装在 nn.Parameters 但徒劳无功。另外,在 Colab 中尝试过,但仍然不好。

标签: parameters deep-learning pytorch torch


【解决方案1】:

在代码中

def ___init__(self):

init 之前使用三个下划线,使用两个:__init__

【讨论】:

  • 谢谢老兄,没想到一个错字会导致这么多问题。
猜你喜欢
  • 1970-01-01
  • 2021-03-11
  • 1970-01-01
  • 2021-03-15
  • 1970-01-01
  • 1970-01-01
  • 2013-01-27
  • 2016-08-19
  • 1970-01-01
相关资源
最近更新 更多