PyTorch
Ultralytics YOLO26を支える中核ライブラリ、PyTorchについて説明します。動的グラフ、GPUアクセラレーション、効率的なディープラーニングモデルの構築方法を紹介します。
PyTorchは、主にMeta AIによって開発されたオープンソースの機械学習ライブラリであり、ディープラーニング分野の研究者や開発者にとって中核的な存在となっています。柔軟性と使いやすさで知られ、動的計算グラフを使用して複雑なニューラルネットワークを構築・学習できます。この機能は「eager execution」と呼ばれることが多く、コードを即座に評価できるため、静的グラフ定義に依存するフレームワークと比べて、デバッグやプロトタイピングをより直感的に行えます。Pythonプログラミング言語とシームレスに統合され、標準的な科学計算ツールを自然に拡張したように使用できます。
コアとなる仕組みと重要性#
このフレームワークの中心にあるのはテンソルです。テンソルは、NumPyのドキュメントに見られるものと同様の多次元配列です。ただし、標準的な配列とは異なり、PyTorchのテンソルはNVIDIA CUDAが提供するGPUアクセラレーションを活用できるように設計されています。このハードウェアアクセラレーションは、最新の人工知能 (AI)モデルを効率的に学習するために必要な大規模な並列処理に不可欠です。
このライブラリは、コンピュータビジョン (CV)や自然言語処理向けの幅広いツールエコシステムをサポートしています。事前構築済みのレイヤー、オプティマイザー、損失関数を豊富に提供することで、画像分類やシーケンスモデリングなどのタスク向けアルゴリズムの作成を簡素化します。
実世界での利用例#
このフレームワークの汎用性により、さまざまな業界で影響力の大きいAIソリューションに採用されています。
-
自動運転車: 業界の主要企業はPyTorchを活用して、車載カメラからの映像フィードを処理するディープラーニングモデルを構築しています。これらのモデルはリアルタイムで物体検出を実行し、車線、標識、歩行者を識別することで、より安全な走行を実現します。
-
医療診断: 研究者はこのフレームワークを使用して、高度なヘルスケアアプリケーションを開発しています。たとえば、正確な画像セグメンテーションによって腫瘍の検出を支援するために、MRIスキャンやX線画像を解析するシステムを動かしています。
関連ツールとの比較#
その役割をよりよく理解するには、AIスタックで一般的に使用される他のツールとPyTorchを区別すると分かりやすくなります。
- TensorFlowとの比較: Googleによって開発されたTensorFlowは、歴史的に静的計算グラフに依存していたため、デバッグは難しくなる一方で、デプロイは最適化されていました。両フレームワークの機能は近づいていますが、PyTorchは直感的なインターフェースを備えているため、迅速なプロトタイピングや研究では好まれることが多いです。
- OpenCVとの比較: OpenCVは、ニューラルネットワークの学習ではなく、リサイズ、フィルタリング、色変換などの従来型の画像処理機能に重点を置いたライブラリです。一般的なワークフローでは、開発者は画像を解析用のPyTorchモデルに入力する前に、OpenCVを使用してデータ前処理を行います。
Ultralyticsとの統合#
最先端のYOLO26や広く使用されているYOLO11を含むUltralyticsのモデルファミリー全体は、PyTorch上にネイティブに構築されています。この基盤により、ユーザーはフレームワークの速度、安定性、充実したコミュニティサポートの恩恵を受けられます。カスタムのトレーニングデータを使用した転移学習でも、エッジデバイス向けのモデルのエクスポートでも、基盤となるアーキテクチャはPyTorchのテンソルと勾配に依存しています。
近日提供予定の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)








