Python-pytorch-基础入门
PyTorch 基础入门张量Tensor 什么是张量张量Tensor是 PyTorch 的核心数据结构你可以把它理解为可以在 GPU 上加速运算的多维数组。它和 NumPy 的 ndarray 非常相似但多了三个关键能力自动求导Autograd——自动计算梯度GPU 加速——张量可以搬到 GPU 上实现百倍级提速动态计算图——每次前向传播都是一张新图调试方便术语维度示例标量Scalar0 维torch.tensor(3.14)向量Vector1 维torch.tensor([1, 2, 3])矩阵Matrix2 维torch.randn(3, 4)张量Tensor≥3 维torch.randn(2, 3, 4, 5) 创建张量importtorchimportnumpyasnp从数据创建# 从列表xtorch.tensor([1,2,3])# tensor([1, 2, 3])# 从嵌套列表2Dxtorch.tensor([[1,2],[3,4],[5,6]])# tensor([[1, 2],# [3, 4],# [5, 6]])# 从 NumPy 数组arrnp.array([1,2,3])xtorch.from_numpy(arr)# 共享内存xtorch.tensor(arr)# 复制数据# 指定数据类型xtorch.tensor([1,2,3],dtypetorch.float32)特殊张量# 全零 / 全一xtorch.zeros(3,4)# (3, 4) 的全零矩阵xtorch.ones(3,4)# (3, 4) 的全一矩阵xtorch.zeros_like(y)# 和 y 形状相同的全零# 单位矩阵xtorch.eye(3)# 3x3 单位矩阵# 未初始化效率更高但需立即赋值xtorch.empty(3,4)# 全填充xtorch.full((3,4),7)# 全为 7 的 (3, 4) 矩阵序列张量# 等差xtorch.arange(0,10,2)# tensor([0, 2, 4, 6, 8])xtorch.arange(5)# tensor([0, 1, 2, 3, 4])# 等分xtorch.linspace(0,1,5)# 0 到 1 均匀取 5 个点# tensor([0.0000, 0.2500, 0.5000, 0.7500, 1.0000])# 对数等分xtorch.logspace(-2,2,5)# 10^-2 到 10^2随机张量 ⭐# 均匀分布 [0, 1)xtorch.rand(3,4)# 标准正态分布 N(0, 1)xtorch.randn(3,4)# 整数随机 [low, high)xtorch.randint(0,10,(3,4))# 正态分布 N(mean, std)xtorch.normal(mean0,std1,size(3,4))# 随机排列xtorch.randperm(10)# 0-9 的随机排列# 固定随机种子可复现torch.manual_seed(42) 张量属性xtorch.randn(2,3,4)print(x.shape)# torch.Size([2, 3, 4])print(x.size())# 同上可以传入 dim: x.size(0) → 2print(x.ndim)# 维度数: 3print(x.dtype)# 数据类型: torch.float32print(x.device)# 所在设备: cpu / cuda:0print(x.numel())# 总元素数: 24print(x.requires_grad)# 是否需要梯度 数据类型dtype类型别名说明torch.float32torch.float32 位浮点默认torch.float64torch.double64 位双精度torch.float16torch.half16 位半精度torch.int64torch.long64 位整数torch.int32torch.int32 位整数torch.int8—8 位整数量化用torch.bool—布尔型torch.bfloat16—Brain 浮点训练用# 类型转换xtorch.tensor([1,2,3],dtypetorch.int64)xx.float()# → float32xx.double()# → float64xx.to(torch.float16)# → float16xx.type(torch.int32)# → int32# 创建时指定xtorch.tensor([1.0,2.0],dtypetorch.float64)⚙️ 基本运算算术运算atorch.tensor([1,2,3],dtypetorch.float32)btorch.tensor([4,5,6],dtypetorch.float32)# 逐元素运算支持广播print(ab)# tensor([5., 7., 9.])print(a-b)# tensor([-3., -3., -3.])print(a*b)# tensor([4., 10., 18.]) 逐元素乘法print(a/b)# tensor([0.2500, 0.4000, 0.5000])print(a**2)# tensor([1., 4., 9.])# 原地操作名称后带 _ 下划线a.add_(1)# a 1直接修改 aa.mul_(2)# a * 2矩阵运算Atorch.randn(3,4)Btorch.randn(4,5)# 矩阵乘法CA B# 推荐写法Ctorch.mm(A,B)# 只支持 2DCtorch.matmul(A,B)# 支持广播# 批矩阵乘法Atorch.randn(10,3,4)# batch10Btorch.randn(10,4,5)Ctorch.bmm(A,B)# (10, 3, 5)# 转置print(A.T)# 2D 转置print(A.transpose(0,1))# 交换两个维度print(A.permute(1,0,2))# 任意维度重排# 点积 / 外积v1,v2torch.randn(3),torch.randn(3)dottorch.dot(v1,v2)# 内积点积outertorch.outer(v1,v2)# 外积统计运算xtorch.randn(3,4)print(x.sum())# 所有元素求和print(x.sum(dim0))# 沿行求和压缩行→ (4,)print(x.sum(dim1))# 沿列求和压缩列→ (3,)print(x.mean())# 均值print(x.std())# 标准差print(x.var())# 方差print(x.max())# 最大值print(x.min())# 最小值print(x.argmax())# 最大值索引展平后print(x.argmax(dim1))# 每行最大值索引 → (3,)比较运算xtorch.tensor([1,2,3,4,5])print(x3)# tensor([False, False, False, True, True])print(x3)# tensor([False, False, True, False, False])print((x2)(x5))# tensor([False, False, True, True, False])print(torch.any(x3))# Trueprint(torch.all(x0))# True 索引与切片xtorch.randn(4,5)# 基本索引print(x[0])# 第 0 行 → (5,)print(x[0,1])# 第 0 行第 1 列 → 标量print(x[:,0])# 第 0 列 → (4,)# 切片print(x[:2])# 前 2 行print(x[1:3,2:4])# 行 1-2, 列 2-3print(x[::2])# 每隔一行# 高级索引indicestorch.tensor([0,2,3])print(x[indices])# 取第 0, 2, 3 行print(x[[0,2],[1,3]])# 取 (0,1) 和 (2,3) 两个元素# 布尔索引maskx0print(x[mask])# 所有 0 的元素展平为一维 形状操作xtorch.randn(2,3,4)# view / reshapeyx.view(-1,4)# 自动推导第一维 → (6, 4)yx.reshape(6,4)# 同上但 view 要求内存连续# 升维 / 降维yx.unsqueeze(0)# 在第 0 维前插入 → (1, 2, 3, 4)yx.unsqueeze(-1)# 在最后一维后插入 → (2, 3, 4, 1)yx.squeeze()# 删除所有长度为 1 的维度# 展平yx.flatten()# 完全展平 → (24,)yx.flatten(start_dim1)# 从第 1 维开始展平 → (2, 12)# 拼接与堆叠a,btorch.randn(2,3),torch.randn(2,3)ctorch.cat([a,b],dim0)# 沿 dim0 拼接 → (4, 3)ctorch.cat([a,b],dim1)# 沿 dim1 拼接 → (2, 6)ctorch.stack([a,b],dim0)# 新维度堆叠 → (2, 2, 3)# 分割chunkstorch.chunk(x,chunks3,dim1)# 均分为 3 块partstorch.split(x,split_size_or_sections2,dim0)# 每块 2 行↔️ NumPy 互转# Tensor → NumPyxtorch.randn(3,4)arrx.numpy()# CPU 上直接转换共享内存arrx.cpu().detach().numpy()# GPU 张量安全转换# NumPy → Tensorarrnp.array([1,2,3])xtorch.from_numpy(arr)# 共享内存xtorch.tensor(arr)# 复制一份新数据⚠️torch.from_numpy()和张量调用.numpy()是共享内存的改一个另一个也会变️ 设备管理# 查看可用设备print(torch.cuda.is_available())# 是否有 GPUprint(torch.cuda.device_count())# GPU 数量# 创建时指定设备xtorch.randn(3,4,devicecuda)# 直接在 GPU 上创建xtorch.randn(3,4,devicecuda:0)# 指定 GPU 编号# 移动张量xx.to(cuda)# 移到 GPUxx.cuda()# 同上xx.to(cpu)# 移回 CPUxx.cpu()# 同上# 设备无关代码devicetorch.device(cudaiftorch.cuda.is_available()elsecpu)xtorch.randn(3,4).to(device) 速查表需求代码创建列表张量torch.tensor([1, 2, 3])全零torch.zeros(3, 4)全一torch.ones(3, 4)标准正态随机torch.randn(3, 4)均匀随机torch.rand(3, 4)等差数列torch.arange(0, 10, 2)等分数列torch.linspace(0, 1, 10)矩阵乘法A B转置x.T/x.transpose(0, 1)改变形状x.view(-1, 4)/x.reshape(6, 4)插入维度x.unsqueeze(0)删除1维x.squeeze()展平x.flatten()拼接torch.cat([a, b], dim0)堆叠torch.stack([a, b], dim0)沿轴求和x.sum(dim0)NumPy→Tensortorch.from_numpy(arr)Tensor→NumPyx.numpy()移到GPUx.to(cuda)数据类型x.float()/x.long()[[pytorch-总览|← 返回总览]]

