【recbole】RuntimeError: Unrecognized CatchingAllocator option: expandable_segments

本文讲述了在处理机器学习模型报错时,重点关注显存、batchsize大小、torch和cuda版本的问题,提出通过调整batchsize、检查并修复torch/cuda版本冲突以及在yaml配置中调整MAX_ITEM_LIST_LENGTH来解决问题的方法。

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

完整的报错:

看了下这个报错大概和显存有关系,可能batchsize有关系,或者是版本问题。(机器学习模型报错一般都和版本配置时一些版本有问题导致没有函数有关。

【尝试解决1】:将batchsize调小,(在recbole中batchsize默认是4096,这里我调成了512,1024和2048都试了一下。有些时候可以解决

【尝试解决2】:torch/cuda版本出现问题,可以使用命令:

pip freeze

去查看所有下载的包,有可能是一些requirement中包含一些torch和cuda的版本,把本来我们自己配置好的合适的版本给覆盖掉了。

比如我本来配置的是torch2.2.0+cuda118(这个比较稳定)

这里freeze看了发现变成:

可以新建一个虚拟环境重新配置torch和cuda。

torch: Start Locally | PyTorch

有时更换版本和一些batchsize可以解决这个问题。

【尝试解决3】:在我的模型doc中提到了MAX_ITEM_LIST_LENGTH在这个模型中是非常小的,例如10。然而在recbole模型的默认中,这个值是50,所以太大了也会出现这个问题。即在配置的yaml文件中设置:

MAX_ITEM_LIST_LENGTH: 10

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值