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

PyTorch调用torch.cuda.current_device()报invalid stoi argument错误求助

PyTorch CUDA RuntimeError: invalid stoi argument 问题排查与解决

我业余学习Python和PyTorch,部分API能正常使用,但调用torch.cuda.current_device()时抛出RuntimeError: invalid stoi argument异常,而torch.cuda.is_available()能正常返回True。运行stable_diffusion_webui等GPU相关功能也失败,最终都指向这个异常。

环境信息

  • 系统:Windows 11
  • Python版本:3.10.8
  • PyTorch版本:1.12.1+cu113
  • 存在可用GPU硬件

已安装包列表

Package                 Version
----------------------- ---------------
absl-py                 1.3.0
addict                  2.4.0
antlr4-python3-runtime  4.9.3
basicsr                 1.4.2
beautifulsoup4          4.11.1
cachetools              5.2.0
certifi                 2022.9.24
charset-normalizer      2.1.1
clip                    1.0
colorama                0.4.6
contourpy               1.0.6
cycler                  0.11.0
einops                  0.4.1
facexlib                0.2.5
ffmpy                   0.3.0
filelock                3.8.0
filterpy                1.4.5
font-roboto             0.0.1
fonts                   0.0.3
fonttools               4.38.0
ftfy                    6.1.1
future                  0.18.2
gdown                   4.5.3
gfpgan                  1.3.5
google-auth             2.14.0
google-auth-oauthlib    0.4.6
grpcio                  1.50.0
idna                    3.4
imageio                 2.22.3
kiwisolver              1.4.4
lark                    1.1.2
llvmlite                0.39.1
lmdb                    1.3.0
lpips                   0.1.4
Markdown                3.4.1
MarkupSafe              2.1.1
matplotlib              3.6.2
networkx                2.8.8
numba                   0.56.3
numpy                   1.23.3
oauthlib                3.2.2
omegaconf               2.2.3
opencv-python           4.6.0.66
orjson                  3.8.1
packaging               21.3
piexif                  1.1.3
Pillow                  9.2.0
pip                     22.2.2
protobuf                3.19.6
pyasn1                  0.4.8
pyasn1-modules          0.2.8
pycparser               2.21
pycryptodome            3.15.0
pydantic                1.10.2
pyDeprecate             0.3.2
pydub                   0.25.1
pyparsing               3.0.9
pyrsistent              0.19.2
PySocks                 1.7.1
python-dateutil         2.8.2
python-multipart        0.0.4
pytz                    2022.6
PyWavelets              1.4.1
PyYAML                  6.0
regex                   2022.10.31
requests                2.28.1
requests-oauthlib       1.3.1
resize-right            0.0.2
rfc3986                 1.5.0
rsa                     4.9
scikit-image            0.19.3
scipy                   1.9.3
setuptools              63.2.0
six                     1.16.0
sniffio                 1.3.0
soupsieve               2.3.2.post1
tb-nightly              2.11.0a20221103
tensorboard-data-server 0.6.1
tensorboard-plugin-wit  1.8.1
tifffile                2022.10.10
tokenizers              0.12.1
torch                   1.12.1+cu113
torchvision             0.13.1+cu113
tqdm                    4.64.1
typing_extensions       4.4.0
uc-micro-py             1.0.1
urllib3                 1.26.12
wcwidth                 0.2.5
websockets              10.4
Werkzeug                2.2.2
wheel                   0.37.1
yapf                    0.32.0
zipp                    3.10.0

问题

  1. 该问题的成因是什么?我了解该错误的C++含义,但不清楚为何在Python中出现。
  2. 有什么办法可以解决这个问题?

成因分析

invalid stoi argument本质是C++层尝试将非数字字符串转为整数时失败。在PyTorch CUDA场景下,通常是以下原因:

  • CUDA环境变量异常:PyTorch读取CUDA相关环境变量(比如CUDA_VISIBLE_DEVICES)时,变量值不是合法的设备索引数字,而是空字符串或非数字内容,导致底层调用stoi转换失败。
  • PyTorch与CUDA版本不匹配:虽然安装的是1.12.1+cu113,但系统中可能存在其他版本的CUDA runtime,导致PyTorch读取设备信息时出现解析错误。
  • GPU设备索引配置错误:部分工具(如stable_diffusion_webui)会通过配置文件设置GPU设备索引,如果配置值非法,会触发该异常。

解决方法

  • 检查并修复CUDA环境变量

    1. 打开系统环境变量设置,查找CUDA_VISIBLE_DEVICES变量,若存在且值为空或非数字(比如字母、特殊字符),直接删除该变量,或设置为合法的设备索引(比如0,对应第一块GPU)。
    2. 重启终端或IDE,重新运行代码测试。
  • 重新安装匹配的PyTorch与CUDA

    1. 先卸载当前PyTorch:pip uninstall torch torchvision
    2. 确认系统安装的CUDA Toolkit版本(建议使用cu113,与原版本匹配),然后重新安装对应版本的PyTorch:
      pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 --extra-index-url https://download.pytorch.org/whl/cu113
      
    3. 安装完成后,再次验证torch.cuda.current_device()是否正常。
  • 检查GPU配置文件
    若使用stable_diffusion_webui,查看其配置文件(比如webui-user.bat或config.json)中关于GPU设备的设置,确保--gpu-id参数值为合法数字(比如0),而非空或其他非法值。

  • 验证GPU设备状态
    通过命令nvidia-smi查看GPU设备是否正常识别,确认设备索引是否正确,若设备显示异常,更新NVIDIA显卡驱动到最新版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 12:20:29