深度学习 -- Tensor属性及torch梯度计算
深度学习 – Tensor属性及torch梯度计算
文章目录
- 深度学习 -- Tensor属性及torch梯度计算
- 前言
- 一、Tensor数据转换
- 1.1 张量转Numpy
- 1.2 Numpy转张量
- 二,Tensor常见操作
- 2.1获取元素值
- 2.2 元素值运算
前言
一、Tensor数据转换
1.1 张量转Numpy
import torch
import numpy as npdef test01():t1=torch.tensor([[1,2,3],[4,5,6]])print(t1)#浅拷贝,共享内存#调用numpy()方法可以把Tensor转换为Numpy,此时内存是共享的。n1=t1.numpy()print(n1)#深拷贝,重新创造副本存储#使用copy()方法可以避免内存共享n2=t1.numpy().copy()print(n2)
tensor([[1, 2, 3],[4, 5, 6]])
[[1 2 3][4 5 6]]
[[1 2 3][4 5 6]]
1.2 Numpy转张量
def test02():n1=np.array([1,2,3,4,5,6])#from_numpy方法转Tensor默认是内存共享的t1=torch.from_numpy(n1)print(t1)#使用传统的torch.tensor()则内存是不共享的~t2=torch.tensor(n1)print(t2)if __name__ == '__main__':# test01()test02()
tensor([1, 2, 3, 4, 5, 6], dtype=torch.int32)
tensor([1, 2, 3, 4, 5, 6], dtype=torch.int32)
二,Tensor常见操作
2.1获取元素值
我们可以把单个元素tensor转换为Python数值,这是非常常用的操作
import torch
#获取元素值
def test01():t1=torch.tensor(18)print(t1.item())t2=torch.tensor([[18]])print(t2.item())
18
18
2.2 元素值运算
常见的加减乘除次方取反开方等各种操作,带有_的方法则会替换原始值。