Tensors (张量)

导入pytorch

python 复制代码
import torch

构造张量

python 复制代码
x = torch.empty(5, 3)  # 构造一个5x3矩阵,不初始化
y = torch.randn(5, 3)  # 构造一个随机初始化的矩阵
z = torch.zeros(5, 3)  # 构造一个矩阵全为 0

# 构造一个张量,直接使用数据
a = torch.tensor([1.2, 2, 3])  # 单行
b = torch.tensor([[1.2, 2, 3], [2, 3, 4]])  # 多行

# 创建一个 tensor 基于已经存在的 tensor
b = b.new_ones(3, 4, dtype=torch.double)  # 重新指定了size
b = b.new_ones([3, 4], dtype=torch.double)  # 和上面一样效果
a = torch.rand_like(b, dtype=torch.float)  # size依赖输入的形参b

获取张量的维度信息

python 复制代码
print(a.size())  # torch.Size([3, 4])

加法

python 复制代码
print(z + y)  # 加法
result = torch.empty(5, 3)
print(torch.add(z, y, out=result))  # 同样是加法,和上面加法效果一样,提供一个输出tensor作为参数,如果它的size和z+y不同,会提示错误
w = y.add_(z)  # y已经发生改变
print(y)
print(w)

索引操作

python 复制代码
print(y[:,0]) # 输出的是单行矩阵,数据是第一列的所有数字
print(y[1,2]) # 输出的是第二行,第三列的数字
print(y[1,:]) # 输出的是单行矩阵,数据是第二行的所有数值

改变tensor的大小或者形状

python 复制代码
u = w.view(15) # 改变成单行矩阵,必须是原来的矩阵的行数列数乘积
s = w.view(-1,5) # 改变成5列矩阵,-1表示自动计算行数
print(u.size(),s.size()) # torch.Size([15]) torch.Size([3, 5])
相关推荐
阿明副业观察4 小时前
AI视频生成技术全解:生成方法、操作流程与选型指南
大数据·人工智能·ai作画·aigc·ai写作
鬼手点金4 小时前
opencode-rules 插件
java·开发语言·前端·人工智能·chrome·git·github
数字融合4 小时前
透明化视频孪生虚实映射一体化融合技术
人工智能·python·数码相机
杨杨杨大侠5 小时前
从一次请求讲透 A2A:Agent 怎么选、怎么协作、记忆放在哪里
人工智能·agent
后端小肥肠5 小时前
做公众号漫画还在纯手搓?这套工具从选题到复刻任意热门漫画一键搞定
人工智能·aigc·agent
xier_ran5 小时前
【infra之路】AI 编译器学习笔记(二):重拾 C++——移动语义与 LLVM 风格的类型转换
人工智能·笔记·学习
paopaokaka_luck5 小时前
滑雪场管理系统(AI智能助手流式对话,ECharts 运营数据分析、教练、雪具与场地一体化预约,钱包支付退款、订单核销与服务评价)
java·人工智能·spring boot·网络协议·数据分析·echarts
陈嘿萌5 小时前
ICML 2026|浙大 1D-Fusion:用 Tokenizer 将图像“压”成一维 Token,重构融合表示
图像处理·人工智能·计算机视觉·图像融合·计算机科学与技术·学术研究与理论基础·顶级期刊与会议
看着博客敲代码5 小时前
WorkBuddy 接上 Kali MCP 做自动化渗透:信息收集到初步验证的落地记录
linux·人工智能·安全·网络安全·自动化
szxinmai主板定制专家5 小时前
储能EMS + 协调控制器实战:RK3568/3576/3588+FPGA+AI 故障录波与诊断
人工智能·深度学习·机器学习·fpga开发·rk3588·rk3576·协调控制器