当前位置: 首页 > news >正文

Pytorch 张量基础知识

1. 张量简介

  • 张量:存储同一类型元素的容器。
  • 创建方式
    • torch.tensor():从多种数据结构创建,支持数值和布尔类型。
    • torch.Tensor():根据形状创建张量,默认数据类型为 float32

2. 创建张量

2.1 创建特定值张量

  • torch.ones(), torch.ones_like():创建全1张量。
  • torch.zeros(), torch.zeros_like():创建全0张量。
  • torch.full(), torch.full_like():创建指定值张量。

2.2 创建线性和随机张量

  • torch.arange(start, end, step):创建等差数列。
  • torch.linspace(start, end, steps):创建等间隔数列。
  • torch.rand():创建均匀分布随机数。
  • torch.randn():创建标准正态分布随机数。
  • torch.randint():创建指定范围内的随机整数。

2.3 设置随机种子

  • torch.random.initial_seed():设置随机数种子。
  • torch.manual_seed():设置随机数种子(常用)。

3. 数据类型转换

  • 使用 .type(torch.int16) 等方法进行数据类型转换。

4. 张量与NumPy数组互转

4.1 张量 -> NumPy数组

  • 共享内存.numpy()
  • 不共享内存.numpy.copy().ndarray()

4.2 NumPy数组 -> 张量

  • 不共享内存torch.tensor(ndarray)
  • 共享内存torch.from_numpy(ndarray)

4.3 标量张量 -> 数值

  • .item() 方法。

5. 张量运算

5.1 点乘与矩阵乘法

  • 点乘
    • 要求:形状相同。
    • 使用:torch.mul()* 运算符。
  • 矩阵乘法
    • 要求:第一个张量的最后一维大小等于第二个张量的倒数第二维大小。
    • 使用:torch.matmul()@ 运算符。

5.2 常用运算函数

  • sum(), mean(), max(), min():均支持 dim 参数。
    • dim=0:按列运算。
    • dim=1:按行运算。
    • 默认:对所有元素运算。
  • pow() / **, sqrt(), exp(), log(), log10(), log2()

5.3 广播机制

当两个张量形状不同时,可通过广播机制进行运算。

规则

  1. 若维度数量不同,小维度张量在最左边补1,直到维度数量相同。
  2. 若某维度大小不同,则将该维度较小的张量扩展为较大张量的大小(复制元素)。
  3. 若某维度大小不同且均不为1,则报错

7. 索引操作

分类:

  1. 简单行列索引
  2. 列表索引
  3. 范围索引
  4. 布尔索引
  5. 多维索引

8. 形状操作

方法 说明 注意
reshape() / view() 改变形状,返回新张量,原张量不变。 view() 要求张量连续存储(经transposepermute后可能不连续,需先调用.contiguous())。
squeeze() 去除所有大小为1的维度。 -
unsqueeze() 在指定位置插入大小为1的维度。 -
permute() 维度置换,改变维度顺序。 -
transpose() 交换指定的两个维度。 -
flatten() 将多维张量展平为一维。 -
contiguous() 将非连续存储的张量变为连续存储。 可用 .is_contiguous() 判断。

9. 张量的拼接与拆分

9.1 拼接

  • torch.cat():按指定维度拼接。所有张量在非拼接维度形状必须相同
  • torch.stack():在指定维度堆叠,新增一个维度。所有张量形状必须相同。

9.2 拆分

  • torch.split():按指定大小拆分。
  • torch.chunk():按指定块数拆分。
http://www.gsyq.cn/news/199280.html

相关文章:

  • 英文RAP也能对得上?Sonic节奏感获赞
  • 暗光环境下生成效果下降?预处理提亮有帮助
  • 政务大厅数字人引导员:Sonic赋能智慧政府建设
  • Kubernetes集群调度Sonic任务?大规模应用方案
  • 数字人恋爱心理咨询?Sonic倾听模式上线
  • 基于SpringBoot的自主推荐房源信息系统的研发毕设
  • 散文朗读效果?语速停顿自然获好评
  • Sonic数字人考官会不会歧视?算法确保公平
  • 抑郁症患者与Sonic对话实验:缓解孤独感
  • 亲测好用8个AI论文平台,本科生轻松搞定毕业论文!
  • android room migrations
  • zz如何使用视觉大模型上传本地图像并生成回答
  • JavaScript调用Sonic API示例代码分享
  • 小程序springboot基于Android的高校校车订座系统的设计与实现_l9w44bg8
  • 基于SpringBoot的自习室管理系统设计毕业设计
  • 大学生就业信息管理|基于springboot + vue大学生就业信息管理系统(源码+数据库+文档)
  • 实际测试Sonic口型同步误差小于0.05秒
  • Sonic数字人能否唱歌?旋律同步正在优化
  • Sonic数字人对光照敏感吗?强烈逆光需避免
  • Spring Boot与MyBatis整合原理及事务管理:深度解析与实战指南
  • springboot基于Java的社交媒体分析论坛交流系统的 数据可视化分析系统3xs61xmx
  • Sonic数字人已在医疗领域投入使用?真实案例分享
  • 蛇类识别|基于springboot + vue蛇类识别系统(源码+数据库+文档)
  • 眼神跟随功能有吗?Sonic暂未支持但未来可期
  • AI换脸与Sonic的区别:我们不做身份替换
  • 文物管理系统|基于springboot + vue文物管理系统(源码+数据库+文档)
  • 嘴唇抖动怎么解决?开启动作平滑功能即可
  • 12月14日
  • 整流二极管选型深度解析
  • 分辨率最高支持多少?理论可达4K但依赖显存