PyTorch深度学习基础之Tensor对象及其应用的讲解及实战(附源码 简单易懂 包括分段 映射 矩阵乘法 随机数等等)

觉得有帮助请点赞关注收藏 有问题可评论区留言~~~

Tensor对象是一个维度任意的矩阵,但是一个Tensor中所有元素的数据类型必须一致。torch包含的数据类型和普遍编程语言的数据类型类似,包含浮点型,有符号整型和无符号整形,这些类型既可以定义在CPU上,也可以定义在GPU上。在使用Tensor数据类型时,可以通过dtype属性指定它的数据类型,device指定它的设备(CPU或者GPU)

1:基本定义

代码如下 可查看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)

输出如下 

 2:矩阵乘法

对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)

3:分段、化整、映射函数

clamp起的是分段函数的作用,可以用于去除矩阵中过小或者过大的元素,round函数将小数部分化整,tanh计算双曲正切函数,该函数将值映射到0,1

PyTorch深度学习基础之Tensor对象及其应用的讲解及实战(附源码 简单易懂 包括分段 映射 矩阵乘法 随机数等等)_第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))

 四、arange等方法创建数据

除了直接从ndarray或list类型的数据中创建Tensor外,PyTorch还提供了一些函数可以直接创建数据,这类函数往往需要提供矩阵的维度,它和python内置的range的使用方法基本想吐,其第三个参数是步长,linsapce函数第三个参数指定返回的个数。ones返回全1,zeors返回全0

PyTorch深度学习基础之Tensor对象及其应用的讲解及实战(附源码 简单易懂 包括分段 映射 矩阵乘法 随机数等等)_第2张图片

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返回随机数

rand返回从0 1均匀分布采样的元素所组成的矩阵,randn返回从正态分布采样的元素所组成的矩阵,randint返回指定区间的均匀分布采样的随机整数所组成的矩阵 

PyTorch深度学习基础之Tensor对象及其应用的讲解及实战(附源码 简单易懂 包括分段 映射 矩阵乘法 随机数等等)_第3张图片代码如下

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)))

创作不易 觉得有帮助请点赞关注收藏~~~

你可能感兴趣的:(深度学习,深度学习,pytorch,python,矩阵)