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

简介: 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

代码如下

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

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返回指定区间的均匀分布采样的随机整数所组成的矩阵

代码如下

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

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

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
2月前
|
机器学习/深度学习 编解码 人工智能
计算机视觉五大技术——深度学习在图像处理中的应用
深度学习利用多层神经网络实现人工智能,计算机视觉是其重要应用之一。图像分类通过卷积神经网络(CNN)判断图片类别,如“猫”或“狗”。目标检测不仅识别物体,还确定其位置,R-CNN系列模型逐步优化检测速度与精度。语义分割对图像每个像素分类,FCN开创像素级分类范式,DeepLab等进一步提升细节表现。实例分割结合目标检测与语义分割,Mask R-CNN实现精准实例区分。关键点检测用于人体姿态估计、人脸特征识别等,OpenPose和HRNet等技术推动该领域发展。这些方法在效率与准确性上不断进步,广泛应用于实际场景。
412 64
计算机视觉五大技术——深度学习在图像处理中的应用
|
5月前
|
机器学习/深度学习 运维 安全
深度学习在安全事件检测中的应用:守护数字世界的利器
深度学习在安全事件检测中的应用:守护数字世界的利器
239 22
|
3月前
|
机器学习/深度学习 自然语言处理 算法
PyTorch PINN实战:用深度学习求解微分方程
物理信息神经网络(PINN)是一种将深度学习与物理定律结合的创新方法,特别适用于微分方程求解。传统神经网络依赖大规模标记数据,而PINN通过将微分方程约束嵌入损失函数,显著提高数据效率。它能在流体动力学、量子力学等领域实现高效建模,弥补了传统数值方法在高维复杂问题上的不足。尽管计算成本较高且对超参数敏感,PINN仍展现出强大的泛化能力和鲁棒性,为科学计算提供了新路径。文章详细介绍了PINN的工作原理、技术优势及局限性,并通过Python代码演示了其在微分方程求解中的应用,验证了其与解析解的高度一致性。
324 5
PyTorch PINN实战:用深度学习求解微分方程
|
2月前
|
机器学习/深度学习 数据采集 存储
深度学习在DOM解析中的应用:自动识别页面关键内容区块
本文探讨了如何通过深度学习模型优化东方财富吧财经新闻爬虫的性能。针对网络请求、DOM解析与模型推理等瓶颈,采用代理复用、批量推理、多线程并发及模型量化等策略,将单页耗时从5秒优化至2秒,提升60%以上。代码示例涵盖代理配置、TFLite模型加载、批量预测及多线程抓取,确保高效稳定运行,为大规模数据采集提供参考。
|
4月前
|
机器学习/深度学习 人工智能 运维
深度学习在流量监控中的革命性应用
深度学习在流量监控中的革命性应用
146 40
|
4月前
|
机器学习/深度学习 运维 资源调度
深度学习在资源利用率优化中的应用:让服务器更聪明
深度学习在资源利用率优化中的应用:让服务器更聪明
213 6
|
4月前
|
机器学习/深度学习 自然语言处理 监控
深入探索:深度学习在时间序列预测中的强大应用与实现
时间序列分析是数据科学和机器学习中一个重要的研究领域,广泛应用于金融市场、天气预报、能源管理、交通预测、健康监控等多个领域。时间序列数据具有顺序相关性,通常展示出时间上较强的依赖性,因此简单的传统回归模型往往不能捕捉其中复杂的动态特征。深度学习通过其非线性建模能力和层次结构的特征提取能力,能够有效地捕捉复杂的时间相关性和非线性动态变化模式,从而在时间序列分析中展现出极大的潜力。
|
1月前
|
机器学习/深度学习 PyTorch API
PyTorch量化感知训练技术:模型压缩与高精度边缘部署实践
本文深入探讨神经网络模型量化技术,重点讲解训练后量化(PTQ)与量化感知训练(QAT)两种主流方法。PTQ通过校准数据集确定量化参数,快速实现模型压缩,但精度损失较大;QAT在训练中引入伪量化操作,使模型适应低精度环境,显著提升量化后性能。文章结合PyTorch实现细节,介绍Eager模式、FX图模式及PyTorch 2导出量化等工具,并分享大语言模型Int4/Int8混合精度实践。最后总结量化最佳策略,包括逐通道量化、混合精度设置及目标硬件适配,助力高效部署深度学习模型。
166 21
PyTorch量化感知训练技术:模型压缩与高精度边缘部署实践
|
3月前
|
机器学习/深度学习 JavaScript PyTorch
9个主流GAN损失函数的数学原理和Pytorch代码实现:从经典模型到现代变体
生成对抗网络(GAN)的训练效果高度依赖于损失函数的选择。本文介绍了经典GAN损失函数理论,并用PyTorch实现多种变体,包括原始GAN、LS-GAN、WGAN及WGAN-GP等。通过分析其原理与优劣,如LS-GAN提升训练稳定性、WGAN-GP改善图像质量,展示了不同场景下损失函数的设计思路。代码实现覆盖生成器与判别器的核心逻辑,为实际应用提供了重要参考。未来可探索组合优化与自适应设计以提升性能。
222 7
9个主流GAN损失函数的数学原理和Pytorch代码实现:从经典模型到现代变体
|
16天前
|
机器学习/深度学习 PyTorch 算法框架/工具
提升模型泛化能力:PyTorch的L1、L2、ElasticNet正则化技术深度解析与代码实现
本文将深入探讨L1、L2和ElasticNet正则化技术,重点关注其在PyTorch框架中的具体实现。关于这些技术的理论基础,建议读者参考相关理论文献以获得更深入的理解。
43 4
提升模型泛化能力:PyTorch的L1、L2、ElasticNet正则化技术深度解析与代码实现

推荐镜像

更多