1. .data和.item()的用法区别
.data返回的还是一个tensor
.item()只能对只有一个元素的tensor使用,返回一个标量(具体的数值)
2. .data和.detach()的用法区别
推荐使用.detach()
.data取出本体tensor后仍与原数据共享内存(从第一个代码段中可以看出),在使用in-place操作后,会修改原数据的值,而如果在反向传播过程中使用到原数据会导致计算错误,而使用.detach()后,如果在反向传播过程中发现原数据被修改过会报错。更加安全
参考:detech的用法