标签: machine-learning pytorch
我正在一个项目上,需要将损失张量中的数据传递到绘图库。
执行此呼叫时会发生什么-> loss.cpu().data.numpy()
loss.cpu().data.numpy()
是否有将张量与计算图分离的风险?
答案 0 :(得分:3)
.cpu()将张量复制到CPU,但是如果张量已经在CPU上,则没有任何变化。
.cpu()
.numpy()从张量创建一个NumPy数组。张量和数组共享底层内存,因此,如果就地修改NumPy数组,则更改将反映在原始张量中。如果计划对NumPy数组进行就地修改,则通常应创建它的副本。在loss在GPU上的情况下,loss.cpu()已经创建了一个副本,因此就地修改只会影响您未使用的中间CPU张量。
.numpy()
loss
loss.cpu()
不,关于计算图,原始张量loss不受此影响。