首页 > 系统相关 >使用上下文装饰器调试Pytorch的内存泄漏问题

使用上下文装饰器调试Pytorch的内存泄漏问题

时间:2022-10-31 11:48:03浏览次数:79  
标签:泄漏 tensor counter snippet Pytorch 内存 上下文 调试

装饰器是 python 上下文管理器的特定实现。本片文章将通过一个pytorch GPU 调试的示例来说明如何使用它们。虽然它可能不适用于所有情况,但我它们却是非常有用。

调试内存泄漏问题

有很多方法可以调试内存泄漏。本文将展示一种识别代码中有问题的行的有用方法。该方法可以有助于以简洁的方式找到具体的位置。

逐行手动调试

如果遇到问题,一种经典的且常用的方法是使用调试器逐行检查,比如下面的例子:

  • 在搜索引擎查找有关如何计算 pytorch 中所有张量总数的代码片段,比如:tensor-counter-snippet
  • 在代码中设置断点
  • 使用tensor-counter-snippet来获得张量的总数统计
  • 使用调试器执行下一步操作
  • 重新运行 tensor-counter-snippet,并检查张量计数是否增加
  • 重复上面的步骤

它可以工作,但这样的操作光听起来来就很麻烦。我们可以将其封装成一个函数,这样可以在需要的时候调用,这样几乎不需要修改现有的代码,所以就引出了我们要介绍装饰器的功能。

完整文章:

https://avoid.overfit.cn/post/40d81e2235d345ed9f25d2221af7cbcf

标签:泄漏,tensor,counter,snippet,Pytorch,内存,上下文,调试
From: https://www.cnblogs.com/deephub/p/16843739.html

相关文章

  • 图形学mipmap/ripmap/SAT原理详解|为什么实际中ripmap只额外占了1/3内存而不是3倍?
    参考来源:TA百人计划/GAMES101屏幕光栅化后对采样后,如果不是1:1对应,会出现两种情况像素分辨率>纹理分辨率一个texel对应多个pixel,顶点的uv映射到纹理上不是整数值(......
  • 内存memory_get_usage,memory_get_peak_usage
    查看内存使用情况memory_get_usage([bool$real_usage=false]):int函数返回内存使用量$real_usage如果设置为TRUE,获取系统分配总的内存尺寸,包括未使用的页。......
  • 什么是JAVA内存模型
    前言在并发编程中,当多个线程同时访问同一个共享的可变变量时,会产生不确定的结果,所以要编写线程安全的代码,其本质上是对这些可变的共享变量的访问操作进行管理。导致这种不......
  • JVM(一)-内存结构
    我们都知道,我们写的Java程序需要先经过编译,生成了.class文件(字节码文件)。然而,计算机并不能直接解释.class文件里面的内容,这时候就需要一个能加载、解释.class文件并且能按......
  • 结构体的内存对齐
    结构体对齐内存的规则是什么?如何计算一个结构体占用空间?内存对齐规则结构体的内存对齐,遵循以下三个原则(以下“首地址”指相对于结构体地址的偏移量):第一个成员的首地......
  • C++内存管理
    文章目录自学网站写在前面C/C++内存分布C语言内存管理C++内存管理操作内置类型操作自定义类型operatornew&operatordeletenew&delete实现原理内置类型自定义类型定位n......
  • 深度学习论文: MOAT: Alternating Mobile Convolution and Attention Brings Strong V
    深度学习论文:MOAT:AlternatingMobileConvolutionandAttentionBringsStrongVisionModels及其PyTorch实现MOAT:AlternatingMobileConvolutionandAttentionB......
  • springboot源码剖析(四) 上下文启动
    概念      springboot在启动流程中最重要的事情便是加载启动spring组件,比如加载IOC容器,启动springMVC等。实现原理  使用AnnotationConfig......
  • 内存取证
    内存取证免责声明本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.简介内存取证一般指对计算机及相关智能设备......
  • 分区内存管理分区选择法
    1.分区内存管理:把主存分为一段一段的,每一段的空间要比一页小很多,这种方法在空间利用率上比业式管理高很多,但有另外一个缺点:一个程序片段可能会被分为几十段,这样很多时间就......