【问题标题】:Why do I have problem when I train my model in pytorch?为什么我在 pytorch 中训练模型时会出现问题?
【发布时间】:2020-06-09 13:22:52
【问题描述】:

我是 PyTorch 和 AI 的新手,但在尝试训练我的模型时遇到了一些问题。

我只是创建了我的Dataset 和我的Dataloader

    train_dataset = TensorDataset(tensor_train,tensor_label)
    train_dataloader = DataLoader(train_dataset,batch_size=32,shuffle=True)

在此之后我的标准和优化器

    criterion = nn.CrossEntropyLoss()

    optimiser=optim.Adam(net.parameters(),lr=0.2)

我尝试用它来训练它

    for epoch in range(10):
           for data in train_dataloader:
                inputs,labels = data
                output = net(torch.Tensor(inputs))
                loss = criterion(output,labels.to(device))
                optimiser.zero_grad()
                loss.backward()
                optimiser.step()

但我得到了这个错误

    d:\py\lib\site-packages\torch\nn\modules\module.py in <lambda>(t)
321             Module: self
322         """
    --> 323         return self._apply(lambda t: t.type(dst_type))
324 
325     def float(self):

TypeError: dtype must be a type, str, or dtype object

如果有人发现问题,我会很高兴,谢谢。

【问题讨论】:

    标签: artificial-intelligence pytorch


    【解决方案1】:

    我看到两个可能的问题:

    1) 您的数据加载器输出一个张量,因此您不需要创建另一个张量。只需这样做:

    output = net(inputs)
    

    2) 您是否将模型发送至device?如果是,您还需要发送inputs。如果没有,您不需要对输出执行此操作:

    loss = criterion(output,labels)
    

    但是,我不确定您遇到的错误是否与这两点无关。考虑在您的代码(而不是库)中发布该行。另外,请考虑包含有关tensor_traintensor_label 的更多信息

    【讨论】:

      【解决方案2】:

      请回复,但问题来自另一件事 我正在像这样创建我的模型

      class Perceptron(nn.Module):
           def __init__(self):
               super(Perceptron,self).__init__()
               self.type = nn.Linear(4,3)
           def forward(self,x):
                return self.type(x)
      net = Perceptron().to(device)
      

      并且 nn.Module 已经获得了一个类型属性,这就是我收到此错误的原因(我的东西),然后我通过将 self.type 更改为 self.anythingElseThanType 来解决

      【讨论】:

        猜你喜欢
        • 2021-03-08
        • 2022-11-22
        • 1970-01-01
        • 2019-09-05
        • 1970-01-01
        • 2021-01-31
        • 2021-05-05
        • 2019-12-20
        • 1970-01-01
        相关资源
        最近更新 更多