计算 Python 代码的内存和模型显存消耗的小技巧

摘要:
了解Python代码的内存消耗是每个开发人员都必须解决的问题。当我们使用GPU进行训练时,我们还需要规划GPU视频内存的使用。这两个库可以帮助我们了解内存和视频内存的消耗。我们使用视频存储器在代码中插入检测函数,以便输出当前代码行中使用的视频存储器。通过计算视频内存占用,Python在开始运行程序时需要额外的视频内存开销。这个额外的视频内存开销与我们实际使用的模型权重视频内存大小无关。

了解Python代码的内存消耗是每一个开发人员都必须要解决的问题,这个问题不仅在我们使用pandas读取和处理CSV文件的时候非常重要,在我们使用GPU训练的时候还需要规划GPU的显存使用。尤其是我们在白嫖使用kaggle和colab时显得更为重要。

本篇文章我们将介绍两个 Python 库 memory_profiler和Pytorch-Memory-Utils,这两个库可以帮助我们了解内存和显存的消耗。

memory_profiler

计算 Python 代码的内存和模型显存消耗的小技巧第1张

Pytorch-Memory-Utils

通过Pytorch-Memory-Utils工具,我们在使用显存的代码中间插入检测函数,这样就可以输出在当前行代码时所占用的显存。这个对于我们计算模型的GPU显存占用是非常方便的,通过计算显存占用,我们才能够最大化训练的batch size,保证训练的最优速度。

Pytorch在开始运行程序时需要额外的显存开销,这种额外的显存开销与我们实际使用的模型权重显存大小无关。 这个额外的显存Pytorch的开发者也对此进行说明了,这部分释放后的显存可以用,只不过不在Nvidia-smi中显示,所以我们无需关注。

完整文章

计算 Python 代码的内存和模型显存消耗的小技巧
 

免责声明:文章转载自《计算 Python 代码的内存和模型显存消耗的小技巧》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇win10下安装npm&cnpm步骤Oracle 12c Windows安装、介绍及简单使用(图文)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MKMapView (地图)

//使用地图 #import "ViewController.h" #import <MapKit/MapKit.h>  @interface ViewController ()<MKMapViewDelegate>  @end  @implementation ViewController  - (void)viewDidLoad...

iOS开发 弹簧效果

#import "DDJelloView.h" #define SYS_DEVICE_WIDTH    ([[UIScreen mainScreen] bounds].size.width)                  // 屏幕宽度 #define SYS_DEVICE_HEIGHT   ([[UIScreen mainScreen] bounds...

服务器双向同步( 可实时 ) unison + inotify

一. Unison简介 Unison是Windows、Linux以及其他Unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或网络上的)保持内容的一致。1. 跨平台使用;对内核和用户权限没有特别要求;  2. Unison是双向的,它能自动处理两分拷贝中更新没有冲突的部分,有冲突的部分将会显示出来让用户选择更新策略; 3. 只要是能连通的两台主机...

[转]mysql 存储过程中使用多游标

From : http://www.netingcn.com/mysql-procedure-muti-cursor.html mysql的存储过程可以很方便使用游标来实现一些功能,存储过程的写法大致如下: 先创建一张表,插入一些测试数据: DROP TABLE IF EXISTS netingcn_proc_test; CREATE TABLE `...

iOS—静态方法(类方法)和实例方法

1.实例方法/动态方法     a).标识符:-     b).调用方式:(实例对象    函数)     c).实例方法在堆栈上。 2.静态方法/类方法     a).标识符:+     b).调用方式:(类    函数)     c).静态方法在堆上分配内存。 3.静态方法和实例方法的区分      a).静态方法常驻内存,实例方法不是,所以静态方法效...

WMI简介和Event驻留

  WMI (Windows Management Instrumentation,Windows管理规范) 从Windows 2000开始被包含于操作系统后,就一直是Windows操作系统的一部分。这项技术对于系统管理员来说具有巨大价值,因为它提供了提取所有类型信息、配置组件和基于系统数个组件的状态采取行动等方式。由于这种灵活性,且被早早地被包含于操作系...