TrainingProgressFunction

TrainingProgressFunction

NetTrain 的一个选项,指定训练时周期性运行的函数.

更多信息

  • 设为缺省值 TrainingProgressFunctionNone 时,不运行任何函数.
  • 设置 TrainingProgressFunctionf 指定每轮训练后执行 f[assoc] 计算,其中 assoc 是一个关联,其键为下列值:
  • "AbsoluteBatch"到目前为止处理了多少个批次
    "Batch"当前批次在本轮训练中的批号
    "BatchData"最新的用于训练网络一批数据
    "BatchesPerRound"一轮训练中包含的批数
    "BatchesPerSecond"当前的训练率,单位为批每秒
    "BatchIndices"最新批次的原始数据集中的索引列表
    "BatchLoss"最近批次的平均损失
    "BatchLossList"目前为止所见的批次损失列表
    "BatchMeasurements"在上批更新后,培训度量的关联
    "BatchMeasurementsLists"到目前为止每个批次更新的培训度量关联列表
    "BatchSize"训练中使用批次的大小
    "BestValidationRound"对因于当前的最佳网络的训练回合
    "CheckpointingFiles"目前为止所生成的检查点文件列表
    "Event"最后发生的事件
    "ExampleLosses"训练期每个范例接受的损失
    "ExamplesPerSecond"输入范例中每秒的训练率
    "ExamplesProcessed"目前为止处理的范例总数
    "Gradients"网络内加权位置与当前梯度间的关系
    "GradientsRMS"权重梯度的均方根
    "GradientsVector"通过将所有权重梯度的当前值拼合在一起形成的向量
    "InitialLearningRate"开始培训的学习率
    "LearningRate"当前学习率
    "MeanBatchesPerSecond"每秒处理的平均批次
    "MeanExamplesPerSecond"每秒处理的输入示例的平均数量
    "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" 等仅在选项 ValidationSet 被指定为 NetTrain 的情况下适用.
  • 设置 TrainingProgressFunction{f,"Interval"Quantity[n,"unit"]} 指定应用 f 的区间. "unit" 的可能形式包括:
  • "Rounds"网络训练轮数
    "Batches"训练数据批次
    "Seconds","Minutes","Hours"绝对时间
  • 子选项 {f,,"MinimumInterval"n} 指定 f 不应该频繁执行多于 n 秒每次,如何应用频率 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 语言. 2017. "TrainingProgressFunction." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2020. https://reference.wolfram.com/language/ref/TrainingProgressFunction.html.

APA

Wolfram 语言. (2017). TrainingProgressFunction. Wolfram 语言与系统参考资料中心. 追溯自 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 ]}