Pytorch出现错误Attribute Error: module ‘torch‘ has no attribute ‘_six‘

在VScode的jupyter扩展中远程连接服务器时,由于torch2.0版本缺少_six.py文件导致问题。尝试从torch1.9.1复制该文件未成功,最终通过降级torch到1.9.1版本解决了问题。若发现已有_six.py文件,重启jupyterkernel也可解决。

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

1. 问题描述:我是在VScode中使用jupyter拓展,远程连接服务器。

2. torch版本:2.0

3. pytorch版本: 1.9.1

4. 问题原因:torch 2.0版本以后中没有 ‘_six.py’ 文件

5. 如何查看torch中的py文件?
我是用的anaconda,torch中的py文件位置为:

/envs/环境名/lib/python版本号(比如:python3.8)/site-packages/torch

在这里插入图片描述
6. 解决办法
(1)我第一开始试着把torch1.9中的’_six.py’文件复制到torch2.0中,发现还是不行(不知道为啥,有大佬能解释一下吗?)
然后我又重新装了torch1.9.1,问题解决了!
步骤如下:

pip uninstall torch
pip install torch==1.9.1

Tips: 如果在步骤5中发现有’_six.py’文件,可以点击重启jupyter kernel即可解决。
在这里插入图片描述

### PyTorch GPU 版本安装后出现 `_cuda_setDevice` 属性错误的原因及解决方案 当用户尝试运行基于 GPU 的 PyTorch 代码时,可能会遇到 `AttributeError: module 'torch._C' has no attribute '_cuda_setDevice'` 错误。此问题通常由以下几个原因引起: #### 原因分析 1. **PyTorch CPU 版本被意外安装** 即使用户已经通过指定 URL 或者其他方式试图安装 GPU 支持的 PyTorch 版本,但如果环境配置不正确,仍可能仅安装了 CPU 版本[^1]。 2. **CUDA 驱动程序或工具包版本不匹配** 如果用户的 CUDA 工具包版本与所安装的 PyTorch 版本不兼容,则可能导致此类错误。例如,某些特定版本的 PyTorch 只支持特定范围内的 CUDA 版本[^4]。 3. **未正确定义 GPU 设备 ID** 当代码默认使用 GPU 而实际环境中不存在可用 GPU 或设备 ID 设置有误时,也会触发该异常。可以通过显式设置 `--gpu_ids -1` 来禁用 GPU 使用[^3]。 --- #### 解决方案 ##### 方法一:重新安装正确的 PyTorch GPU 版本 确保按照官方推荐的方式安装适合当前系统的 GPU 加速版 PyTorch。以下是针对不同 CUDA 版本的具体命令示例: ```bash pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 torchaudio==2.0.2 -f https://download.pytorch.org/whl/torch_stable.html ``` 上述命令适用于 CUDA 11.7 系统。如果您的系统使用的是 CUDA 11.8,请替换为以下命令: ```bash pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 torchaudio==2.0.2 -f https://download.pytorch.org/whl/torch_stable.html ``` 验证安装是否成功并确认是否有可用 GPU: ```python import torch print(torch.cuda.is_available()) # 应返回 True 表明可以访问 GPU print(torch.version.cuda) # 显示使用的 CUDA 版本号 ``` ##### 方法二:修改脚本逻辑以适配无 GPU 场景 对于无法立即更改硬件条件的情况,可通过调整代码来绕过 GPU 检测部分。例如,在 Python 文件中加入如下语句强制切换到 CPU 运行模式: ```python if not torch.cuda.is_available(): torch.device('cpu') else: device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu") ``` 另外还可以直接在命令行参数里增加选项关闭 GPU 功能: ```bash python train.py --data_dir sample_dataset --gpu_ids -1 ``` ##### 方法三:更新或降级 NVIDIA 驱动及相关依赖库 有时即使选择了合适的 PyTorch 和 CUDA 组合,仍然会因为底层驱动版本冲突而失败。建议查阅 [NVIDIA 官方文档](https://developer.nvidia.com/cuda-toolkit-archive),找到与目标 CUDA 版本相适应的操作系统及其对应的图形卡驱动版本,并完成升级操作。 --- ### 总结 综上所述,解决 `module 'torch._C' has no attribute '_cuda_setDevice'` 的核心在于核实已安装组件间的相互关系以及合理规划资源分配策略。具体措施包括但不限于重装精确指定了 cuda 扩展名的 pytorch 发布包、修正源码中的潜在隐患点或是优化外部软硬件协同工作状态等多方面努力共同作用下才能彻底消除这一障碍[^5]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值