PyTorch 是一个基于 Python 的科学计算包,主要定位两类人群:
- NumPy 的替代品,可以利用 GPU 的性能进行计算。
- 深度学习研究平台拥有足够的灵活性和速度
#导入pytorch
import torch
import torchvision
import numpy as np
Tensors 类似于 NumPy 的 ndarrays ,同时 Tensors 可以使用 GPU 进行计算。
1.张量tensor
- a:各种数值数据称为张量
- b:常数 scaler 0阶张量
- c:向量 vector 1阶张量
- d:矩阵 matrix 2阶张量
- e:3阶张量
2.张量的创建
t1 = torch.Tensor([1,2,3])
print(t1)
3.torch与数组转换
arr = np.arange(12).reshape((3,4))
print(arr)
t2 = torch.tensor(arr)
print(t2)
4.操作
创建空数组: torch.empty(size)
-
构造一个随机初始化的矩阵: torch.rand(5, 3)
-
构造一个矩阵全为 0,而且数据类型是 long: torch.zeros(5, 3, dtype=torch.long)
-
创建一个 tensor 基于已经存在的 tensor: x = x.new_ones(5, 3, dtype=torch.double)
x = torch.randn_like(x, dtype=torch.float) -
获取张量的维度信息: tensor.size() 或 tensor.dim() 注意:torch.Size是一个元组,所以它支持左右的元组操作。
-
获取张量最大值: tensor.max()
-
转置: tensor.t()
-
交换两个维度的顺序: tensor.transpose() 或 tensor.permute()
'''
创建空数组
'''
t3 = torch.empty(3,4)
print(t3)
'''
创建整型数组
'''
t4 = torch.randint(low=0,high=10,size=[3,4])
print(t4)
-
改变大小:改变一个 tensor 的大小或者形状,可以使用 torch.view
-
如果只有一个元素 tensor ,使用 .item() 来获得这个值。
-
加法操作:
- 方式1:(x + y)
- 方式2:torch.add(x, y) 或 torch.add(x, y, out=result)
- 加法(adds x to y):y.add_(x)
-
计算导数,可以调用 Tensor.backward()
'''
创建一个张量,设置 requires_grad=True 来跟踪与它相关的计算
'''
x = torch.ones(2, 2, requires_grad=True)
print(x)