南山做网站教程,四川省建设厅招标网站,做网站备案是承诺书在哪下载,手机做网站的教程pytorch 官方文档 Tensor基础#xff0c;数据类型#xff0c;及其多种创建方式 1. 创建 Creating Tensor#xff1a; 标量、向量、矩阵、tensor2. 三种方法可以创建张量#xff0c;一是通过列表(list)#xff0c;二是通过元组(tuple)#xff0c;三是通过Numpy的数组(arra…pytorch 官方文档 Tensor基础数据类型及其多种创建方式 1. 创建 Creating Tensor 标量、向量、矩阵、tensor2. 三种方法可以创建张量一是通过列表(list)二是通过元组(tuple)三是通过Numpy的数组(array)基本创建代码如下3. 张量类型, pytorch下的数组类型4. 张量特殊类型及其创建方法 1. 创建 Creating Tensor 标量、向量、矩阵、tensor
#标量 scalar
scalar torch.tensor(7)
scalar.ndim # 查看维度
scalar.item() # 转换成 python中的整数 #向量 vector
vector torch.tensor([7, 7])
vector.shape #查看形状#矩阵 matrix
MATRIX torch.tensor([[7, 8], [9, 10]])#随机tensor下面是一些生成随机tensor的方法[更多详细方法见博客](https://blog.csdn.net/Darlingqiang/article/details/134946446?spm1001.2014.3001.5501)2. 三种方法可以创建张量一是通过列表(list)二是通过元组(tuple)三是通过Numpy的数组(array)基本创建代码如下
import torch # 导入pytorch
import numpy as np # 导入numpyprint(torch.__version__) # 查看torch版本
t1 torch.tensor([1,1]) # 通过列表创建
t1 torch.tensor((1,1)) # 通过元组创建
t1 torch.tensor(np.array([1,1]) # 通过数组创建
t1 # tensor([1, 1])张量相关属性查看的基本操作后期遇到的张量结构都比较复杂难以用肉眼直接看出因此相关方法用的也比较频繁
方法描述栗子ndim查看张量的维度也可使用dim()t.ndim /t.dim()dtype查看张量的数据结构t.dtypeshape查看张量的形状t.shapesize查看张量的形状和shape方法相同t.size()numel查看张量内元素的元素t.numel()
注size()和numel()是需要加括号, 实例
t2 torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
t2.ndim # 2
t2.dtype # torch.int64
t2.shape # torch.Size([3, 3])
t2.size() # torch.Size([3, 3])
t2.numel() # 返回93. 张量类型, pytorch下的数组类型
python作为动态语言很少去注意到变量的类型因为我们编写代码时并不需要声明变量类型但是细心的小伙伴会发现调用dtype后返回的是torch.int64, 这说明pytorch对于数组的类型是很严谨因此我们还要了解在pytorch下的数组类型
注 只需要记住有整数浮点数布尔型和复数即可
类型dtype32bit浮点数torch.float32 或 torch.float64bit浮点数torch.float64 或 torch.double16bit浮点数torch.float168bit无符号整数torch.uint88bit有符号整数torch.int816bit有符号整数torch.int16 或 torch.short32bit有符号整数torch.int32 或 torch.int64bit有符号整数torch.int64 或 torch.long布尔型torch.bool复数型torch.complex64
在pytorch中默认的张量整数类型是int64使用浮点数类型是float32【不同版本pytorch可能不同】
双精度double能存储的有效位数比单精度float更多但相应的需要的存储空间越多
int16int32int64的区别主要在于表示值的范围不同数字越大所能表示的范围越大
在pytorch中可以使用在创建时指定数据类型也可以后期进行修改实例如下
t3 torch.tensor([True, 1.0]) # tensor([1., 1.])隐式转换
t3 torch.tensor([1,1,1,1],dtypefloat)
t3.dtype # torch.float64
t3.int() # tensor([1, 1, 1, 1], dtypetorch.int32)
t3.byte() # tensor([1., 1., 1., 1.], dtypetorch.float64)
t3.short() # tensor([1, 1, 1, 1], dtypetorch.int16)
t3.bool() # tensor([True, True, True, True])4. 张量特殊类型及其创建方法
方法描述torch.zeros()创建全为0的张量torch.ones()创建全为1的张量torch.eye()创建对角为1的单位矩阵torch.diag(t)创建对角矩阵需要传入1维张量torch.rand()创建服从0-1均匀分布的张量torch.randn()创建服从标准正态分布的张量torch.normal()创建服从指定正态分布的张量torch.randn创建服从标准正态分布的张量torch.randint()创建由指定范围随机抽样整数组成的张量torch.arange()创建给定范围内的连续整数组成的张量torch.linspace()创建给定范围内等距抽取的数组成的张量torch.empty()创建未初始化的指定形状的张量torch.full()创建指定形状指定填充数值的张量
需要注意有哪些方法是传入代表结构的列表有哪些是传入张量有哪些是传入数字实例如下
torch.zeros([3,3]) # 创建3行3列元素全为0的2维张量
torch.ones([3,3]) # 创建3行3列元素全为1的2维张量
torch.eye(4) # 创建4行4列的单位矩阵t torch.tensor([1,2,3,4]) # 创建需要传入的1维张量
torch.diag(t) # 创建对角元素为1234的对角矩阵torch.rand([3,4]) # 创建元素为0-1分布的3行4列张量
torch.normal(3, 4, [2, 2]) # 创建服从均值为3标准差为4的正态分布元素组成的张量
torch.randn([3,4]) # 创建元素为标准正态分布的3行4列张量torch.randint(0,20,[3,4]) # 创建由0-20间的随机整数组成的3行4列的张量
torch.arange(1,20) # 创建0-20内连续整数组成的张量 torch.linspace(1, 10, 5) # 创建给定范围内等距取样的数组成的张量 1-10范围内创建5个元素
torch.empty([3,4]) # 创建3行4列的未初始化张量
torch.full([3, 4], 2) # 创建3行4列的全为2的张量