深度学习中的动态Shape
一、概念
- 静态Shape:指在网络执行阶段Tensor的shape没有发生变化;
- 动态Shape:指在网络执行阶段Tensor的shape发生变化。
二、动态shape引起的原因
- 输入shape不固定;
- 网络执行过程中有引发shape变化的API;
- 控制流不同分支引入shape上的变化。
三、规避策略
- 可以在输入数据上加pad,pad到固定的shape。如deep_speechv2的数据处理 规定input_length的最大长度,短的补0,长的随机截断,但是注意这种方法可能会影响训练的精度,需要平衡训练精度和训练性能;
- 可以设置一组固定的输入shape,将输入分别处理成几个固定的尺度。如YOLOv3_darknet53的数据处理,在batch方法加处理函数multi_scale_trans,在其中MultiScaleTrans中随机选取一个shape进行处理;
- 构造mask来过滤掉无效的位置的值。
分类:
AI推理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2019-05-07 使用Colaboratory的免费GPU训练神经网络