相关新闻

GitHub热榜Top 5项目实战:AI智能体、3D生成与低代码平台部署指南

GitHub热榜Top 5项目实战:AI智能体、3D生成与低代码平台部署指南

大家好,我是长期关注前沿开源动态的技术博主。每周浏览 GitHub Trending 榜单,是许多开发者获取技术灵感、学习优秀代码的固定习惯。本周(八月第二周)的榜单依旧精彩纷呈,涵盖了从 AI 智能体、3D 生成到低代码工具等多…

2026/8/18 5:16:49 阅读更多 →
深入解析Linux CPU Idle框架:从原理到实战调优

深入解析Linux CPU Idle框架:从原理到实战调优

1. 从一次性能调优的“意外”说起:为什么需要关注CPU Idle 去年,我接手了一个服务器性能优化的项目。客户反馈他们的在线服务在夜间低峰期,CPU使用率虽然很低,但整体功耗却降不下来,导致电费成本居高不下。我们最初的排…

2026/8/18 5:16:49 阅读更多 →
Maven项目构建与依赖管理实战指南

Maven项目构建与依赖管理实战指南

1. Maven项目构建基础认知第一次接触Maven时,我被它的依赖管理能力震撼到了。记得2013年参与一个企业级Java项目,当时团队还在手动下载jar包,项目目录里lib文件夹臃肿不堪,版本冲突问题频发。直到引入Maven后,所有依赖…

