损失。向后()没有毕业生在pytorch NN

0

的问题

代码提供了一个错误的损失。向后() 错误是: untimeError:元0张量不需要的研究和没有grad_fn

for epoch in range(N_EPOCHS):
    model.train()
    for i,(im1, im2, labels) in enumerate(train_dl):
        i1 = torch.flatten(im1,1)
        i2 = torch.flatten(im2,1)
        inp = torch.cat([i1,i2],1)
        
        b_x = Variable(inp) # batch x
        b_y = Variable(labels) # batch y
        y_ = model(b_x).squeeze()
        y_ = (y_>0.5).float()
        
        print(y_)
        print(l)
        loss = criterion(y_,b_y)
        print(loss.item())
        loss.backward()
        optimizer.step()
2
1
y_ = (y_>0.5).float()

有一个零梯度,凭直觉,因为"微小的变化的说法会导致绝对没有变化价值(试想一下, y_ 改变由微小的小量,不影响价值的 y_.

2021-11-21 20:01:40

我没有是什么意思"会导致绝对没有变化"??
Muhammad Muneeb Ur Rahman

该模型的回报率,所以我们做的阈值,使它零或一个。
Muhammad Muneeb Ur Rahman

认为有关的任何y_近说0.7. 将y_是任何不同的如果你改变它通过一个微小的小量? 不,它将1不断。 这是"绝对没有变化",一个直观的方式考虑为什么梯度将是0(甚至没有实施). 你不能使用阈值和(至少幼稚)梯度基础的学习在一起。 你可以使用阈值计算时评价指标,但不是丧失你想要的区分。 这就是为什么我们尽量减少交叉熵而不是最大限度的精确度等等。
lejlot

我的意思是"会导致y_"以任何不同的课程。
lejlot
1

与额外的信息由作的评论,正确的做法是删除线

y_ = (y_>0.5).float()
2021-11-21 21:00:43

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................