human
I wrote the below code

    def initializer():
        if (hparams.initializer == 'orthogonal'):
            return tf.orthogonal_initializer(gain=hparams.initializer_gain)
        elif (hparams.initializer == 'uniform'):
            max_val = (0.1 * hparams.initializer_gain)
            return tf.random_uniform_initializer((- max_val), max_val)
        elif (hparams.initializer == 'normal_unit_scaling'):
            return init_ops.variance_scaling_initializer(hparams.initializer_gain, mode='fan_avg', distribution='normal')
        elif (hparams.initializer == 'uniform_unit_scaling'):
            return init_ops.variance_scaling_initializer(hparams.initializer_gain, mode='fan_avg', distribution='uniform')
        else:
            raise ValueError(('Unrecognized    initializer:    %s' % hparams.initializer))
    def learning_rate_decay():
        'Inverse-decay    learning    rate    until    warmup_steps,    then    decay.'
        warmup_steps = tf.to_float((hparams.learning_rate_warmup_steps * FLAGS.worker_replicas))
        step = tf.to_float(tf.contrib.framework.get_global_step())
        if (hparams.learning_rate_decay_scheme == 'noam'):
            return ((5000.0 * (hparams.hidden_size ** (-0.5))) * tf.minimum(((step + 1) * (warmup_steps ** (-1.5))), ((step + 1) ** (-0.5))))
        elif (hparams.learning_rate_decay_scheme == 'exp100k'):
            return (0.94 ** (step // 100000))
        elif (hparams.learning_rate_decay_scheme == 'cosine'):
            cycle_steps = hparams.learning_rate_cosine_cycle_steps
            return (0.5 * (1 + tf.cos(((np.pi * (step % cycle_steps)) / cycle_steps))))
        inv_base = tf.exp((tf.log(0.01) / warmup_steps))
        inv_decay = (inv_base ** (warmup_steps - step))
        if (hparams.learning_rate_decay_scheme == 'sqrt'):
            decay = _sqrt_decay((step - warmup_steps))
        elif (hparams.learning_rate_decay_scheme == 'exp10k'):
            decay = _exp_decay_after((step - warmup_steps), 0.9995, ((FLAGS.train_steps - warmup_steps) - 10000))
        elif...

What's a good function header?
assistant
#Here's a good function header.

def build_model_fn(model, hparams):