機械学習におけるFLOPsを理解しましょう!モデルの複雑さをどのように測定し、効率に影響を与え、ハードウェアの選択を支援するかを学びます。
FLOPs(浮動小数点演算)は、機械学習モデルの計算複雑性を定量化するための基本的な指標である。 機械学習モデル、特にディープラーニングの領域では ディープラーニングの分野では特にそうです。この指標は、加算、減算、乗算、除算など、10進数を含む数学演算の総数を計算します、 この測定は、10進数を含む加算、減算、乗算、除算など、ニューラルネットワークの1回のフォワードパスを完了するのに必要な数学演算の総数を計算します。 ニューラル・ネットワークのFLOP数を決定することで、エンジニアはニューラルネットワークに必要な処理能力を見積もることができる、 エンジニアはモデルの実行に必要な処理能力を見積もることができるため、ハードウェアの選択と最適化に不可欠な統計データとなります。 の選択と最適化に不可欠な統計となります。ファイル・サイズやパラメータ・カウントとは異なりますが、FLOPsはモデルがどの程度「重い」かを示す理論的なベースラインを提供します。 のようなプロセッサーでのエネルギー消費量や実行速度に直接関連します。 CPUのような CPUまたは GPU.
モデルの計算コストを理解することは、効率的なAI開発に不可欠である。 不可欠である。FLOPs カウントが低いほど、予測結果の生成に必要な計算回数が少ないことを示します。 リソースに制約のある環境では重要です。
FLOPsの実用的な影響は、モデルがレイテンシ と消費電力が制限されます。
組み込みのプロファイリングツールを使用して、Ultralytics モデルの計算複雑度を判断できます。次の 次のスニペットは、モデルをロードし、特定の入力サイズに必要なFLOPを計算します。
from ultralytics import YOLO
# Load the YOLO11 nano model
model = YOLO("yolo11n.pt")
# Profile the model to see FLOPs, parameters, and speed
# The 'imgsz' argument defines the input resolution (e.g., 640x640)
model.profile(imgsz=640)
このメソッドは、パラメータ数、勾配、GFLOPs(ギガFLOPs、数十億回の演算)を含む要約表を出力します。 億回の演算)を含むサマリーテーブルを出力します。 展開制約に適合するかどうかを評価するのに役立ちます。
FLOPsは、モデル・サイズや速度を表す他のメトリクスと区別することが重要である。 と区別することが重要です。
FLOPは有用なベースラインを提供するが、モデル性能のすべてを語るものではない。FLOPは メモリ・アクセス・コスト(データをプロセッサに移動するためのエネルギーと時間)は考慮されていない。 を考慮していない。さらに 活性化関数(ReLUなど)や正規化層のような演算は、FLOPが低い。 や正規化レイヤーのような演算はFLOP数が少ないが、それでも時間を消費する。そのため、FLOPsは以下のように併用されるべきである。 のようなターゲットハードウェアでの実世界ベンチマークと組み合わせて使用する必要があります。 性能の正確な把握には 性能を正確に把握する必要があります。


