深度学习——pytorch基础入门

news/2025/1/15 0:01:23/

一、张量

        在PyTorch中,张量是PyTorch中最基本的数据结构。张量可以看作是一个多维数组,可以在GPU上加速运算。PyTorch的张量和Numpy的数组非常类似,但是与Numpy不同的是,PyTorch的张量可以自动地在GPU上进行加速计算。

        PyTorch中的张量是深度学习模型中最常用的数据结构,它可以存储模型的输入、输出以及模型的参数,并且可以通过自动求导来计算梯度,方便进行反向传播算法的实现。

1、张量的数据类型

  • torch.float32torch.float: 默认的浮点数类型,32位浮点数。
  • torch.float64torch.double: 64位浮点数。
  • torch.float16torch.half: 半精度浮点数。适用于GPU计算,可以节省内存和计算资源。
  • torch.int8: 8位整数。
  • torch.int16torch.short: 16位整数。
  • torch.int32torch.int: 32位整数。
  • torch.int64torch.long: 64位整数。
  • torch.bool: 布尔类型,只能是True或False。

2、张量的创建

在PyTorch中,可以使用多种方式来创建张量。下面是一些常用的方法:

2.1、使用torch.tensor()函数:

        可以使用torch.tensor()函数从Python列表、元组、NumPy数组等数据结构中创建一个新的张量。例如:

         张量的维度可以通过.shape查看,并可使用.size0方法计算张量的形状大小,使用.numel0方法计算张量中包含元素的数量,例如:

        还可以使用参数dtype来指定张量的数据类型,使用参数requires_grad来指定张量是否需要计算梯度(只有浮点数才能计算梯度)。例如:

2.2、使用torch.Tensor()函数:

        在PyToreh中也可使用loreh.Tensor()函数来生成张量,而且可以根据指定的形状生成张量。

2.3、使用numpy数组转化为张量

        将Numpy数组转化为PyTorch张量,可以使用torch.as_tensor()兩数和torehrom_numpy()函数,例如:

2.4、随机数生成张量

        在PyToreh中还可以通过相关随机数来生成张量,并且可以指定生成随机数的分布函数等。在生成随机数之前,可以使用torch.manual_seed()函数,指定生成随机数的种子,用于保证生成的随机数是可重复出现的。

1. torch.randn():从标准正态分布中生成随机数。

2. torch.rand():从0到1之间的均匀分布中生成随机数。

3. torch.randint():在给定的范围内生成随机整数。

4.torch.normal():生成服从正态分布的随机数


2.5、其他

torch.zeros():全0张量
torch.ones():全1张量
torch.eye():单位张量
torch.full(():填充张量
torch.empty():空张量

3、张量操作

3.1、改变张量大小

        改变张量的形状在深度学习的使用过程中经常会遇到,而且针对不同的情况对张量形状尺寸的改变有多种函数和方法可以使用,如tensor.reshape()方法可以设置张量的形状大小。

3.2、获取张量元素

        该操作类似于python中数组的访问和切片 

3.3、拼接和拆分张量

        在PyTorch中,可以使用torch.cat()或torch.stack()函数来拼接张量,使用torch.split()torch.chunk()函数来拆分张量。

二、


http://www.ppmy.cn/news/1563170.html

相关文章

数据结构与算法之栈: LeetCode 71. 简化路径 (Ts版)

简化路径 https://leetcode.cn/problems/simplify-path/description/ 描述 给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 ‘/’ 开头),请你将其转化为 更加简洁的规范路径 在 Unix 风格的文件系统中…

Center Loss 和 ArcFace Loss 笔记

一、Center Loss 1. 定义 Center Loss 旨在最小化类内特征的离散程度,通过约束样本特征与其类别中心之间的距离,提高类内特征的聚合性。 2. 公式 对于样本 xi​ 和其类别yi​,Center Loss 的公式为: xi​: 当前样本的特征向量&…

利用Bi-LSTM实现基于光谱数据对数值进行预测-实战示例

0前言&简介: 本文为《RNN之:LSTM 长短期记忆模型-结构-理论详解-及实战(Matlab向)》的拓展示例,对于初学者而言,还请先阅读原文,增强理解。 本示例采用了长度为807,样本数为12…

渐变头像合成网站PHP源码

源码介绍 渐变头像合成网站PHP源码,操作简单便捷,用户只需上传自己的头像,选择喜欢的头像框,点击一键合成即可生成专属定制头像。网站提供了167种不同风格的头像框供选择,用户也可以自己添加素材。生成后的头像可以直…

Windows下调试Dify相关组件(1)--前端Web

1. 什么是Dify? 官方介绍:Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。 这是个组件式框架,即使是非技…

Python贪心

贪心 贪心:把整体问题分解成多个步骤,在每个步骤都选取当前步骤的最优方案,直至所有步骤结束;每个步骤不会影响后续步骤核心性质:每次采用局部最优,最终结果就是全局最优如果题目满足上述核心性质&#xf…

利用AI提升SEO效果的关键词优化策略

AI在SEO中的重要性 在当前数字化时代,网站的可见性和可达性变得尤为重要,而搜索引擎优化(SEO)则是提升网站流量和展示机会的关键。人工智能(AI)的引入为SEO领域注入了新的活力,使得优化过程更为…

C++类的引入

C中类的前身 1> 面向对象三大特征:封装、继承、多态 2> 封装:将能够实现某一事物的所有万事万物都封装到一起,包括成员属性(成员变量),行为(功能函数)都封装在一起&#xff…