MCPcopy Create free account
hub / github.com/Turing-Project/WriteGPT / model_fn_builder

Function model_fn_builder

LanguageNetwork/GPT2/train/modeling.py:558–683  ·  view source on GitHub ↗

Returns `model_fn` closure for TPUEstimator.

(config: GroverConfig, init_checkpoint, learning_rate,
                     num_train_steps, num_warmup_steps, use_tpu)

Source from the content-addressed store, hash-verified

556
557
558def model_fn_builder(config: GroverConfig, init_checkpoint, learning_rate,
559 num_train_steps, num_warmup_steps, use_tpu):
560 """Returns `model_fn` closure for TPUEstimator."""
561
562 def model_fn(features, labels, mode, params): # pylint: disable=unused-argument
563 """The `model_fn` for TPUEstimator."""
564
565 tf.logging.info("*** Features ***")
566 for name in sorted(features.keys()):
567 tf.logging.info(" name = %s, shape = %s" % (name, features[name].shape))
568
569 input_ids = features["input_ids"]
570
571 is_training = (mode == tf.estimator.ModeKeys.TRAIN)
572
573 model = GroverModel(
574 config=config,
575 is_training=is_training,
576 input_ids=input_ids,
577 pad_token_id=config.pad_token_id,
578 chop_off_last_token=True,
579 )
580
581 total_loss = model.lm_loss()
582 print(model.logits_flat)
583 print(total_loss)
584
585 if is_training:
586 train_op, train_metrics = create_optimizer(
587 total_loss, learning_rate, num_train_steps, num_warmup_steps, use_tpu)
588 tvars = tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES)
589 else:
590 train_op = None
591 train_metrics = {}
592 tvars = tf.trainable_variables()
593 params_sum = np.sum([np.prod(v.get_shape().as_list()) for v in tf.trainable_variables()])
594 tf.logging.info("**** Trainable params_sum ****")
595 tf.logging.info(params_sum)
596 initialized_variable_names = {}
597 scaffold_fn = None
598 if init_checkpoint:
599 (assignment_map, initialized_variable_names
600 ) = get_assignment_map_from_checkpoint(tvars, init_checkpoint)
601 if use_tpu:
602 def tpu_scaffold():
603 tf.train.init_from_checkpoint(init_checkpoint, assignment_map)
604 return tf.train.Scaffold()
605
606 scaffold_fn = tpu_scaffold
607 else:
608 tf.train.init_from_checkpoint(init_checkpoint, assignment_map)
609
610 tf.logging.info("**** Trainable Variables ****")
611 for var in tvars:
612 init_string = ""
613 if var.name in initialized_variable_names:
614 init_string = ", *INIT_FROM_CKPT*"
615 tf.logging.info(" name = %s, shape = %s%s", var.name, var.shape,

Callers 2

mainFunction · 0.90
mainFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected