'''首次使用,先导入PyTorch包'''
import torch
torch.__version__
#'1.10.0'
一、张量(Tensor)的基本创建及其类型
1.1张量(Tensor)函数创建方法
张量的最基本创建方法和NumPy中创建Array的格式一致,都是创建函数(序列)的格式:
张量创建函数:torch.tensor()
'''通过列表创建张量'''
t = torch.tensor([1, 2])
t
#tensor([1, 2])
'''通过元组创建张量'''
torch.tensor((1, 2))
#tensor([1, 2])
'''通过数组创建张量'''
import numpy as np
a = np.array([1, 2])
t1 = torch.tensor(a)
t1
#tensor([1, 2], dtype=torch.int32)
'''Point:通过上述返回结果,我们发现张量也有detype类型'''
1.2 张量的类型
- 整数型的数组默认创建int32(整型)类型,而张量则默认创建int64(长整型)类型
- 创建浮点型数组时,张量默认是float32(单精度浮点型),而Array则是默认float64(双精度浮点型)
- 除了数值型张量,常用的常量类型还有布尔型张量,也就是构成张量的各元素都是布尔类型的张量。
'''数组类型'''
a.dtype
#dtype('int32')
t.dtype
#torch.int64
t1.dtype
#torch.int32
np.array([1.1, 2.2]).dtype
#dtype('float64')
torch.tensor(np.array([1.1, 2.2])).dtype
#torch.float64
'''继承了里面这个数组'''
torch.tensor([1.11, 2.2]).dtype
#torch.float32
t2 = torch.tensor([True, False])
t2
#tensor([ True, False])
t2.dtype
#torch.bool
和数组不同,对于张量而言,数值型和布尔型张量就是最常用的两种张量类型,相关类型总结如下。
- 我们还可以通过dtype参数,在创建张量过程中设置输出结果。
'''创建int16整型张量'''
torch.tensor([1.1, 2.7], dtype = torch.int16)
#tensor([1, 2], dtype=torch.int16)
'''在PyTorch中也支持复数类型对象创建'''
a = torch.tensor(1 + 2j) # 1是实部、2是虚部
a
#tensor(1.+2.j)
1.3张量类型的转化
- 张量类型的隐式转化和NumPy中array相同,当张量各元素属于不同类型时,系统会自动进行隐式转化
'''浮点型和整数型的隐式转化'''
torch.tensor([1.1, 2]).dtype
#torch.float32
'''布尔型和数值型的隐式转化'''
torch.tensor([True