什么是 PyTorch ?
PyTorch是一个python库,它主要提供了两个高级功能:
- GPU加速的张量计算
- 构建在反向自动求导系统上的深度神经网络
1. 定义数据
一般定义数据使用torch.Tensor ,可以定义多种类型, tensor的意思是张量,是数字各种形式的总称
import torch # 可以是一个数 x = torch.tensor(666) print(x)
tensor(666)
# 可以是一维数组(向量) x = torch.tensor([1,2,3,4,5,6]) print(x)
tensor([1, 2, 3, 4, 5, 6])
# 可以是任意维度的数组(张量) x = torch.ones(2,3,4) print(x)
tensor([[[1., 1., 1., 1.], [1., 1., 1., 1.], [1., 1., 1., 1.]], [[1., 1., 1., 1.], [1., 1., 1., 1.], [1., 1., 1., 1.]]])
# 创建一个空张量 x = torch.empty(5,3) print(x)
tensor([[1.4178e-36, 0.0000e+00, 4.4842e-44], [0.0000e+00, nan, 0.0000e+00], [1.0979e-05, 4.2008e-05, 2.1296e+23], [1.0386e+21, 4.4160e-05, 1.0742e-05], [2.6963e+23, 4.2421e-08, 3.4548e-09]])
# 创建一个随机初始化的张量 x = torch.rand(5,3) print(x)
tensor([[0.3077, 0.0347, 0.3033], [0.9099, 0.2716, 0.4310], [0.8286, 0.3317, 0.0536], [0.9529, 0.4905, 0.1403], [0.6899, 0.8349, 0.4015]])
# 创建一个全0的张量,里面的数据类型为 long x = torch.zeros(5,3,dtype=torch.long) print(x)
tensor([[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]])
2. 定义操作
凡是用Tensor进行各种运算的,都是Function
最终,还是需要用Tensor来进行计算的,计算无非是
- 基本运算,加减乘除,求幂求余
- 布尔运算,大于小于,最大最小
- 线性运算,矩阵乘法,求模,求行列式
# 创建一个 2x4 的tensor m = torch.Tensor([[2, 5, 3, 7], [4, 2, 1, 9]]) print(m.size(0), m.size(1), m.size(), sep=' -- ')
2 -- 4 -- torch.Size([2, 4])
# 返回 m 中元素的数量 print(m.numel())
8
# 返回 第0行,第2列的数 print(m[0][2]) # 返回 第1列的全部元素 print(m[:, 1]) # 返回 第0行的全部元素 print(m[0, :]) # Create tensor of numbers from 1 to 5 # 注意这里结果是1到4,没有5 v = torch.arange(1, 5) print(v)
tensor(3.)
tensor([5., 2.])
tensor([2., 5., 3., 7.])
tensor([1, 2, 3, 4])
# matlabplotlib 只能显示numpy类型的数据,下面展示了转换数据类型,然后显示 # 注意 randn 是生成均值为 0, 方差为 1 的随机数 # 下面是生成 1000 个随机数,并按照 100 个 bin 统计直方图 plt.hist(torch.randn(1000).numpy(), 100);
# 当数据非常非常多的时候,正态分布结果非常明显 plt.hist(torch.randn(10**6).numpy(), 100);
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyTorch入门基础 - Python技术站