You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTorch运行TD3代码遇PicklingError:reset_code无法序列化求助

PyTorch TD3代码PicklingError问题解决方法

错误原因

该错误由PyTorch Dynamo模块的序列化限制导致,当代码涉及多进程(如强化学习中的并行环境)时,Dynamo内部的reset_code函数无法被pickle序列化,与GPU/CPU运行环境无关,重装PyTorch无法解决是因为未触及问题根源。

解决办法

  • 禁用PyTorch Dynamo:在代码最开头添加以下代码:
    import torch
    torch._dynamo.config.disable = True
    
    或通过环境变量禁用:
    • Linux/macOS终端:export TORCHDYNAMO_DISABLE=1
    • Windows命令行:set TORCHDYNAMO_DISABLE=1
  • 调整多进程启动方式:若代码使用multiprocessing或强化学习并行环境,将进程启动方式设为spawn,示例:
    import multiprocessing
    multiprocessing.set_start_method('spawn')
    
  • 降级PyTorch版本:若上述方法无效,尝试降级到2.0.x稳定版本,以CUDA 117为例,执行命令:
    pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 torchaudio==2.0.2+cu117 --index-url https://download.pytorch.org/whl/cu117
    
  • 移除torch.compile装饰器:若代码中使用了@torch.compile装饰模型或函数,暂时移除该装饰器,避免触发Dynamo相关序列化问题

内容的提问来源于stack exchange,提问作者Robin L'hyver

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 10:37:04