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

在Spyder中运行PyTorch分类嵌入神经网络出现AttributeError如何解决

问题原因

这个报错是Spyder默认的交互式IPython运行环境和Python多进程的spawn启动模式不兼容导致的:Windows系统下多进程默认使用spawn模式,子进程启动时需要重新序列化导入主模块的自定义类,而Spyder的交互控制台的__main__模块是内置环境,子进程没法正确读取到你在控制台里定义的TabularDataset类。

注意:不要直接修改Python标准库的spawn.py文件,会破坏Python环境兼容性,且会导致后续其他代码运行异常。

可行解决方案

按优先级从高到低排列:

  • 方案1:关闭DataLoader多进程(最简便)
    直接修改你代码里DataLoader的num_workers参数为0,强制用主进程加载数据,小批量数据场景下几乎不会有明显的性能损失,完全能满足学习需求:

    # 把原来的num_workers=1改成num_workers=0
    dataloader = DataLoader(dataset, batchsize, shuffle=True, num_workers=0)
    

    修改后直接运行即可,不需要调整其他代码。

  • 方案2:用独立Python进程运行脚本
    如果你需要用到多进程加速数据加载,不要在Spyder默认的交互控制台运行脚本,右键你的.py脚本文件,选择「Run in new dedicated Python interpreter」(在独立Python解释器中运行),同时确保所有非类/函数定义的业务代码都包裹在if __name__ == '__main__':代码块中,就能正常使用多进程功能。

  • 方案3:拆分自定义类到独立模块
    把你定义的TabularDataset、FeedForwardNN两个类单独存到一个新的Python文件中,比如命名为custom_modules.py,然后在主运行脚本中导入这两个类:

    from custom_modules import TabularDataset, FeedForwardNN
    

    这样子进程序列化时可以从独立导入的模块中找到对应类,也能解决属性找不到的报错。


内容的提问来源于stack exchange,提问作者Ted

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 21:45:11