PyTorch深度学习基础(一):张量 Tensor 与基本数据操作详解
本系列目标从零开始学习深度学习基础掌握 PyTorch 编程核心工具为后续学习神经网络、CNN、Transformer、大模型等内容打下基础。在深度学习中我们每天都在处理大量的数据例如图片二维像素矩阵文本词向量序列蛋白质序列氨基酸编码矩阵图结构节点和边的特征矩阵这些数据最终都会被转换为一种统一的数据结构Tensor张量PyTorch 中最核心的数据结构就是 Tensor。本节我们将学习什么是 Tensor如何创建 TensorTensor 的形状和维度Tensor 基本运算广播机制索引与切片内存优化Tensor 与 NumPy 转换1. PyTorch简介PyTorch 是目前最流行的深度学习框架之一由 Meta AI 开发。它提供自动求导机制AutogradGPU 加速计算神经网络模块torch.nn优化算法torch.optim大量深度学习工具安装完成后我们首先导入 PyTorchimporttorch注意虽然框架名字叫PyTorch但是 Python 中导入模块使用torch而不是pytorch2. 什么是Tensor张量Tensor定义Tensor 可以理解为一个包含数字的数据容器是深度学习中存储数据的基本单位。例如标量 Scalar一个数字x5 x 5x5对应torch.tensor(5)向量 Vector一维数组x[1,2,3,4]x \begin{bmatrix}1,2,3,4 \end{bmatrix}x[1,2,3,4​]代码xtorch.tensor([1,2,3,4])矩阵 Matrix二维数组X[1234] X \begin{bmatrix} 12\\ 34 \end{bmatrix}X[13​24​]代码torch.tensor([[1,2],[3,4]])高维Tensor例如图片Height×Width×Channel Height×Width×ChannelHeight×Width×ChannelRGB图片224×224×3 224×224×3224×224×3Batch图片Batch×Channel×Height×Width Batch×Channel×Height×WidthBatch×Channel×Height×Width例如torch.zeros((32,3,224,224))表示32张图片3个颜色通道224×224像素3. 创建Tensor3.1 使用 arange 创建连续数据xtorch.arange(12)print(x)输出tensor([0,1,2,3,4,5,6,7,8,9,10,11])这里生成0,1,2,...,11 0,1,2,...,110,1,2,...,11共12个元素。4. Tensor形状 ShapeTensor 的形状可以通过x.shape查看输出torch.Size([12])表示这是一个长度为12的一维向量。5. Tensor元素数量使用x.numel()输出12numel:number of elements表示Tensor中元素总数量。6. Tensor改变形状 reshape深度学习中经常需要调整数据维度。例如原始[0,1,2,3,4,5,6,7,8,9,10,11]转换为3行4列矩阵Xx.reshape(3,4)print(X)结果tensor([ [0,1,2,3], [4,5,6,7], [8,9,10,11] ])注意reshape不会改变数据只是改变观察方式。7. 自动推断维度 -1例如x.reshape(-1,4)PyTorch 会自动计算第一维是多少。因为$ 12 \div 43 $所以(3,4)等价于x.reshape(3,4)8. 创建特殊Tensor8.1 全零矩阵torch.zeros((2,3,4))表示2个矩阵每个矩阵3行4列结果[ [ [0,0,0,0], [0,0,0,0], [0,0,0,0] ], [ ... ] ]8.2 全1矩阵torch.ones((2,3,4))所有元素xi1 x_i1xi​19. 随机初始化Tensor神经网络参数通常需要随机初始化。例如生成N(0,1) N(0,1)N(0,1)即均值0标准差1代码torch.randn(3,4)输出类似[ [-0.13,0.22,...], [1.32,-0.5,...] ]为什么需要随机初始化因为如果所有神经元参数相同梯度相同学习能力下降所以需要随机打破对称性。10. Tensor数学运算PyTorch支持加法 减法 -乘法 *除法 /幂运算 **例如xtorch.tensor([1.,2,4,8])ytorch.tensor([2.,2,2,2])print(xy)print(x-y)print(x*y)print(x/y)print(x**y)结果加法[3,4,6,10] [3,4,6,10][3,4,6,10]乘法[2,4,8,16] [2,4,8,16][2,4,8,16]11. 指数函数torch.exp(x)计算ex e^xex例如e12.718 e^12.718e12.718在深度学习中Softmaxsoftmax(xi)exi∑exj softmax(x_i) \frac{e^{x_i}} {\sum e^{x_j}}softmax(xi​)∑exj​exi​​就使用指数函数。12. Tensor拼接 concat多个Tensor合并torch.cat()例如两个矩阵Xtorch.arange(12).reshape(3,4)Ytorch.ones((3,4))按行拼接torch.cat((X,Y),dim0)结果形状64 6464按列拼接torch.cat((X,Y),dim1)结果38 383813. Tensor比较运算例如XY返回布尔矩阵True False常用于判断预测是否正确创建mask14. Tensor求和X.sum()例如012...1166 012...1166012...1166输出tensor(66.)15. Tensor广播机制 Broadcasting这是PyTorch非常重要的功能。例如atorch.arange(3).reshape(3,1)btorch.arange(2).reshape(1,2)a:[ [0], [1], [2] ]b:[ [0,1] ]两个形状不同(3,1) (1,2)但是abPyTorch自动扩展a:0 0 1 1 2 2b:0 1 0 1 0 1结果[ [0,1], [1,2], [2,3] ]这就是广播机制16. Tensor索引和切片类似Python列表。获取最后一行X[-1]获取第2~3行X[1:3]修改元素X[1,2]9表示第2行第3列修改整行X[0:2,:]12表示前两行全部设置为12。17. 节省Tensor内存普通操作YYX会创建新的Tensor修改Y引用因此内存增加。使用Y[:]XY可以原地修改。也可以XY减少内存开销。18. Tensor与NumPy转换PyTorchTensorNumPyndarray二者可以互相转换。Tensor → NumPyAX.numpy()NumPy → TensorBtorch.tensor(A)19. Tensor转换Python数字如果Tensor只有一个元素atorch.tensor([3.5])转换a.item()结果3.5也可以float(a)int(a)总结本节学习了PyTorch最核心的数据结构Tensor掌握功能方法创建Tensortorch.tensor生成连续数字torch.arange查看形状shape元素数量numel改变维度reshape全0zeros全1ones随机初始化randn拼接cat求和sum索引[]广播broadcastingNumPy转换numpy()深度学习核心思想神经网络本质上就是输入数据→Tensor→矩阵运算→Tensor→预测结果 输入数据 \rightarrow Tensor \rightarrow 矩阵运算 \rightarrow Tensor \rightarrow 预测结果输入数据→Tensor→矩阵运算→Tensor→预测结果因此掌握 Tensor是学习 PyTorch 和深度学习的第一步。

