博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AssertionError: nn criterions don‘t compute the gradient w.r.t. targets
阅读量:3936 次
发布时间:2019-05-23

本文共 639 字,大约阅读时间需要 2 分钟。

AssertionError:

## nn criterions don’t compute the gradient w.r.t. targets - please mark these tensors as not requiring gradients

读错误

可以看到这是一个断言错误,就是我们设置的东西和系统设置的东西不太兼容,所以我们要再次设置一下。

我们看一下后面说的东西,nn的原则告诉我们这里是不需要计算梯度的,所以请将这些张量定义为不需要计算梯度。

所以是我们将某些需要计算梯度的东西传到了不计算梯度的地方。

解决错误

我们看错误的位置,

48 target = torch.randn_like(output) 49 #这里可能产生一个报错在下面详细叙述

—> 50 loss = loss_fnc(target, output)

51 #loss = loss_fnc(output, target) 52 loss.backward()传入的东西就两个一个target一个output。

显然,需要计算梯度的是output,所以是他的位置不对。

参考https://discuss.pytorch.org/t/nn-criterions-dont-compute-the-gradient-w-r-t-targets/3693/4

我们知道在进行反向传播的时候,损失函数可以计算梯度的只有前一位的输入,后一位不能计算梯度。

所以我们调换一下顺序就行了。

转载地址:http://skywi.baihongyu.com/

你可能感兴趣的文章
Convert polygon faces to triangles or quadrangles
查看>>
How do I divide matrix elements by column sums in MATLAB?
查看>>
read obj in matlab
查看>>
find out the neighbour matrix of a mesh
查看>>
Operators and special characters in matlab
查看>>
As-Conformal-As-Possible Surface Registration
查看>>
qmake Variable Reference
查看>>
Lesson 2 Gradient Desent
查看>>
find border vertex
查看>>
matlab sliced variable
查看>>
create symbolic array
查看>>
TAUCS库的编译(vs2010)
查看>>
color vector using in plotting example points and lines between corresponding vertices
查看>>
mex 里面调用matlab函数
查看>>
matlab中cuda编程中分配grid和block dimension的时候的注意事项
查看>>
GPU CUDA and MEX Programming
查看>>
arrayfun用法
查看>>
矩阵积分
查看>>
optimization on macOS
查看>>
Template-Based 3D Model Fitting Using Dual-Domain Relaxation
查看>>