2026/8/18 5:16:49 阅读更多 →

最新新闻

智能体查询引擎:从架构设计到工程实践,解决AI应用信息检索痛点

智能体查询引擎:从架构设计到工程实践,解决AI应用信息检索痛点

1. 从“智能体”到“查询引擎”:一个被忽视的核心组件最近和几个做AI应用开发的朋友聊天,发现一个挺有意思的现象。大家一提到“智能体”(Agents),脑子里蹦出来的要么是OpenAI的GPTs,要么是AutoGPT、LangCh…

2026/8/18 5:59:01 阅读更多 →
数据分析培训深度测评:CDA、职来offer、知学堂技术栈与实战项目对比

数据分析培训深度测评:CDA、职来offer、知学堂技术栈与实战项目对比

数据分析培训,到底哪家强?CDA、职来offer、知学堂,谁才是你的“真命天子”? 最近想学数据分析,打开手机一搜,铺天盖地的培训机构广告:CDA、职来offer、知学堂……个个都说自己师资强、就业好、…

2026/8/18 5:59:01 阅读更多 →
宝马电动化战略解析:从油改电到新世代平台的技术演进与车型规划

宝马电动化战略解析:从油改电到新世代平台的技术演进与车型规划

1. 从“油改电”到“新世代”:宝马电动化战略的底层逻辑最近,宝马集团公布了其最新的电动车产品规划,信息量不小。作为一名长期关注汽车行业,尤其是豪华品牌转型路径的从业者,我习惯性地会去拆解这些官方新闻稿背后的“…

2026/8/18 5:59:01 阅读更多 →
为AI智能体构建高效查询引擎:混合检索与向量化实践

为AI智能体构建高效查询引擎:混合检索与向量化实践

1. 项目概述:为智能体构建一个专属的“搜索引擎”最近在折腾各种AI智能体(Agents)项目时,我遇到了一个非常具体且普遍的痛点:智能体“记性”不好。无论是基于LLM的自主智能体,还是像AutoGPT、LangChain Age…

2026/8/18 5:59:01 阅读更多 →
PyTorch实战:从零构建RNN与LSTM模型进行序列预测

PyTorch实战:从零构建RNN与LSTM模型进行序列预测

这次我们来看一个 PyTorch 实战项目,主题是循环神经网络(RNN)与长短期记忆网络(LSTM)。这不是一个具体的开源工具包,而是一个经典且核心的深度学习技术实践。对于任何想入门序列数据处理、时间序列预测或自…

2026/8/18 5:59:01 阅读更多 →
常德GEO系统怎么选?按生意类型挑技术栈才不踩坑

常德GEO系统怎么选?按生意类型挑技术栈才不踩坑

选常德geo系统,别盯着PPT上的概念看,核心就一条:技术栈得跟实际业务场景对得上。买错系统,就像拿工业机床去雕花,工具再贵也出不了活。这两年本地零售、生活服务行业对GEO营销的需求涨得很快。需求摆在这,怎…

2026/8/18 5:58:01 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻:设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/8/17 2:58:32 阅读更多 →

月新闻

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

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

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

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

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

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

2026/8/17 18:55:16 阅读更多 →
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/17 18:55:55 阅读更多 →