(1)tensor .data 返回和 x 的相同數據 tensor,而且這個新的tensor和原來的tensor是共用數據的,一者改變,另一者也會跟着改變,而且新分離得到的tensor的require s_grad = False, 即不可求導的。(這一點其實detach是一樣的)
(2)使用tensor.data的局限性。文檔中說使用tensor.data是不安全的, 因為 x.data 不能被 autograd 追蹤求微分 。什么意思呢?從上面的例子可以看出,由於我更改分離之后的變量值c,導致原來的張量out的值也跟着改變了,但是這種改變對於autograd是沒有察覺的,它依然按照求導規則來求導,導致得出完全錯誤的導數值卻渾然不知。它的風險性就是如果我再任意一個地方更改了某一個張量,求導的時候也沒有通知我已經在某處更改了,導致得出的導數值完全不正確,故而風險大。
原文鏈接:https://blog.csdn.net/qq_27825451/article/details/96837905