PyTorch 自动求导与神经网络基础
1. PyTorch自动求导机制及关闭方法
在训练模型时,我们通常只对训练损失 train_loss 调用 backward 函数,这意味着误差只会基于训练集进行反向传播,而验证集则用于独立评估模型在未用于训练的数据上的输出准确性。
这里可能会有人产生疑问,模型会在训练数据 train_t_u 和验证数据 val_t_u 上各评估一次,然后调用 backward 函数,这会不会让自动求导机制(autograd)产生混淆呢?其实并不会。在训练循环中,首先会对 train_t_u 评估模型得到 train_t_p ,然后计算 train_loss ,这会创建一个将 train_t_u 、 train_t_p 和 train_loss 连接起来的计算图。当模型在 val_t_u 上再次评估时,会得到 val_t_p 和 val_loss ,此时会创建一个独立的计算图,将 val_t_u 、 val_t_p 和 val_loss 连接起来。这两个计算图唯一共享的张量是参数。当我们对 train_loss 调用 backwar
超级会员免费看
订阅专栏 解锁全文
940

被折叠的 条评论
为什么被折叠?



