ShusenTang / Dive-into-DL-PyTorch

本项目将《动手学深度学习》(Dive into Deep Learning)原书中的MXNet实现改为PyTorch实现。
http://tangshusen.me/Dive-into-DL-PyTorch
Apache License 2.0
18.25k stars 5.39k forks source link

第六章6.4节循环神经网络,官方注释不合理,容易误解!!! #146

Open CatNofishing opened 4 years ago

CatNofishing commented 4 years ago

bug描述 关于RNN (循环神经网络)相邻采样为什么在每次迭代之前都需要将参数detach,官方解释不合理! detach 根本不是为了防止梯度计算开销过大,因为pytorch是动态计算图,小批量反向传播完已经自动销毁图,下一次的计算图根本不会反向传播到之前的小批量图,detach的唯一作用是防止反向传播到隐藏状态时由于之前计算图的销毁而导致传播出错,因为 隐藏状态H0 并不是一个叶子节点!!! 我觉得你们在翻译这个的时候,可能未考虑到 MaxNet 支持静态图,这个解释对于MaxNet 静态图时合理的,但对pytorch就不适合了!!! image

理由 https://www.cnblogs.com/catnofishing/p/13287322.html?tdsourcetag=s_pctim_aiomsg