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])
相关推荐
fthux5 小时前
装闭 RenoPit 源码解析(07):装修闭坑知识库与AI Prompt构建
人工智能·ai·开源·github·open source·renopit
zyplayer-doc6 小时前
VuePress类静态文档站和动态知识库怎么选:两种技术路线的适用场景
javascript·人工智能·后端·安全·智能手机
KKKlucifer7 小时前
拨开接口黑盒迷雾:运营商第三方合作接口安全审计与准入管控落地实践
网络·人工智能·安全
梦梦代码精7 小时前
连锁品牌数字化:从门店扩张到用户资产运营的技术底座
大数据·人工智能·低代码·docker·开源·代码规范
咕噜咕噜啦啦7 小时前
vLLM框架
人工智能·qwen·vllm
启雀AI7 小时前
AI 驱动的视频课程自动摘要与知识点提取:ASR + LLM 流水线工程实践
人工智能·阿里云·华为云·音视频·培训saas平台
Mac的实验室7 小时前
2026年8月最新实操:谷歌Gmail邮箱手机号注册扫码发短信提示“无法验证”怎么办?(附100%成功绕过指南)
人工智能
MindUp8 小时前
AI辅助PPT生成工具的内容组织能力实测:8款产品的文档解析与排版效果对比
人工智能
寒草8 小时前
【寒草呈献】当巴菲特走进 AI 投研助手
人工智能·架构