検索
ホームページテクノロジー周辺機器AIGMAC と GFLOPS の計算の簡単な分析

GMAC と GFLOPS の計算の簡単な分析

May 26, 2023 am 08:59 AM
ディープラーニング

GMAC は「Giga Multiply-Add Operations per Second」の略で、深層学習モデルの計算効率を測定するために使用される指標です。このメトリクスは、1 秒あたり 10 億回の乗算および加算演算というモデルの計算速度を表します。

GMAC と GFLOPS の計算の簡単な分析

積和演算 (MAC) は、行列の乗算、畳み込み、深層学習で一般的に使用されるその他のテンソル演算など、多くの数学的計算の基礎です。各 MAC 演算には、2 つの数値を乗算し、その結果をアキュムレータに加算することが含まれます。

GMAC インジケーターは、次の式を使用して計算できます。

<code>GMAC =(乘法累加运算次数)/(10⁹)</code>

乗加算演算の数は、通常、ネットワーク アーキテクチャとモデル パラメーターの次元 (重みなど) を分析することによって決定されます。そして偏見。

GMAC メトリクスを使用すると、研究者や実務者は、モデルの選択、ハードウェア要件、効率的かつ効果的な深層学習計算のための最適化戦略について情報に基づいた意思決定を行うことができます。

GMAC と GFLOPS の計算の簡単な分析

#GFLOPS は、コンピューター システムまたは特定の操作のコンピューティング パフォーマンスの尺度であり、1 秒あたり 10 億回の浮動小数点演算を表します。これは、1 秒あたりの浮動小数点演算の数であり、10 億 (ギガ) 単位で表されます。

浮動小数点演算とは、IEEE 754 浮動小数点形式で表現された実数に対して算術計算を実行することを指します。これらの演算には通常、加算、減算、乗算、除算、およびその他の数学演算が含まれます。

GFLOPS は、ハイ パフォーマンス コンピューティング (HPC) やベンチマーク、特に科学シミュレーション、データ分析、深層学習などの大量の計算タスクを必要とする分野でよく使用されます。

GFLOPS の式は次のように計算します。

<code>GFLOPS =(浮点运算次数)/(以秒为单位的运行时间)/ (10⁹)</code>
GFLOPS は、さまざまなコンピューター システム、プロセッサー、または特定の操作の計算能力の効果的な尺度です。浮動小数点計算を実行するハードウェアまたはアルゴリズムの速度と効率を評価するのに役立ちます。 GFLOPS は理論上のピーク パフォーマンスの尺度であり、メモリ アクセス、並列化、その他のシステム制限などの要素が考慮されていないため、現実のシナリオで達成される実際のパフォーマンスを反映していない可能性があります。

GMAC と GFLOPS の関係

<code>1 GFLOP = 2 GMAC</code>
これら 2 つの指標を計算したい場合、コードを手動で記述するのはさらに面倒ですが、Python にはすでに既製のライブラリが用意されています。使用方法:

ptflops ライブラリは GMAC と GFLOP を計算できます

<code>pip install ptflops</code>
使い方も非常に簡単です:

<code>import torchvision.models as models import torch from ptflops import get_model_complexity_info import re  #Model thats already available net = models.densenet161() macs, params = get_model_complexity_info(net, (3, 224, 224), as_strings=True, print_per_layer_stat=True, verbose=True) # Extract the numerical value flops = eval(re.findall(r'([\d.]+)', macs)[0])*2 # Extract the unit flops_unit = re.findall(r'([A-Za-z]+)', macs)[0][0]  print('Computational complexity: {:</code>
結果は次のとおりです:

<code>Computational complexity: 7.82 GMac Computational complexity: 15.64 GFlops Number of parameters: 28.68 M</code>
モデルをカスタマイズして見てみましょう 結果は正しいですか?

<code>import os import torch from torch import nn  class NeuralNetwork(nn.Module): def __init__(self): super().__init__() self.flatten = nn.Flatten() self.linear_relu_stack = nn.Sequential( nn.Linear(28*28, 512), nn.ReLU(), nn.Linear(512, 512), nn.ReLU(), nn.Linear(512, 10),)  def forward(self, x): x = self.flatten(x) logits = self.linear_relu_stack(x) return logits  custom_net = NeuralNetwork()  macs, params = get_model_complexity_info(custom_net, (28, 28), as_strings=True, print_per_layer_stat=True, verbose=True) # Extract the numerical value flops = eval(re.findall(r'([\d.]+)', macs)[0])*2  # Extract the unit flops_unit = re.findall(r'([A-Za-z]+)', macs)[0][0] print('Computational complexity: {:</code>
結果は次のとおりです:

<code>Computational complexity: 670.73 KMac Computational complexity: 1341.46 KFlops Number of parameters: 669.71 k</code>
デモの便宜上、完全に接続された層のコードのみを記述しますGMAC を手動で計算します。モデルの重みパラメーターを反復処理し、乗算および加算演算の回数の形状を計算することは重みパラメーターに依存します。これが GMAC を計算するための鍵となります。 GMAC で必要な全結合層の重みを計算する式は、2 x (入力次元 x 出力次元) です。合計の GMAC 値は、モデルの構造に基づいて、各線形層の重みパラメーターの形状を乗算およ​​び累積することによって取得されます。

