import torch
import numpy as np
直接创建
torch.tensor(data, dtype=None, device=None, requiers_grad=False,
pin_memory=False) # 从data创建tensor
torch.from_numpy(ndarray) # 从numpy创建tensor
data:数据,可以是list,numpy
dtype:数据类型,默认与data一致
device:所在设备 gpu/cpu
requores_grad:是否需要梯度
pin_memory:是否存于锁页内存
mat = np.array([[1,2,3],
[2,3,4],
[3,4,5]])
torch.tensor(mat)
tensor([[1, 2, 3],
[2, 3, 4],
[3, 4, 5]], dtype=torch.int32)
lt = [1,2,3,4,5,6,7,8,9]
torch.tensor(lt)
tensor([1, 2, 3, 4, 5, 6, 7, 8, 9])
依据数值创建
2.1 torch.zeros(*size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) # 按size创建全0张量
size:张量的形状 如(3,3) (3,5,5) out:输出的张量 dtype:数据的类型 layout:内存中布局形式,有strided,sparse_coo等 device:所在设备 gpu/cpu requires_grad:是否需要梯度
torch.zeros(3,3) # 也可以写成torch.zeros((3,3))效果一样,也是创建一个(3,3)的全0张量
tensor([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
2.2 torch.zeros_like(input, dtype=None, layout=None, device=None, requires_grad=False) # 依据input形状创建全0张量¶
input:input是一个张量,依据input的形状创建一个全零张量 dtype:数据类型 layout:内存中布局形式 device:所在设备,gpu/cpu requires_grad:是否需要梯度
t1 = torch.tensor([[1,2,3],
[2,3,4],
[3,4,5]]) # 创建一个3x3的张量
t2 = torch.zeros_like(t1)
print('t1:{},t1.shape:{}\nt2:{},t2.shape:{}'.format(t1,t1.shape,t2,t2.shape))
t1:tensor([[1, 2, 3],
[2, 3, 4],
[3, 4, 5]]),t1.shape:torch.Size([3, 3])
t2:tensor([[0, 0, 0],
[0, 0, 0],
[0, 0, 0]]),t2.shape:torch.Size([3, 3])
2.3 torch.ones(*size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) # 依size创建全1张量
2.4 torch.ones_like(input, dtype=None, layout=torch.strided, device=None, requires_grad=False) # 依据input形状创建全1张量size:张量的形状 如(3,3) (3,255,255) input:输入的张量,依据input张量的形状创建全1张量 dtype:数据类型 layput:内存中的布局形式 device:所在设备 GPU/CPU requires_grad:是否需要梯度