nuget server logo nuget api documents
↑

API Docs / SMRUCC.genomics.Analysis.HTS.P-NET / TrainConfig

TrainConfig

Full name SMRUCC.genomics.Analysis.HTS.P_NET.TrainConfig Assembly SMRUCC.genomics.Analysis.HTS.P-NET Members 14

P-NET 的训练超参数配置

00 Remarks

默认值均取自论文 Methods 部分的描述:Adam 优化器、初始学习率 0.001、 每 50 个 epoch 主动衰减学习率、mini-batch 训练、按训练集类别比例对损失加权。

01 Syntax

SMRUCC.genomics.Analysis.HTS.P_NET.TrainConfig

02 Methods

NameOverloadsSummary
GetLearningRate 1 计算指定 epoch(从 0 开始计数)时应当使用的学习率

03 Properties

NameOverloadsSummary
Epochs 1 训练迭代轮数
BatchSize 1 mini-batch 的批大小
LearningRate 1 初始学习率,论文取 0.001
LrDecayStep 1 学习率衰减的周期(单位:epoch),论文中每 50 个 epoch 衰减一次
LrDecayFactor 1 每一次衰减时学习率所乘的系数
Beta1 1 Adam 的一阶矩衰减率
Beta2 1 Adam 的二阶矩衰减率
Epsilon 1 Adam 的数值稳定性常数
UseClassWeights 1 是否按照训练集的类别比例对二元交叉熵损失加权
Seed 1 随机数种子,给出之后数据打乱的结果可复现
Verbose 1 是否在训练过程中逐轮打印训练日志
VerboseInterval 1 每隔多少个 epoch 打印一次日志
EarlyStopPatience 1 早停的耐心轮数,取 0 时表示不使用早停

04 Members

method GetLearningRate #
GetLearningRate(Int32)

计算指定 epoch(从 0 开始计数)时应当使用的学习率

Remarks

采用阶梯衰减:lr = lr0 · factor ^ floor(epoch / step)。 论文的经验发现"Adam + 自适应衰减"比单一学习率的 Adam 收敛更平滑、性能更好。

Parameters
NameTypeDescription
epochInt32

当前的 epoch 下标

Returns

衰减之后的学习率

property Epochs #
Epochs

训练迭代轮数

Returns

轮数,默认 150

property BatchSize #
BatchSize

mini-batch 的批大小

Returns

批大小,默认 32

property LearningRate #
LearningRate

初始学习率,论文取 0.001

Returns

学习率

property LrDecayStep #
LrDecayStep

学习率衰减的周期(单位:epoch),论文中每 50 个 epoch 衰减一次

Returns

衰减周期,取 0 时表示不做衰减

property LrDecayFactor #
LrDecayFactor

每一次衰减时学习率所乘的系数

Returns

衰减系数,默认 0.5

property Beta1 #
Beta1

Adam 的一阶矩衰减率

Returns

beta1,默认 0.9

property Beta2 #
Beta2

Adam 的二阶矩衰减率

Returns

beta2,默认 0.999

property Epsilon #
Epsilon

Adam 的数值稳定性常数

Returns

epsilon,默认 1e-8

property UseClassWeights #
UseClassWeights

是否按照训练集的类别比例对二元交叉熵损失加权

Remarks

论文的数据集存在类别不平衡(333 例 CRPC / 转移性对比 680 例原发性), 按类别比例加权可以抑制模型向多数类偏移。 权重取值为 N / (2 · N_class),与 sklearn 的 class_weight='balanced' 一致。

Returns

默认 True

property Seed #
Seed

随机数种子,给出之后数据打乱的结果可复现

Returns

种子值

property Verbose #
Verbose

是否在训练过程中逐轮打印训练日志

Returns

默认 True

property VerboseInterval #
VerboseInterval

每隔多少个 epoch 打印一次日志

Returns

打印间隔,默认 10

property EarlyStopPatience #
EarlyStopPatience

早停的耐心轮数,取 0 时表示不使用早停

Returns

默认 0(关闭)