【规避内存不足问题】DefaultCPUAllocator: not enough memory: you tried to allocate 8000000 bytes. Buy new RAM

本文讲述了作者如何在资源有限的设备上通过调整批大小(batch_size)、减少多线程(num_workers)和深入理解内存分配问题来避免PyTorch模型训练时的内存溢出错误。重点在于找到`torch.utils.data.sampler`中`__iter__`方法的n参数调整技巧,以确保模型能在内存约束下正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【错误描述】

pytorch训练深度模型,由于本人自己的电脑很low,往往报内存不足,经常将dataloader中多线程num_workers置为0和将batch_size减小。但是在一次训练中将batch_size设置成1还是报错,最后采用修改源代码中统计字节参数,规避了内存不足的报错。

builtins.RuntimeError: [enforce fail at ..\c10\core\CPUAllocator.cpp:73] data. DefaultCPUAllocator: not enough memory: you tried to allocate 80000000000 bytes. Buy new RAM!

规避方式:找到采样器中的__iter__方法,将n的参数设置小,最终规避报错。参考路径。D:\autosoftware\anaconda3\Lib\site-packages\torch\utils\data\sampler.py
在这里插入图片描述

评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值