<code>import torch import torch.nn as nn  def compute_gmac(model): gmac_count = 0 for param in model.parameters(): shape = param.shape if len(shape) == 2:# 全连接层的权重 gmac_count += shape[0] * shape[1] * 2 gmac_count = gmac_count / 1e9# 转换为十亿为单位 return gmac_count</code>
上記のモデルによると、GMAC の計算結果は次のようになります。

<code>0.66972288</code>
GMAC の結果は 10 億単位なので、次を使用して計算した結果とあまり変わりません。上記のクラスライブラリ。最後に、畳み込みの GMAC の計算は少し複雑です。式は ((入力チャネル x 畳み込みカーネルの高さ x 畳み込みカーネルの幅) x 出力チャネル) x 2 です。ここでは単純なコードを示しますが、完全に正しいとは限りません。 ##りー

以上がGMAC と GFLOPS の計算の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は51CTO.COMで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Huggingface smollmであなたの個人的なAIアシスタントを構築する方法Huggingface smollmであなたの個人的なAIアシスタントを構築する方法Apr 18, 2025 am 11:52 AM

オンデバイスAIの力を活用:個人的なチャットボットCLIの構築 最近では、個人的なAIアシスタントの概念はサイエンスフィクションのように見えました。 ハイテク愛好家のアレックスを想像して、賢くて地元のAI仲間を夢見ています。

メンタルヘルスのためのAIは、スタンフォード大学でのエキサイティングな新しいイニシアチブによって注意深く分析されますメンタルヘルスのためのAIは、スタンフォード大学でのエキサイティングな新しいイニシアチブによって注意深く分析されますApr 18, 2025 am 11:49 AM

AI4MHの最初の発売は2025年4月15日に開催され、有名な精神科医および神経科学者であるLuminary Dr. Tom Insel博士がキックオフスピーカーを務めました。 Insel博士は、メンタルヘルス研究とテクノでの彼の傑出した仕事で有名です

2025年のWNBAドラフトクラスは、成長し、オンラインハラスメントの成長と戦いに参加します2025年のWNBAドラフトクラスは、成長し、オンラインハラスメントの成長と戦いに参加しますApr 18, 2025 am 11:44 AM

「私たちは、WNBAが、すべての人、プレイヤー、ファン、企業パートナーが安全であり、大切になり、力を与えられたスペースであることを保証したいと考えています」とエンゲルバートは述べ、女性のスポーツの最も有害な課題の1つになったものに取り組んでいます。 アノ

Pythonビルトインデータ構造の包括的なガイド-AnalyticsVidhyaPythonビルトインデータ構造の包括的なガイド-AnalyticsVidhyaApr 18, 2025 am 11:43 AM

導入 Pythonは、特にデータサイエンスと生成AIにおいて、プログラミング言語として優れています。 大規模なデータセットを処理する場合、効率的なデータ操作(ストレージ、管理、アクセス)が重要です。 以前に数字とstをカバーしてきました

Openaiの新しいモデルからの代替案からの第一印象Openaiの新しいモデルからの代替案からの第一印象Apr 18, 2025 am 11:41 AM

潜る前に、重要な注意事項:AIパフォーマンスは非決定論的であり、非常にユースケース固有です。簡単に言えば、走行距離は異なる場合があります。この(または他の)記事を最終的な単語として撮影しないでください。これらのモデルを独自のシナリオでテストしないでください

AIポートフォリオ| AIキャリアのためにポートフォリオを構築する方法は?AIポートフォリオ| AIキャリアのためにポートフォリオを構築する方法は?Apr 18, 2025 am 11:40 AM

傑出したAI/MLポートフォリオの構築:初心者と専門家向けガイド 説得力のあるポートフォリオを作成することは、人工知能(AI)と機械学習(ML)で役割を確保するために重要です。 このガイドは、ポートフォリオを構築するためのアドバイスを提供します

エージェントAIがセキュリティ運用にとって何を意味するのかエージェントAIがセキュリティ運用にとって何を意味するのかApr 18, 2025 am 11:36 AM

結果?燃え尽き症候群、非効率性、および検出とアクションの間の隙間が拡大します。これは、サイバーセキュリティで働く人にとってはショックとしてはありません。 しかし、エージェントAIの約束は潜在的なターニングポイントとして浮上しています。この新しいクラス

Google対Openai:学生のためのAIの戦いGoogle対Openai:学生のためのAIの戦いApr 18, 2025 am 11:31 AM

即時の影響と長期パートナーシップ? 2週間前、Openaiは強力な短期オファーで前進し、2025年5月末までに米国およびカナダの大学生にChatGpt Plusに無料でアクセスできます。このツールにはGPT ‑ 4o、Aが含まれます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター