本站原创文章,转载请说明来自《老饼讲解-深度学习》www.bbbdata.com
在pytorch的实际应用中,经常要将tensor对象转换回numpy进行进一步计算或展示
本文讲解如何将pytorch的tensor对象转换回numpy
本节讲解如何将tensor对象转换回numpy,和需要注意的事项
使用numpy可以将tensor转换回numpy数组
示例如下:
import torch
x = torch.tensor( [[1, 2],[3, 4]]) # 生成一个tensor数据x
np_x = x.numpy()
必须记住,在用np_x生成x时,np_x与x是指向同一块内存的
改变x的同时会改会np_x,同样,改变np_x会改变x
示例如下:
import torch
x = torch.tensor( [[1, 2],[3, 4]]) # 生成一个tensor数据x
np_x = x.numpy()
np_x[0] = 9999
print('np_x:',np_x)
print('x:',x)
运行结果如下:
np_x: [[9999 9999]
[ 3 4]]
x: tensor([[9999, 9999],
[ 3, 4]])
可以看到,改变np_x时,np_x和x都改变了
如果不想这样,在转换为numpy时,就需要进行拷贝,如下
import torch
x = torch.tensor( [[1, 2],[3, 4]]) # 生成一个tensor数据x
np_x = x.numpy().copy()
np_x[0] = 9999
print('np_x:',np_x)
print('x:',x)
运行结果如下:
np_x: [[9999 9999]
[ 3 4]]
x: tensor([[1, 2],
[3, 4]])
可以看到,x不再受np_x的影响
1. 如何将tensor转换回数值变量
特别地,tensor里只有一个元素时,用item()可以将tensor转换回数值,如下
x = torch.tensor( [1]) # 生成一个tensor数据x2
x.item()
End