觉得有帮助请点赞关注收藏 有问题可评论区留言~~~
Tensor对象是一个维度任意的矩阵,但是一个Tensor中所有元素的数据类型必须一致。torch包含的数据类型和普遍编程语言的数据类型类似,包含浮点型,有符号整型和无符号整形,这些类型既可以定义在CPU上,也可以定义在GPU上。在使用Tensor数据类型时,可以通过dtype属性指定它的数据类型,device指定它的设备(CPU或者GPU)
代码如下 可查看tensor的基本类型以及运行设备
- import torch
- import numpy as np
- print('torch.tensor 默认为:{}'.format(torch.Tensor(1).dtype))
- a=torch.tensor([[1,2],[3,4]],dtype=torch.float64)
- print(a)
- #cpu -gpu之间转换
-
- c=torch.ones((2,2))
- c=c.to('cpu',torch.double)
- print(c.device)
输出如下
对Tensor执行算术符的运算时 是两个矩阵对应元素的运算,torch.mm执行矩阵乘法的计算
代码如下
- import torch
- import numpy as np
-
- #矩阵对应元素运算
- a=torch.tensor([[1,2],[3,4]])
- b=torch.tensor([[1,2],[4,6]])
- c=a*b
- print("每个元素相乘",c)
- c=torch.mm(a,b)
- print("矩阵乘法",c)
clamp起的是分段函数的作用,可以用于去除矩阵中过小或者过大的元素,round函数将小数部分化整,tanh计算双曲正切函数,该函数将值映射到0,1
代码如下
- import torch
- import numpy as np
-
- #特定功能函数
- #clamp分段
- a=torch.tensor([[1,2],[3,4]])
- print(torch.clamp(a,min=2,max=3))
- #round化整
- a=torch.tensor([[1.1,0.5],[0.6,-1.2]])
- print(torch.round(a))
- #tanh双曲正切 映射到0 1
- print(torch.tanh(a))
除了直接从ndarray或list类型的数据中创建Tensor外,PyTorch还提供了一些函数可以直接创建数据,这类函数往往需要提供矩阵的维度,它和python内置的range的使用方法基本想吐,其第三个参数是步长,linsapce函数第三个参数指定返回的个数。ones返回全1,zeors返回全0
- import torch
- import numpy as np
-
- #直接 创建数据
- print(torch.arange(5))
- print(torch.arange(1,5,2))
- print(torch.linspace(0,5,10))
- #全0 全1
- print(torch.ones(3,3))
- print(torch.zeros(3,3))
rand返回从0 1均匀分布采样的元素所组成的矩阵,randn返回从正态分布采样的元素所组成的矩阵,randint返回指定区间的均匀分布采样的随机整数所组成的矩阵
代码如下
- import torch
- import numpy as np
- print('torch.tensor 默认为:{}'.format(torch.Tensor(1).dtype))
- a=torch.tensor([[1,2],[3,4]],dtype=torch.float64)
- print(a)
- #cpu -gpu之间转换
-
- c=torch.ones((2,2))
- c=c.to('cpu',torch.double)
- print(c.device)
- #矩阵对应元素运算
- a=torch.tensor([[1,2],[3,4]])
- b=torch.tensor([[1,2],[4,6]])
- c=a*b
- print("每个元素相乘",c)
- c=torch.mm(a,b)
- print("矩阵乘法",c)
- #特定功能函数
- #clamp分段
- a=torch.tensor([[1,2],[3,4]])
- print(torch.clamp(a,min=2,max=3))
- #round化整
- a=torch.tensor([[1.1,0.5],[0.6,-1.2]])
- print(torch.round(a))
- #tanh双曲正切 映射到0 1
- print(torch.tanh(a))
- #直接 创建数据
- print(torch.arange(5))
- print(torch.arange(1,5,2))
- print(torch.linspace(0,5,10))
- #全0 全1
- print(torch.ones(3,3))
- print(torch.zeros(3,3))
- #随机
- print(torch.rand(3,3))
- print(torch.randn(3,3))
- print(torch.randint(0,9,(3,3)))
创作不易 觉得有帮助请点赞关注收藏~~~