模型参数¶
用户使用 Monolith 时需要关注的参数大致分为 2 类。
1. 训练任务参数¶
这部分参数一般伴随「训练任务」设置。
1.1 RunConfig¶
estimator.RunConfig
在 model.py 的 main 函数中。
def main(_):
  est_config = RunConfig(dense_only_save_checkpoints_secs=600,
                         enable_fused_layout=True)
  model = Model()
  estimator = Estimator(model, est_config)
  estimator.train()
if __name__ == "__main__":
  tf.compat.v1.disable_eager_execution()
  tf.compat.v1.logging.set_verbosity(tf.compat.v1.logging.INFO)
  app.run(main)
这部分参数拟逐步收敛,后续不再向用户暴露,会在前端提交页面以用户交互的方式指定。
1.2 前端提交页面参数¶
任务类型选择:决定任务类型是训练还是 eval
Checkpoint 加载:决定该任务从哪个 checkpoint load 参数以训练或者 eval
Dense 参数重新初始化:决定该任务训练时是否将 dense 参数重新初始化。一般模型迭代中,用户改了 dense 结构导致无法 load 之前的参数,但又想 load sparse 参数以加快训练收敛时会使用此功能。
2. 自定义模型代码内参数¶
这部分参数一般伴随「模型」设置,出现在自定义模型的 __init__ 方法中。
class MyModel(MonolithModel):
  def __init__(self, params=None):
    super(MyModel, self).__init__(params)
    # data pipline(自定义模型 input_fn 中使用)
    self.batch_size = 256    # 批大小,无默认值
    self.shuffle_size = 100  # shuffle buffer size
    # training(自定义模型 model_fn 中使用)
    self.default_occurrence_threshold = 2     # 特征过滤阈值
    self.sample_bias = True                   # 是否校正样本采样偏差
    # training(Monolith 框架内部生效)
    self.set_train_clip_norm(1000.0)          # Clip by global norm 阈值,默认 250.0
    self.set_train_dense_weight_decay(0.0001) # Dense 权值衰减,默认 0.001
可细分为两类
用户自己定义,自己使用的参数(比如
self.shuffle_size = 100)框架内部定义,用户设置的参数(比如
self.set_train_clip_norm(1000.0))