def training_loop_hparams_from_scoped_overrides(scoped_overrides, trial_id):
  """Create HParams suitable for training loop from scoped HParams.

  Args:
    scoped_overrides: HParams, with keys all scoped by one of HP_SCOPES. These
      parameters are overrides for the base HParams created by
      create_loop_hparams.
    trial_id: str, trial identifier. This is used to register unique HParams
      names for the underlying model and ppo HParams.

  Returns:
    HParams suitable for passing to training_loop.
  """
  trial_hp_overrides = scoped_overrides.values()

  # Create loop, model, and ppo base HParams
  loop_hp = create_loop_hparams()
  model_hp_name = trial_hp_overrides.get(
      "loop.generative_model_params", loop_hp.generative_model_params)
  model_hp = registry.hparams(model_hp_name).parse(FLAGS.hparams)
  base_algo_params_name = trial_hp_overrides.get(
      "loop.base_algo_params", loop_hp.base_algo_params)
  algo_hp = registry.hparams(base_algo_params_name)

  # Merge them and then override with the scoped overrides
  combined_hp = merge_unscoped_hparams(
      zip(HP_SCOPES, [loop_hp, model_hp, algo_hp]))
  combined_hp.override_from_dict(trial_hp_overrides)

  # Split out the component hparams
  loop_hp, model_hp, algo_hp = (
      split_scoped_hparams(HP_SCOPES, combined_hp))

  # Dynamic register the model hp and set the new name in loop_hp
  model_hp_name = "model_hp_%s" % str(trial_id)
  dynamic_register_hparams(model_hp_name, model_hp)
  loop_hp.generative_model_params = model_hp_name

  # Dynamic register the algo hp and set the new name in loop_hp
  algo_hp_name = "algo_hp_%s" % str(trial_id)
  dynamic_register_hparams(algo_hp_name, algo_hp)
  loop_hp.base_algo_params = algo_hp_name

  return loop_hp
def training_loop_hparams_from_scoped_overrides ( scoped_overrides , trial_id ) : trial_hp_overrides = scoped_overrides . values ( ) loop_hp = create_loop_hparams ( ) model_hp_name = trial_hp_overrides . get ( "loop.generative_model_params" , loop_hp . generative_model_params ) model_hp = registry . hparams ( model_hp_name ) . parse ( FLAGS . hparams ) base_algo_params_name = trial_hp_overrides . get ( "loop.base_algo_params" , loop_hp . base_algo_params ) algo_hp = registry . hparams ( base_algo_params_name ) combined_hp = merge_unscoped_hparams ( zip ( HP_SCOPES , [ loop_hp , model_hp , algo_hp ] ) ) combined_hp . override_from_dict ( trial_hp_overrides ) loop_hp , model_hp , algo_hp = ( split_scoped_hparams ( HP_SCOPES , combined_hp ) ) model_hp_name = "model_hp_%s" % str ( trial_id ) dynamic_register_hparams ( model_hp_name , model_hp ) loop_hp . generative_model_params = model_hp_name algo_hp_name = "algo_hp_%s" % str ( trial_id ) dynamic_register_hparams ( algo_hp_name , algo_hp ) loop_hp . base_algo_params = algo_hp_name return loop_hp
Create HParams suitable for training loop from scoped HParams.

  Args:
    scoped_overrides: HParams, with keys all scoped by one of HP_SCOPES. These
      parameters are overrides for the base HParams created by
      create_loop_hparams.
    trial_id: str, trial identifier. This is used to register unique HParams
      names for the underlying model and ppo HParams.

  Returns:
    HParams suitable for passing to training_loop.