Machine learning 在PyTorch张量上调用cpu().data.numpy()时会发生什么?

Machine learning 在PyTorch张量上调用cpu().data.numpy()时会发生什么?,machine-learning,pytorch,Machine Learning,Pytorch,我正在做一个项目,需要将损失张量中的数据传递到绘图库 执行此调用->loss.cpu.data.numpy时会发生什么 是否存在从计算图中分离张量的风险?将张量复制到CPU,但如果它已经在CPU上,则不会发生任何更改 从张量创建NumPy数组。张量和数组共享底层内存,因此如果适当修改NumPy数组,更改将反映在原始张量中。如果计划对NumPy阵列进行就地修改,通常应创建其副本。在丢失在GPU上的情况下,loss.cpu已经创建了一个副本,因此就地修改只会影响中间cpu张量,而您不使用它 是否存在

我正在做一个项目,需要将损失张量中的数据传递到绘图库

执行此调用->loss.cpu.data.numpy时会发生什么

是否存在从计算图中分离张量的风险?

将张量复制到CPU,但如果它已经在CPU上,则不会发生任何更改

从张量创建NumPy数组。张量和数组共享底层内存,因此如果适当修改NumPy数组,更改将反映在原始张量中。如果计划对NumPy阵列进行就地修改,通常应创建其副本。在丢失在GPU上的情况下,loss.cpu已经创建了一个副本,因此就地修改只会影响中间cpu张量,而您不使用它

是否存在从计算图中分离张量的风险

不,对于计算图,原始张量损失不受此影响。

将张量复制到CPU,但如果它已经在CPU上,则不会发生任何变化

从张量创建NumPy数组。张量和数组共享底层内存,因此如果适当修改NumPy数组,更改将反映在原始张量中。如果计划对NumPy阵列进行就地修改,通常应创建其副本。在丢失在GPU上的情况下,loss.cpu已经创建了一个副本,因此就地修改只会影响中间cpu张量,而您不使用它

是否存在从计算图中分离张量的风险

不,对于计算图,原始张量损失不受此影响