1. Создание и управление размерами тензоров
1. Тип тензора (dtype)
1.1 Преобразование между типами
t=torch.randn(3,3,dtype=torch.float)
t1=t.to(torch.float64)#t.to()会返回一个新的张量并不会改变to的值
2. Тензорное запоминающее устройство (устройство)
Описание: Функция 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 известного тензора к создать новый Тензор;