【PyTorch】6.张量运算函数:一键开启!PyTorch 张量函数的宝藏工厂

embedded/2025/2/4 8:32:19/

目录

1. 常见运算函数


个人主页:Icomi

专栏地址:PyTorch入门

深度学习蓬勃发展的当下,PyTorch 是不可或缺的工具。它作为强大的深度学习框架,为构建和训练神经网络提供了高效且灵活的平台。神经网络作为人工智能的核心技术,能够处理复杂的数据模式。通过 PyTorch,我们可以轻松搭建各类神经网络模型,实现从基础到高级的人工智能应用。接下来,就让我们一同走进 PyTorch 的世界,探索神经网络与人工智能的奥秘。本系列为PyTorch入门文章,若各位大佬想持续跟进,欢迎与我交流互关。

大家好,前面我们着重探讨了掌握张量形状操作对于搭建网络模型的重要性,就如同搭建一座精密的机械装置,每个零件(张量形状)都得严丝合缝,才能确保整个装置正常运转。现在,我们又要解锁 PyTorch 赋予我们的另一大 “秘密武器”—— 为每个张量封装的众多实用计算函数。

想象一下,我们手中的张量就像是一个装满各种数据的多功能宝箱,而 PyTorch 为这个宝箱配备了一系列神奇的 “魔法工具”,这些工具就是那些实用的计算函数。比如说,当我们需要了解宝箱里数据的整体平均水平时,就可以使用计算均值的函数,它就像一个精准的 “数据天平”,能快速帮我们算出数据的平均值。

再看平方根函数,这就好比一个能将数据进行特定 “变形” 的神奇模具。当我们希望对张量中的每个数据进行特定数学变换时,平方根函数就能大显身手,把数据转换为平方根形式,为后续的计算或分析做好准备。

还有求和函数,它如同一个勤劳的 “数据收纳员”,能将张量里的所有数据快速汇总相加,得出总和。无论是在简单的数据统计,还是复杂的网络模型计算中,这个功能都非常实用。

在我们运用 PyTorch 进行深度学习任务时,这些函数就像一群得力的助手,时刻准备为我们的计算需求提供高效支持。无论是数据预处理阶段,还是模型训练过程中的中间计算环节,它们都能发挥关键作用。

1. 常见运算函数

PyTorch 为每个张量封装很多实用的计算函数,例如计算均值、平方根、求和等等

python">import torchdef test():data = torch.randint(0, 10, [2, 3], dtype=torch.float64)print(data)print('-' * 50)# 1. 计算均值# 注意: tensor 必须为 Float 或者 Double 类型print(data.mean())print(data.mean(dim=0))  # 按列计算均值print(data.mean(dim=1))  # 按行计算均值print('-' * 50)# 2. 计算总和print(data.sum())print(data.sum(dim=0))print(data.sum(dim=1))print('-' * 50)# 3. 计算平方print(data.pow(2))print('-' * 50)# 4. 计算平方根print(data.sqrt())print('-' * 50)# 5. 指数计算, e^n 次方print(data.exp())print('-' * 50)# 6. 对数计算print(data.log())  # 以 e 为底print(data.log2())print(data.log10())if __name__ == '__main__':test()

运行结果:

python">tensor([[4., 0., 7.],[6., 3., 5.]], dtype=torch.float64)
--------------------------------------------------
tensor(4.1667, dtype=torch.float64)
tensor([5.0000, 1.5000, 6.0000], dtype=torch.float64)
tensor([3.6667, 4.6667], dtype=torch.float64)
--------------------------------------------------
tensor(25., dtype=torch.float64)
tensor([10.,  3., 12.], dtype=torch.float64)
tensor([11., 14.], dtype=torch.float64)
--------------------------------------------------
tensor([[16.,  0., 49.],[36.,  9., 25.]], dtype=torch.float64)
--------------------------------------------------
tensor([[2.0000, 0.0000, 2.6458],[2.4495, 1.7321, 2.2361]], dtype=torch.float64)
--------------------------------------------------
tensor([[5.4598e+01, 1.0000e+00, 1.0966e+03],[4.0343e+02, 2.0086e+01, 1.4841e+02]], dtype=torch.float64)
--------------------------------------------------
tensor([[1.3863,   -inf, 1.9459],[1.7918, 1.0986, 1.6094]], dtype=torch.float64)
tensor([[2.0000,   -inf, 2.8074],[2.5850, 1.5850, 2.3219]], dtype=torch.float64)
tensor([[0.6021,   -inf, 0.8451],[0.7782, 0.4771, 0.6990]], dtype=torch.float64)


http://www.ppmy.cn/embedded/159416.html

相关文章

在 Ubuntu 中使用 Conda 创建和管理虚拟环境

Conda 是一个广泛使用的包管理和环境管理系统,尤其适用于数据科学和 Python 开发。本文将指导你如何在 Ubuntu 系统中安装 Conda 并创建基于 python3.11 的虚拟环境。 1. 安装 Miniconda 或 Anaconda 方法 1:下载并安装 Miniconda Miniconda 是一个轻量…

VLC-Qt: Qt + libVLC 的开源库

参考链接 https://blog.csdn.net/u012532263/article/details/102737874

【前端学习路线】前端优化 详细知识点学习路径(附学习资源)

📚学习资源: 前端开发:零基础入门到项目实战 >> 前端开发:边学边练 >> 原学习路径下载 >>

C# 接口介绍

.NET学习资料 .NET学习资料 .NET学习资料 一、接口的定义 在 C# 中,接口是一种特殊的抽象类型,它定义了一组方法签名,但不包含方法的实现。接口使用interface关键字来声明。例如,定义一个表示形状的接口IShape: in…

HarmonyOS:状态管理最佳实践

一、概述 在声明式UI编程范式中,UI是应用程序状态的函数,应用程序状态的修改会更新相应的UI界面。ArkUI采用了MVVM模式,其中ViewModel将数据与视图绑定在一起,更新数据的时候直接更新视图。如下图所示: ArkUI的MVVM模式…

分布式数据库应用实践:架构设计与性能优化

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 引言 在当今数据驱动的世界中,分布式数据库因其高可用性、可扩展性和强大的容错能力,已成为现代企业存储…

6 [新一代Github投毒针对网络安全人员钓鱼]

0x01 前言 在Github上APT组织“海莲花”发布存在后门的提权BOF,通过该项目针对网络安全从业人员进行钓鱼。不过其实早在几年前就已经有人对Visual Studio项目恶意利用进行过研究,所以投毒的手法也不算是新的技术。但这次国内有大量的安全从业者转发该钓…

Java基础——分层解耦——IOC和DI入门

目录 三层架构 Controller Service Dao ​编辑 调用过程 面向接口编程 分层解耦 耦合 内聚 软件设计原则 控制反转 依赖注入 Bean对象 如何将类产生的对象交给IOC容器管理? 容器怎样才能提供依赖的bean对象呢? 三层架构 Controller 控制…