张量的最基本的创建方法和Numpy中创建Array的格式是一致的,都是 创建函数(序列) 的格式,张量的创建函数:torch.tensor()
t1 = torch.tensor([1, 2]) 通过列表来创建张量
t2= torch.tensor((1, 2)) 通过元组来创建张量
t3 = np.array([1, 2]) 通过numpy库中array函数来创建数组
t = torch.tensor(t3) 通过上面创建的数组来创建张量,此处的t和下面程序中的t一致。
张量的返回类型:torch.tensor([1, 2])
张量和数组类似,都拥有dtype方法,可返回张量类型。
type()函数可以查看数据的类型,但不能具体查看张量的数值,这就需要 .dtype()方法 通过上面创建的数组来创建张量
t3.dtype 返回值为 dtype( ‘int32’ )
t.dtype 返回值为 torch.int64
pytorch中默认张量类型是torch.float32
3.1 张量类型的隐式转化
其和numpy中的array相同,当张量各元素属于不同类型时,系统会自动进行隐式转化。
#浮点型和整数型的隐式转化torch.tensor([1.1, 2]).dtype结果为:torch.float32#布尔型和数值型的隐式转化torch.tensor([True, 2.0])结果为:tensor([1., 2.])
3.2 张量类型的转化方法
当然,还可以通过使用.float()、.int()等方法对张量类型进行转化。但是并不会改变张量的原始类型,因为只是调用的张量的方法。
t = torch.tensor(np.array([1, 2]))print(t)结果为:tensor([1, 2])#转化为默认浮点型(32位)t.float()结果为:tensor([1., 2.])#转化为双精度浮点型t.double()结果为:tensor([1., 2.], dtype=torch.float64)#但是并不会改变张量的原始类型t.dtype结果为:torch.int64#转化为16位整数型t.short()结果为:tensor([1, 2], dtype=torch.int16)