Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neural network pytorch:zero_grad vs zero_grad()-括号的作用?_Neural Network_Pytorch - Fatal编程技术网

Neural network pytorch:zero_grad vs zero_grad()-括号的作用?

Neural network pytorch:zero_grad vs zero_grad()-括号的作用?,neural-network,pytorch,Neural Network,Pytorch,我正在尝试按如下方式训练pytorch模型: start = time.time() for epoch in range(100): t_loss = 0 for i in range(100): optimizer.zero_grad scores = my_model(sent_dict_list[i]) scores = scores.permute(0, 2, 1) loss = loss_fun

我正在尝试按如下方式训练pytorch模型:

start = time.time()

for epoch in range(100):

    t_loss = 0
    for i in range(100):


        optimizer.zero_grad
        scores = my_model(sent_dict_list[i])
        scores = scores.permute(0, 2, 1)

        loss = loss_function(scores, torch.tensor(targ_list[i]).cuda())
        t_loss += loss.item()
        loss.backward()
        optimizer.step()

    print("t_loss = ", t_loss)

我发现,当我调用“optimizer.zero_grad”时,我的损失在每个时代结束时都会减少,而当我调用带有括号的“optimizer.zero_grad()”时,损失几乎保持不变。我不知道这有什么区别,希望有人能给我解释一下。

我想你是python新手,“()”表示简单的函数调用。 考虑这个例子:

>>> def foo():
       print("function")

>>> foo
<function __main__.foo>
>>> foo()
function

回到您的问题,您必须调用该函数,否则它将无法工作

optimizer.zero_grad只是一个函数名。用括号调用函数
>>> [foo, foo, foo]