Pytorch--Tensor

PyTorch

1. Создание и управление размерами тензоров

1. Тип тензора (dtype)

Tensor类型.png

1.1 Преобразование между типами

t=torch.randn(3,3,dtype=torch.float)
t1=t.to(torch.float64)#t.to()会返回一个新的张量并不会改变to的值

2. Тензорное запоминающее устройство (устройство)

存储设备转换.png

Описание: Функция to() может преобразовывать как типы, так и устройства хранения, операции между двумя или более векторами могут выполняться только на одном устройстве в 1;

3. Создание тензоров (от общего к частному)

3.1 Создано функцией torch.tensor()

 torch.tensor([[1,2],[3,4]],dtype=torch.float32);#接收列表类型
 torch.tensor(np.array([[1,2],[3,4]]),dtype=torch.int32);#接收numpy类型

3.2 Создание тензоров с помощью встроенных функций pytorch

torch.zeros(2,2)
torch.ones(2,3)
torch.eye(3)#生成3x3的单位矩阵
torch.randint(0,10,(3,3))#生成0-10范围内服从均匀分布的3x3整数张量
torch.rand(3,3)          #生成0-1范围内服从均匀分布的3x3张量
torch.randn(3,3)         #生成服从标准正态分布的3X3张量

3.3 Создать тензор той же формы из известного тензора (сравните память с 2.2)

t=torch.randn(5,6)
torch.zeros_like(t)
torch.ones_like(t)
torch.randint_like(t,0,10)
torch.rand_like(t)
torch.randn_like(t)

Резюме: по существу принимает форму известного тензора для создания нового тензора.

3.4 Создание тензоров с разными формами, но с одним и тем же типом данных из известных тензоров

t=torch.randn(3,3,dtype=torch.float)
t.new_tensor([1,2,3])
t.new_zeros(3,3)
t.new_ones(3,3)

Резюме: нет такой функции, как new_randn, new_rand, есть общая функция, такая как new_tensor(); new_xxx вызывается тензорными переменными. Обратите внимание на отличие от предыдущей; по сути, она принимает dtype известного тензора к создать новый Тензор;

tensor创建.png