mge中的tensorshape怎么推算出来的?


我在部署模型的时候发现某个地方突然申请了一块很大的内存,我定位发现他是通过这个m_size计算的,这个size又是从一个shape中得到的。但是我想了解这个数值是怎么计算出来的,这里的数值异常大一下申请了80m的内存。

为使您的问题得到快速解决,建议参考以下模板:

【标题】
(简洁、精准的描述您的问题,例如“int8模型,多次抽feature,存在可见误差”)
【版本、环境信息】

  • MegEngine 版本:(请提供当前问题发生所使用的MegEngine 版本)
  • CPU型号:(如为CPU,请提供CPU型号)
  • GPU型号:(如为GPU,请提供GPU型号)
  • 系统环境:(请提供系统环境,linux / windows / Android、手机型号等,包括是32位/64位)
  • python版本: (请提供您使用的python版本号)

【模型信息】

  • 算法:(请提供算法源码,如有特殊实现请简单介绍)
  • 性能对比:(现在速度 vs 之前速度, shape是多少之类等)
  • 模型文件地址:(请提供模型文件地址)

【Load_and_run LOG】

  • 请提供Load_and_run复现LOG

【如为报错请提供以下复现信息】

  • 复现步骤:(请提供复现方法及步骤)
  • 日志信息:(请提供完整的日志及报错信息)
  • 代码关键片段:(请提供关键的代码片段便于追查问题)

你好,这个size又是从一个shape中得到的,具体是什么shape,相关的tensor是怎么产生的,能提供堆栈信息或者复现吗?tensorshape的推导方式很多,截图所展示的也是深层次的代码,目前提供的信息无法解答80m是如何得到的。

好的模型我上传到云盘,您这边复现一下,链接: https://pan.baidu.com/s/1QQwhZCDHuM1KgawOGBv6OQ?pwd=d8gp 提取码: d8gp

经过沟通,发现cpu的img2col的算法,在推导数据type的size存在bug,导致workspace的大小计算过大,内部已经提交修复。此外,针对本问题,可以通过workspace limit限制大小,查找更适合的算法。感谢支持。

1赞