PyTorch
探索 PyTorch,这是驱动 Ultralytics YOLO26 的核心库。了解其动态图、GPU 加速以及如何构建高效的深度学习模型。
PyTorch 是一个主要由 Meta AI 开发的开源机器学习库,它已成为深度学习领域研究人员和开发者的基石。它以灵活性和易用性著称,允许用户使用动态计算图构建和训练复杂的 神经网络。这一特性通常被称为“即时执行”(eager execution),它使代码能够立即评估,与依赖静态图定义的框架相比,这使得 调试 和原型设计变得更加直观。它与 Python 编程语言无缝集成,感觉就像是标准科学计算工具的自然扩展。
Link to this section核心机制与意义#
该框架的核心是 张量 (tensors),它们是类似于 NumPy 文档 中所述的多维数组。然而,与标准数组不同,PyTorch 张量旨在利用由 NVIDIA CUDA 提供的 GPU 加速。这种硬件加速对于高效训练现代 人工智能 (AI) 模型所需的大规模并行处理至关重要。
该库支持用于 计算机视觉 (CV) 和自然语言处理的庞大工具生态系统。通过提供丰富的预构建层、优化器和损失函数,它简化了为 图像分类 和序列建模等任务创建算法的过程。
Link to this section实际应用#
该框架的多功能性使其被各行各业采用,用于构建高影响力的 AI 解决方案:
-
自动驾驶车辆: 行业领导者利用 PyTorch 构建深度学习模型,以处理来自车载摄像头的视频流。这些模型执行实时 目标检测,识别车道、标志和行人,从而实现更安全的导航。
-
医学诊断: 研究人员使用该框架开发先进的医疗保健应用。例如,它支持分析 MRI 扫描或 X 光片的系统,通过精确的 图像分割 来协助医生检测肿瘤。
Link to this section与其他相关工具的比较#
为了更好地理解其角色,区分 PyTorch 与 AI 技术栈中其他常用工具会很有帮助:
- 与 TensorFlow 相比: TensorFlow 由 Google 开发,历史上依赖静态计算图,这使得调试更加困难,但优化了部署。虽然两个框架的功能已趋于融合,但由于其直观的界面,PyTorch 通常在快速原型设计和研究方面更受青睐。
- 与 OpenCV 相比: OpenCV 是一个专注于传统图像处理功能(如缩放、过滤和颜色转换)的库,而不是用于训练神经网络。在典型的工作流程中,开发者使用 OpenCV 进行 数据预处理,然后再将图像输入 PyTorch 模型进行分析。
Link to this section与 Ultralytics 的集成#
The entire Ultralytics model family, including the cutting-edge YOLO26 and the widely used YOLO11, is built natively on PyTorch. This foundation ensures that users benefit from the framework's speed, stability, and extensive community support. Whether performing transfer learning on custom training data or exporting models for edge devices, the underlying architecture relies on PyTorch tensors and gradients.
即将推出的 Ultralytics Platform 进一步简化了这种体验,提供了一个统一的界面来管理数据集采购、训练和部署,而无需编写大量的样板代码。
以下示例演示了如何验证 GPU 可用性并使用 YOLO 模型运行推理,展示了该框架如何在底层处理硬件加速:
import torch
from ultralytics import YOLO
# Check if CUDA (GPU) is available for PyTorch acceleration
device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"PyTorch is using device: {device}")
# Load a YOLO26n model (built on PyTorch)
model = YOLO("yolo26n.pt")
# Perform object detection on an image
# PyTorch handles tensor operations and moves data to the GPU automatically
results = model("https://ultralytics.com/images/bus.jpg", device=device)





