深度学习中的动态Shape

一、概念

  • 静态Shape:指在网络执行阶段Tensor的shape没有发生变化;
  • 动态Shape:指在网络执行阶段Tensor的shape发生变化。

二、动态shape引起的原因

  1. 输入shape不固定;
  2. 网络执行过程中有引发shape变化的API;
  3. 控制流不同分支引入shape上的变化。

三、规避策略

  1. 可以在输入数据上加pad,pad到固定的shape。如deep_speechv2的数据处理 规定input_length的最大长度,短的补0,长的随机截断,但是注意这种方法可能会影响训练的精度,需要平衡训练精度和训练性能;
  2. 可以设置一组固定的输入shape,将输入分别处理成几个固定的尺度。如YOLOv3_darknet53的数据处理,在batch方法加处理函数multi_scale_trans,在其中MultiScaleTrans中随机选取一个shape进行处理;
  3. 构造mask来过滤掉无效的位置的值。

参考文章

posted @   珠峰上吹泡泡  阅读(305)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2019-05-07 使用Colaboratory的免费GPU训练神经网络
点击右上角即可分享
微信分享提示