当前位置: 首页 > news >正文

几种查看PyTorch、cuda 和 Python 版本方法

在检查 PyTorch、cuda 和 Python 版本时,除了直接使用 torch.__version__sys.version,我们还可以通过其他方式实现相同的功能

方法 1:直接访问属性(原始代码)

import torch
import sysprint("PyTorch Version: {}".format(torch.__version__))
print("Python Version: {}".format(sys.version))

特点

  • 简单直接,无需额外依赖。
  • 适用于快速检查版本信息。

方法 2:通过命令行工具

如果希望在脚本外部检查版本,可以直接使用命令行工具。

Python 版本
python --version
# 或
python -V
PyTorch 版本
python -c "import torch; print(torch.__version__)"

特点

  • 适用于脚本外部检查,无需编写 Python 代码。
  • 可以集成到 CI/CD 流程中。

方法 3:使用 torch.version 模块

PyTorch 提供了一个 torch.version 模块,可以获取更详细的版本信息。

import torch
import sys# 获取 PyTorch 版本信息
print("PyTorch Version: {}".format(torch.version.__version__))  # 或直接使用 torch.__version__
print("PyTorch CUDA Version: {}".format(torch.version.cuda))  # 获取 CUDA 版本
print("PyTorch cuDNN Version: {}".format(torch.backends.cudnn.version()))  # 获取 cuDNN 版本# Python 版本
print("Python Version: {}".format(sys.version))

特点

  • 可以获取 CUDA 和 cuDNN 的版本信息,对于调试 GPU 环境非常有用。
  • torch.version 提供了更细粒度的版本控制。

方法 4:使用 pkg_resources

pkg_resourcessetuptools 提供的一个工具,可以查询已安装包的版本信息。

import pkg_resources# 获取 PyTorch 版本
try:pytorch_version = pkg_resources.get_distribution("torch").versionprint("PyTorch Version: {}".format(pytorch_version))
except pkg_resources.DistributionNotFound:print("PyTorch is not installed.")# Python 版本仍通过 sys 模块
import sys
print("Python Version: {}".format(sys.version))

特点

  • 可以查询任何已安装包的版本,而不仅仅是 PyTorch。
  • 如果包未安装,会捕获 DistributionNotFound 异常。

方法 5:使用 platform 模块(补充 Python 信息)

虽然 sys.version 已经提供了 Python 版本信息,但 platform 模块可以提供更详细的系统信息。

import torch
import platformprint("PyTorch Version: {}".format(torch.__version__))
print("Python Version: {}".format(platform.python_version()))
print("Platform: {}".format(platform.platform()))

特点

  • platform.platform() 提供了操作系统的详细信息。
  • 适用于需要记录系统环境的场景。

方法 6:结合 subprocess 调用命令行

如果需要在 Python 脚本中调用外部命令行工具,可以使用 subprocess 模块。

import subprocessdef get_python_version():result = subprocess.run(["python", "--version"], capture_output=True, text=True)return result.stdout.strip()def get_pytorch_version():result = subprocess.run(["python", "-c", "import torch; print(torch.__version__)"], capture_output=True, text=True)return result.stdout.strip()print("Python Version: {}".format(get_python_version()))
print("PyTorch Version: {}".format(get_pytorch_version()))

特点

  • 适用于需要从外部命令行获取信息的场景。
  • 可以灵活地调用其他命令行工具。

方法 7:使用 torch.utils.collect_env

PyTorch 提供了一个 torch.utils.collect_env 工具,可以收集详细的系统环境信息,包括 PyTorch、Python、CUDA、cuDNN 等。

import torchenv_info = torch.utils.collect_env()
print(env_info)

特点

  • 提供全面的环境信息,适合用于调试和问题报告。
  • 输出格式为字典,可以进一步处理。

总结

方法优点缺点
直接访问属性简单直接,无需额外依赖功能有限,仅能获取基本版本信息
PyTorch
通过命令行工具适用于脚本外部检查,无需编写 Python 代码需要手动执行命令
使用 torch.version提供更详细的版本信息(CUDA、cuDNN)仅适用于
使用 pkg_resources可以查询任何已安装包的版本需要额外依赖 setuptools
使用 platform 模块提供详细的系统信息功能与 sys 模块部分重叠
结合 subprocess灵活调用外部命令行工具实现复杂,性能可能较低
使用 torch.utils.collect_env提供全面的环境信息,适合调试输出格式复杂,需要进一步处理

相关文章:

  • 如何在 Unity 中导入 gltf /glb 文件
  • Vision-Language Dual-Pattern Matching for Out-of-Distribution Detection
  • 【国产化之路】VPX-3U :基于D2000 /FT2000的硬件架构到操作系统兼容
  • 鸿蒙-状态管理V1和V2在ForEach循环渲染的表现
  • Linux命令-perf
  • 企业为何要求禁用缺省口令?安全风险及应对措施分析
  • 论文笔记(七十九)STOMP: Stochastic Trajectory Optimization for Motion Planning
  • 如何创建极狐GitLab 议题?
  • 论文阅读笔记——π0.5: a Vision-Language-Action Model with Open-World Generalization
  • SpringBoot 封装统一API返回格式对象 标准化开发 请求封装 统一格式处理
  • 【Yolo精读+实践+魔改系列】Yolov1论文超详细精讲(翻译+笔记)
  • 字典与集合——测试界的黑话宝典与BUG追捕术
  • 系统思考:技术与产品协同
  • SLAM常用地图对比示例
  • nextjs国际化
  • Vue3 + TypeScript,使用provide提供只读的响应式数据的详细分析与解决方法
  • #define STEUER_A_H {PWM_A_ON}
  • C#中用 OxyPlot 在 WinForms 实现波形图可视化(附源码教程)
  • 深度理解spring——BeanFactory的实现
  • 通付盾入选苏州市网络和数据安全免费体验目录,引领企业安全能力跃升
  • 今年地质灾害防治形势严峻,哪些风险区被自然资源部点名?
  • 北京顺义潮白河大桥主跨坍塌原因公布,已成立事故调查组
  • 魔都眼·上海车展③ |被外籍展商围观的国产品牌
  • 从神舟五号到神舟二十号,每次任务标识藏着哪些逐梦星辰的密码
  • 匈牙利总理投票反对乌克兰加入欧盟
  • 国产手术机器人+5G技术,上海医生同一天远程为五地患者开刀