TrainingProgressFunction

TrainingProgressFunction

NetTrainのオプションで,訓練中に周期的に実行する関数を指定する.

詳細

  • デフォルトであるTrainingProgressFunctionNoneでは,関数は何も実行されない.
  • TrainingProgressFunctionf と設定すると f[assoc]が各訓練ラウンド後に評価されるようになる.assoc は以下のキーを持つ連想である.
  • "AbsoluteBatch"その時点までに処理されたバッチ総数
    "Batch"そのラウンド内の現行バッチ番号
    "BatchData"ネットの訓練に使われた最近のデータのバッチ
    "BatchesPerRound"1つのラウンドに含まれるバッチ数
    "BatchesPerSecond"現行訓練率(バッチ/秒)
    "BatchIndices"最も最近のバッチについてのもとのデータ集合の指標のリスト
    "BatchLoss"最近のバッチの平均損失
    "BatchLossList"その時点までの各バッチ更新についてのバッチ損失のリスト
    "BatchMeasurements"最後のバッチの更新後の訓練測度の連想
    "BatchMeasurementsLists"その時点までの各バッチ更新についての訓練測度連想のリスト
    "BatchSize"1つのバッチに含まれる入力数
    "BestValidationRound"現行の最良ネットに対応する訓練ラウンド
    "CheckpointingFiles"その時点までに生成されたチェックポインティングファイルのリスト
    "Event"発生した最後のイベント
    "ExampleLosses"訓練中に各例によって取られた損失
    "ExamplesPerSecond"1秒あたりの入力例の訓練率
    "ExamplesProcessed"その時点までに処理された例の総数
    "Gradients"ネット内の重みの位置と現行の勾配の連想
    "GradientsRMS"重み勾配の二乗平均平方根
    "GradientsVector"すべての重み勾配の現行値を平坦化して形成されたベクトル
    "InitialLearningRate"訓練開始時の学習率
    "LearningRate"現在の学習率
    "MeanBatchesPerSecond"バッチの平均処理数(単位:秒)
    "MeanExamplesPerSecond"1秒間に処理される入力例の平均数
    "Net"現在部分的に訓練されているネットワーク
    "OptimizationMethod"使用された最適化メソッド名
    "ProgressFraction"0から1の間で表される進捗状況
    "Round"現行ラウンド数
    "RoundLoss"最近のラウンドの平均損失
    "RoundLossList"その時点までのラウンドの損失のリスト
    "RoundMeasurements"最終訓練ラウンド後の訓練集合についての訓練測度の連想
    "RoundMeasurementsLists"その時点までの各ラウンドについての訓練測度の連想のリスト
    "TargetDevice"訓練に使用されたデバイス
    "TimeElapsed"訓練開始からの総時間(単位:秒)
    "TimeRemaining"推定残り時間(単位:秒)
    "TotalBatches"訓練バッチの最大数
    "TotalRounds"訓練ラウンドの最大数
    "ValidationLoss"最近の確認損失
    "ValidationLossList"その時点までの各確認測度値の確認損失のリスト
    "ValidationMeasurements"確認集合についての訓練測度の連想
    "ValidationMeasurementsLists"その時点までの各確認測度についての訓練測度の連想のリスト
    "Weights"すべての重みの現行地の連想
    "WeightsRMS"重みの二乗平均平方根
    "WeightsLearningRateMultipliers"各重みに使われる学習率乗数の連想
    "WeightsVector"すべての重みの現行値を平坦化して形成されたベクトル
  • キーの"ValidationLoss""LowestValidationLoss"等は,オプションValidationSetNetTrainに対して指定されている場合にのみ適用できる.
  • TrainingProgressFunction{f,"Interval"Quantity[n,"unit"]}の設定は,f を適用する区間を指定する.使用可能な"unit"の形式には以下がある.
  • "Rounds"ネットの訓練ラウンド
    "Batches"訓練データバッチ
    "Seconds","Minutes","Hours"絶対時間
  • サブオプション{f,,"MinimumInterval"n}fn 秒より短い時間間隔で適用しないように指定する.指定されていない場合は,f の適用頻度に制限はない.
  • TrainingProgressFunction{spec1,spec2,}と設定して複数の関数(区間は異なっていてもよい)が評価されるように指定する.

例題

  (1)

TrainingProgressFunctionを使って訓練の状態に関する情報をファイルに加える.ログファイルを作る:

ログファイルにバッチ数と損失を加える関数を定義する:

訓練データを定義し,訓練を行う:

ログファイルを読む:

保存されたデータをDatasetに入れる:

価値についての損失を時間とともにプロットする:

Wolfram Research (2017), TrainingProgressFunction, Wolfram言語関数, https://reference.wolfram.com/language/ref/TrainingProgressFunction.html (2020年に更新).

テキスト

Wolfram Research (2017), TrainingProgressFunction, Wolfram言語関数, https://reference.wolfram.com/language/ref/TrainingProgressFunction.html (2020年に更新).

CMS

Wolfram Language. 2017. "TrainingProgressFunction." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/TrainingProgressFunction.html.

APA

Wolfram Language. (2017). TrainingProgressFunction. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TrainingProgressFunction.html

BibTeX

@misc{reference.wolfram_2024_trainingprogressfunction, author="Wolfram Research", title="{TrainingProgressFunction}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/TrainingProgressFunction.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_trainingprogressfunction, organization={Wolfram Research}, title={TrainingProgressFunction}, year={2020}, url={https://reference.wolfram.com/language/ref/TrainingProgressFunction.html}, note=[Accessed: 22-November-2024 ]}