相关新闻

IDEA Vim配置终极指南:从零打造高效开发环境

IDEA Vim配置终极指南:从零打造高效开发环境

1. 项目概述:为什么你的IDEA需要一个专属的Vim配置? 如果你是一名Java开发者,或者深度使用JetBrains全家桶(如IntelliJ IDEA、PyCharm、WebStorm),同时又对Vim的高效编辑模式念念不忘,那么 .id…

2026/8/21 23:54:42 阅读更多 →
Grok Bot插件生态解析:150+插件如何让AI从聊天机器人进化为可编程智能体

Grok Bot插件生态解析:150+插件如何让AI从聊天机器人进化为可编程智能体

如果你是一个开发者,最近可能被各种“AI 助手”刷屏了。从代码补全到文档生成,从对话聊天到任务规划,似乎每个工具都在告诉你:它能帮你解决一切问题。但当你真正上手时,常常发现一个尴尬的现实:它很聪明&am…

2026/8/17 16:18:09 阅读更多 →
Java学习笔记:Java流程控制

Java学习笔记:Java流程控制

Java流程控制用户交互ScannerScanner对象Scanner知识点:java.util.Scanner是Java5的新特性,我们可以通过Scanner类来获取用户的输入。基本语法:Scanner s new Scanner(Sysem.in);通过Scanner类的next()与nextLine()方法获取输入的字符串,在读…

2026/8/20 11:37:13 阅读更多 →

最新新闻

Bibisco 完整指南:小说写作工具如何 10 分钟搭好框架并导出初稿

Bibisco 完整指南:小说写作工具如何 10 分钟搭好框架并导出初稿

