Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

データローダーをプロファイリングする

フォーカスモード
データローダーをプロファイリングする - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

PyTorch では、SingleProcessingDataLoaderIterMultiProcessingDataLoaderIter などのデータローダーのイテレーターは、データセット全体ですべての反復の開始時に開始されます。初期化フェーズ中、PyTorch は設定されたワーカー数に応じてワーカープロセスをオンにし、データと pin_memory スレッドを取得するためのデータキューを確立します。

PyTorch データローダープロファイリング分析ツールを使うには、次の PT_dataloader_analysis クラスをインポートします。

from smdebug.profiler.analysis.utils.pytorch_dataloader_analysis import PT_dataloader_analysis

Pandas データ解析ツールを使用してプロファイリングデータにアクセスする」セクションの Pandas フレームデータオブジェクトとして取得したプロファイリングデータを渡します。

pt_analysis = PT_dataloader_analysis(pf)

pt_analysis オブジェクトには、次の関数を使用できます。

SMDebug S3SystemMetricsReader クラスは、s3_trial_path パラメータに指定された S3 バケットからシステムメトリクスを読み取ります。

  • pt_analysis.analyze_dataloaderIter_initialization()

    分析は、これらの初期化の期間の中央値と最大値を出力します。外れ値がある場合 (つまり、期間が 2 * 中央値より大きい場合)、関数はこれらの期間の開始時刻と終了時刻を出力します。これらを使って、それらの時間間隔の間のシステムメトリクスを検査できます。

    次のリストは、このクラスメソッドからどのような分析が得られるかを示しています。

    • 初期化されたデータローダーイテレーターのタイプ。

    • イテレーターあたりのワーカー数。

    • イテレーターが pin_memory 有りで初期化されたか、無しで初期化されたかの検査。

    • トレーニング中にイテレーターが初期化された回数。

  • pt_analysis.analyze_dataloaderWorkers()

    次のリストは、このクラスメソッドからどのような分析が得られるかを示しています。

    • トレーニング全体でスピンオフされたワーカープロセスの数。

    • ワーカープロセスの期間の中央値と最大値。

    • 外れ値であるワーカープロセスの開始時刻と終了時刻。

  • pt_analysis.analyze_dataloader_getnext()

    次のリストは、このクラスメソッドからどのような分析が得られるかを示しています。

    • トレーニング中に実行された GetNext 呼び出しの数。

    • GetNext 呼び出しの期間の中央値と最大値 (マイクロ秒)。

    • 外れ値である GetNext 呼び出しの期間の開始時刻、終了時刻、期間、ワーカー ID。

  • pt_analysis.analyze_batchtime(start_timestamp, end_timestamp, select_events=[".*"], select_dimensions=[".*"])

    デバッガーは、すべての GetNext 呼び出しの開始時刻と終了時刻を収集します。トレーニングスクリプトが費やした時間を 1 つのバッチのデータで確認できます。指定した時間枠内で、トレーニングに直接貢献していない呼び出しを特定できます。これらの呼び出しは、精度の計算、デバッグやログ目的の損失の追加、デバッグ情報の出力などのオペレーションによるものである可能性があります。このようなオペレーションは、コンピューティング集約型であったり、時間がかかったりすることがあります。Python プロファイラー、システムメトリクス、フレームワークメトリクスを関連付けることで、このようなオペレーションを特定できます。

    次のリストは、このクラスメソッドからどのような分析が得られるかを示しています。

    • 各データバッチに費やされた時間 BatchTime_in_seconds を、現在の GetNext 呼び出しと後続の GetNext 呼び出しの開始時刻の差を求めることでプロファイリングします。

    • BatchTime_in_seconds の外れ値と、その外れ値の開始時刻と終了時刻を見つけます。

    • それらの BatchTime_in_seconds タイムスタンプ間のシステムおよびフレームワークのメトリクスを取得します。これにより、どこに時間が費やされたかがわかります。

  • pt_analysis.plot_the_window()

    開始タイムスタンプと終了タイムスタンプの間のタイムライングラフをプロットします。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.