@ -463,24 +463,26 @@ def train(dataset: tf.data.Dataset,
|
||||
}
|
||||
checkpointables.update({
|
||||
# get models
|
||||
'encoder': model.Encoder(zsize),
|
||||
'decoder': model.Decoder(channels),
|
||||
'z_discriminator': model.ZDiscriminator(),
|
||||
'x_discriminator': model.XDiscriminator(),
|
||||
'encoder': model.Encoder(zsize),
|
||||
'decoder': model.Decoder(channels),
|
||||
'z_discriminator': model.ZDiscriminator(),
|
||||
'x_discriminator': model.XDiscriminator(),
|
||||
# define optimizers
|
||||
'decoder_optimizer': tf.train.AdamOptimizer(learning_rate=checkpointables['learning_rate_var'], beta1=0.5, beta2=0.999),
|
||||
'enc_dec_optimizer': tf.train.AdamOptimizer(learning_rate=checkpointables['learning_rate_var'], beta1=0.5, beta2=0.999),
|
||||
'decoder_optimizer': tf.train.AdamOptimizer(learning_rate=checkpointables['learning_rate_var'],
|
||||
beta1=0.5, beta2=0.999),
|
||||
'enc_dec_optimizer': tf.train.AdamOptimizer(learning_rate=checkpointables['learning_rate_var'],
|
||||
beta1=0.5, beta2=0.999),
|
||||
'z_discriminator_optimizer': tf.train.AdamOptimizer(learning_rate=checkpointables['learning_rate_var'],
|
||||
beta1=0.5, beta2=0.999),
|
||||
'x_discriminator_optimizer': tf.train.AdamOptimizer(learning_rate=checkpointables['learning_rate_var'],
|
||||
beta1=0.5, beta2=0.999),
|
||||
# global step counter
|
||||
'epoch_var': K.variable(-1, dtype=tf.int64),
|
||||
'global_step': tf.train.get_or_create_global_step(),
|
||||
'global_step_decoder': K.variable(0, dtype=tf.int64),
|
||||
'global_step_enc_dec': K.variable(0, dtype=tf.int64),
|
||||
'global_step_xd': K.variable(0, dtype=tf.int64),
|
||||
'global_step_zd': K.variable(0, dtype=tf.int64),
|
||||
'epoch_var': K.variable(-1, dtype=tf.int64),
|
||||
'global_step': tf.train.get_or_create_global_step(),
|
||||
'global_step_decoder': K.variable(0, dtype=tf.int64),
|
||||
'global_step_enc_dec': K.variable(0, dtype=tf.int64),
|
||||
'global_step_xd': K.variable(0, dtype=tf.int64),
|
||||
'global_step_zd': K.variable(0, dtype=tf.int64),
|
||||
})
|
||||
|
||||
# checkpoint
|
||||
@ -539,7 +541,7 @@ def train(dataset: tf.data.Dataset,
|
||||
strike = False
|
||||
total_strike = False
|
||||
total_loss = outputs['encoder_loss'] + outputs['decoder_loss'] + outputs['enc_dec_loss'] + \
|
||||
outputs['xd_loss'] + outputs['zd_loss']
|
||||
outputs['xd_loss'] + outputs['zd_loss']
|
||||
if total_loss < total_lowest_loss:
|
||||
total_lowest_loss = total_loss
|
||||
elif total_loss > TOTAL_LOSS_GRACE_CAP:
|
||||
@ -606,7 +608,6 @@ def _train_one_epoch(epoch: int,
|
||||
global_step_decoder: tf.Variable,
|
||||
global_step_enc_dec: tf.Variable,
|
||||
epoch_var: tf.Variable) -> Dict[str, float]:
|
||||
|
||||
with summary_ops_v2.always_record_summaries():
|
||||
epoch_var.assign(epoch)
|
||||
epoch_start_time = time.time()
|
||||
@ -688,11 +689,11 @@ def _train_one_epoch(epoch: int,
|
||||
|
||||
# final losses of epoch
|
||||
outputs = {
|
||||
'decoder_loss': decoder_loss_avg.result(False),
|
||||
'encoder_loss': encoder_loss_avg.result(False),
|
||||
'enc_dec_loss': enc_dec_loss_avg.result(False),
|
||||
'xd_loss': xd_loss_avg.result(False),
|
||||
'zd_loss': zd_loss_avg.result(False),
|
||||
'decoder_loss': decoder_loss_avg.result(False),
|
||||
'encoder_loss': encoder_loss_avg.result(False),
|
||||
'enc_dec_loss': enc_dec_loss_avg.result(False),
|
||||
'xd_loss': xd_loss_avg.result(False),
|
||||
'zd_loss': zd_loss_avg.result(False),
|
||||
'per_epoch_time': per_epoch_time,
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user