Bibisco 完整指南:小说写作工具如何 10 分钟搭好框架并导出初稿 【免费下载链接】bibisco Novel writing software 项目地址: https://gitcode.com/gh_mirrors/bi/bibisco 如果你在写小说,又不想把章节结构、人物设定、修订记录散落在好几个文档里…

2026/8/21 23:55:09 阅读更多 →
parsec-vdd 深度解析:KVM/QEMU 环境快速集成虚拟显示驱动器的完整指南

parsec-vdd 深度解析:KVM/QEMU 环境快速集成虚拟显示驱动器的完整指南

parsec-vdd 深度解析:KVM/QEMU 环境快速集成虚拟显示驱动器的完整指南 【免费下载链接】parsec-vdd ✨ Perfect virtual display for game streaming 项目地址: https://gitcode.com/gh_mirrors/pa/parsec-vdd parsec-vdd 是一款为游戏串流而生的开源虚拟显示…

2026/8/21 23:55:09 阅读更多 →
基于SSM框架的音乐分享网站毕业设计:从环境搭建到功能实现全解析

基于SSM框架的音乐分享网站毕业设计:从环境搭建到功能实现全解析

1. 先搞清楚这个毕设项目到底要做什么 如果你正在为计算机专业的毕业设计发愁,特别是想找一个技术栈主流、功能完整、能体现一定工程能力的项目,那么一个基于 SSM 框架的“歌曲发烧友网站”是个不错的选择。这个项目本质上是一个 在线音乐分享与交流平台…

2026/8/21 23:55:09 阅读更多 →
SpringBoot实战:交通领域竞赛管理系统设计与部署指南

SpringBoot实战:交通领域竞赛管理系统设计与部署指南

这次我们来看一个面向特定行业的高校竞赛管理系统。项目标题是“基于SpringBoot面向交通领域的大学生竞赛管理系统的设计与实现”。这不是一个通用的AI模型或工具,而是一个典型的、为解决实际问题而生的企业级Java Web应用。它的核心价值在于,将SpringBo…

2026/8/21 23:55:09 阅读更多 →
从零到一:次时代游戏武器全流程制作指南(以《永劫无间》千机伞为例)

从零到一:次时代游戏武器全流程制作指南(以《永劫无间》千机伞为例)

大家好,我是专注于游戏美术与3D建模的技术博主。很多朋友在玩《永劫无间》时,都会被其中设计精良的武器所吸引,尤其是像“千机伞”这样结构复杂、充满机械美感的武器,更是让人有亲手将其从零到一制作出来的冲动。然而,…

2026/8/21 23:55:09 阅读更多 →
毕业设计论文格式难题全解:MathType安装、目录样式与图片显示

毕业设计论文格式难题全解:MathType安装、目录样式与图片显示

这次我们来看毕业设计论文写作中几个常见但棘手的格式问题:MathType公式编辑器安装失败、Word目录字体样式修改不生效,以及插入的图片显示不全或跨设备丢失。这三个问题看似独立,实则都指向了Office文档底层格式、样式继承和对象嵌入的核心机…

2026/8/21 23:54:08 阅读更多 →

日新闻

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

前言随着国家数字基础设施信创替代、关键技术自主可控战略持续深化,口岸智慧安防、边检智能管控领域正全面进入国产化、自主化、安全可控升级周期。当前国内机场边检旅客识别与定位体系长期依赖国外商用视觉算法、进口成像硬件、闭源通用计算平台,存在核…

2026/8/21 0:00:42 阅读更多 →
别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱当下数字化建设浪潮中,很多项目将三维可视化、视频贴图叠加的数字孪生等同于空间智能。传统数字孪生更多停留在三维场景复刻,擅长把物理世界“画出来、展示出来”,…

2026/8/21 0:00:42 阅读更多 →
105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40C到85C的影像质量一致性——ISP参数温漂补偿与产线标定策略 去年冬天在北方某车厂做A样评审,凌晨四点的黑河试验场,零下三十三度。客户拿了一台冷启动的车,中控屏上倒车影像全是雪花噪点,暗部细节直接糊成一片。我第一反应是sensor温度没上来,暗电流…

2026/8/21 0:00:42 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/21 3:21:33 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 0:02:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/21 6:07:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/21 16:42:28 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/20 21:46:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/21 0:14:22 阅读更多 →