Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

TensorFlow

TensorFlowはGoogleのオープンソースMLフレームワークで、サーバー、ブラウザー、スマートフォン上でモデルを学習、デプロイできます。高水準APIとしてKerasを備えています。

TensorFlowは、GoogleがApache 2.0ライセンスの下で2015年11月に公開したオープンソースの機械学習(ML)フレームワークです。Google Brainチームが社内の研究や製品向けに開発しました。深層学習などの数値計算プログラムでは、テンソル(多次元の数値配列)に対する演算として計算を表現します。TensorFlowは演算を自動微分し、最適化されたグラフにコンパイルして、CPU、GPU、TPUで実行します。そのエコシステムは、学習からモデルデプロイまでのMLOps全体をカバーします。モデル定義用のKeras、実験追跡用のTensorBoard、本番環境でのモデルサービング用のTensorFlow Serving、ブラウザー向けのTensorFlow.js、そしてエッジAIを実行するスマートフォンや組み込みデバイス向けの、旧称TensorFlow LiteであるLiteRTが含まれます。2026年3月のTensorFlow 2.21で、Googleは今後のTensorFlow開発をセキュリティとバグ修正、依存関係の更新、コミュニティからの貢献に注力すると説明し、新しい生成AIプロジェクトにはKeras 3、JAX、またはPyTorchを案内しました。

TensorFlowの仕組み#

TensorFlow 1.xでは、ユーザーはまず静的計算グラフを構築し、その後セッション内で実行していました。2019年にリリースされたTensorFlow 2.0では、即時実行がデフォルトとなり、演算は通常のPythonコードと同様に直ちに実行される一方、グラフは最適化手段として引き続き利用されます。 tf.functionでデコレートされた関数は、入力シグネチャごとに一度トレースされてグラフに変換され、そのグラフはTensorFlowによる最適化やXLAコンパイラでのコンパイルが可能で、Pythonを使わずにデプロイできるようSavedModel形式で保存できます。tf.GradientTapeはフォワードパスの演算を記録し、TensorFlowが誤差逆伝播と勾配降下法の勾配を計算できるようにします。このコードはその両方を行います。

import tensorflow as tf

w = tf.Variable([[1.0], [-2.0]])
x = tf.constant([[3.0, 4.0]])


@tf.function  # trace the Python function into a TensorFlow graph on the first call
def loss_fn(x):
    print("Tracing")  # Python code runs only while tracing, not on every call
    return tf.reduce_sum((x @ w) ** 2)


# Record operations on a tape to compute the gradient of the loss with respect to w
with tf.GradientTape() as tape:
    loss = loss_fn(x)
gradient = tape.gradient(loss, w)

loss_fn(x)  # same input shape and dtype: reuses the traced graph without printing
print(f"loss {loss.numpy()}, gradient {gradient.numpy().ravel()}")

Tracingを一度出力し、続けてloss 25.0, gradient [-30. -40.]を出力します。2回目の呼び出しではPython本体を実行せず、キャッシュされたグラフを実行しています。また、w = (1, -2)における(3w₁ + 4w₂)²の勾配は2 × (-5) × (3, 4)です。分散学習では、tf.distributeの戦略によって、複数のGPU、TPUスライス、またはマシンにモデルを複製します。

TensorFlowのエコシステム#

  • Keras: レイヤーとモデルの定義、ならびにfitを用いた学習のための高レベルAPIです。TensorFlow 2.16以降、TensorFlowをインストールするとKeras 3もインストールされます。Keras 3はJAXやPyTorchでも動作します。
  • TensorBoard:トレーニング中の損失曲線、指標、ヒストグラム、モデルグラフを表示するダッシュボードです。Ultralytics YOLOのトレーニング実行を含む、ほかのフレームワークが出力したログも読み取ります。TensorFlow 2.21では依存関係としてインストールされなくなりました。
  • TensorFlow Serving: SavedModelを読み込み、gRPCまたはREST経由で予測リクエストに応答するサービングシステムです。モデルを停止せずに入れ替えられるバージョン管理機能を備えています。
  • TFX: データ検証、学習、評価、承認済みモデルのサービング環境へのデプロイを連結する、本番機械学習向けのパイプラインフレームワークです。
  • TensorFlow.js: ブラウザーとNode.jsでモデルの実行および学習を行うため、データをサーバーに送信せずにユーザーのデバイス上で推論できます。
  • LiteRT: Android、iOS、組み込みLinux、マイクロコントローラー向けのGoogleのオンデバイスランタイムで、2024年9月にTensorFlow Liteから名称変更されました。TensorFlow、PyTorch、またはJAXから変換した.tfliteモデルを実行し、モバイルGPUやNPUによるアクセラレーションに対応します。

TensorFlowとPyTorch、JAXの比較#

  • PyTorchとTensorFlowの比較: PyTorchは当初から即時実行を基本としており、torch.compileによってグラフコンパイルにも対応しています。新しい研究コードやオープンウェイトモデルではデフォルトのフレームワークとなっています。一方、TensorFlowはサーバー、ブラウザー、モバイルデバイス向けの成熟したデプロイスタックが強みです。
  • JAX: 合成可能な変換を備えたGoogleのNumPyスタイルのライブラリです。微分にはgrad、XLAコンパイルにはjit、ベクトル化にはvmapを使います。GoogleはJAXを使ってGeminiモデルを学習しています。
  • Keras: 独立したエンジンではなく、高レベルAPIです。Keras 3のコードはTensorFlow、JAX、PyTorchのいずれでも実行できるため、モデル定義によってプロジェクトが特定のフレームワークに限定されることはありません。

TensorFlowランタイム向けのモデル変換#

他のフレームワークで学習したモデルをTensorFlowのデプロイツールで使うには、コンバーターを利用します。onnx2tfはONNXグラフをTensorFlow SavedModelとして再構築し、jax2tfはJAX関数をTensorFlow関数としてラップします。また、GoogleのLiteRT TorchコンバーターはPyTorchからLiteRTモデルを直接生成します。Ultralytics YOLOモデルはPyTorchで記述されており、そのエクスポートモードでは、YOLO26向けにこれらの経路を利用します。format="saved_model"はONNXをエクスポートし、onnx2tfでSavedModelに変換してTensorFlow Servingで利用します。format="edgetpu"はCoral Edge TPU向けのINT8モデルをコンパイルします。また、format="litert"はLiteRT Torchを使用するため、TensorFlowのインストールは不要です。次のコードはSavedModelをエクスポートします。

from ultralytics import YOLO

# Load the smallest YOLO26 detection model
model = YOLO("yolo26n.pt")

# Convert through ONNX to a TensorFlow SavedModel directory
path = model.export(format="saved_model")
print(f"SavedModel: {path}")

エクスポートによってyolo26n_saved_modelフォルダーが作成されます。このフォルダーはtf.saved_model.loadでPythonから読み込めるほか、Ultralytics YOLO自体でもYOLO("yolo26n_saved_model")を使って実行できます。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう