微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 pytorch 和 diabates 数据集执行学习时出错张量的元素 0 不需要 grad 并且没有 grad_fn

如何解决使用 pytorch 和 diabates 数据集执行学习时出错张量的元素 0 不需要 grad 并且没有 grad_fn

我正在使用 pysyft 和 pytorch 执行联合学习。我正在使用糖尿病数据集。我在训练时遇到了这个错误(张量的元素 0 不需要 grad 并且没有 grad_fn)。我附上了我的错误的屏幕截图以及笔记本文件

enter image description here

我的代码

epochs = 500
final_loss = []
for i in range(epochs):
    i = i + 1
    model.train()
    for batch_idx,(data,target) in enumerate(federated_train_loader): # <-- Now it is a distributed dataset
        model.send(data.location) # <-- NEW: send the model to the right location
   
        data,target = data.to(device),target.to(device)
        output = model.forward(data)
        loss = loss_function(output,target)
        final_loss.append(loss)
        if i % 10 == 1:
            print('Epoch number: {} and the loss: {}'.format(i,loss.get()))
        optimizer.zero_grad() ## Clears the gradients of all optimized class
        loss.backward() ## for backward propagation and to find the derivative
        optimizer.step() ## performs a single optimization step.
        model.get()

我的模型:

class ANN_Model(nn.Module):
    def __init__(self,input_features = 8,hidden1 = 20,hidden2 = 20,out_features = 2):
        super().__init__()
        self.f_connected1 = nn.Linear(input_features,hidden1)
        self.f_connected2 = nn.Linear(hidden1,hidden2)
        self.out = nn.Linear(hidden2,out_features)
    def forward(self,x):
        x = F.relu(self.f_connected1(x))
        x = F.relu(self.f_connected2(x))
        x = self.out(x)
        return x

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?