def train(): model_config = ModelConfig() training_config = TrainConfig() model_config.batch_size = 32 # Get model model_fn = get_model_creation_fn(FLAGS.model_type) # Create training directory. train_dir = FLAGS.train_dir % (FLAGS.model_type, model_config.feat_type) if not tf.gfile.IsDirectory(train_dir): tf.logging.info("Creating training directory: %s", train_dir) tf.gfile.MakeDirs(train_dir) g = tf.Graph() with g.as_default(): # Build the model. model = model_fn(model_config, 'train') model.build() # Set up the learning rate.u learning_rate = tf.constant(training_config.initial_learning_rate) def _learning_rate_decay_fn(learn_rate, global_step): return tf.train.exponential_decay( learn_rate, global_step, decay_steps=training_config.decay_step, decay_rate=training_config.decay_factor) learning_rate_decay_fn = _learning_rate_decay_fn train_op = tf.contrib.layers.optimize_loss( loss=model.loss, global_step=model.global_step, learning_rate=learning_rate, optimizer=training_config.optimizer, clip_gradients=training_config.clip_gradients, learning_rate_decay_fn=learning_rate_decay_fn) # Set up the Saver for saving and restoring model checkpoints. saver = tf.train.Saver( max_to_keep=training_config.max_checkpoints_to_keep) # create reader reader = AttentionDataReader(batch_size=model_config.batch_size, subset='trainval', feat_type=model_config.feat_type) # Run training. training_util.train(train_op, train_dir, log_every_n_steps=FLAGS.log_every_n_steps, graph=g, global_step=model.global_step, number_of_steps=FLAGS.number_of_steps, init_fn=model.init_fn, saver=saver, reader=reader, feed_fn=model.fill_feed_dict)
def train(): training_config = TrainConfig() # Create training directory. train_dir = FLAGS.train_dir % ('v1', 'Fusion') if not tf.gfile.IsDirectory(train_dir): tf.logging.info("Creating training directory: %s", train_dir) tf.gfile.MakeDirs(train_dir) g = tf.Graph() with g.as_default(): # Build the model. model = RerankModel('train', version='v1', num_cands=5) model.build() # Set up the learning rate.u learning_rate = tf.constant(training_config.initial_learning_rate) def _learning_rate_decay_fn(learn_rate, global_step): return tf.train.exponential_decay( learn_rate, global_step, decay_steps=training_config.decay_step, decay_rate=training_config.decay_factor, staircase=False) learning_rate_decay_fn = _learning_rate_decay_fn train_op = tf.contrib.layers.optimize_loss( loss=model.loss, global_step=model.global_step, learning_rate=learning_rate, optimizer=training_config.optimizer, clip_gradients=training_config.clip_gradients, learning_rate_decay_fn=learning_rate_decay_fn) # Set up the Saver for saving and restoring model checkpoints. var_list = [ var for var in tf.global_variables() if 'Adam' not in var.name ] saver = tf.train.Saver( var_list, max_to_keep=training_config.max_checkpoints_to_keep) # create reader # reader = Reader(batch_size=32, subset='trainval', version='v1') reader = Reader(batch_size=128 * 4, subset='trainval', version='v1') # Run training. training_util.train(train_op, train_dir, log_every_n_steps=FLAGS.log_every_n_steps, graph=g, global_step=model.global_step, number_of_steps=FLAGS.number_of_steps, init_fn=model.init_fn, saver=saver, reader=reader, feed_fn=model.fill_feed_dict, debug_op=None)
def train(): model_config = ModelConfig() training_config = TrainConfig() # Get model model_fn = get_model_creation_fn(FLAGS.model_type) # Create training directory. train_dir = FLAGS.train_dir % (FLAGS.model_trainset, FLAGS.model_type) do_counter_sampling = FLAGS.version == 'v2' if not tf.gfile.IsDirectory(train_dir): tf.logging.info("Creating training directory: %s", train_dir) tf.gfile.MakeDirs(train_dir) g = tf.Graph() with g.as_default(): # Build the model. model = model_fn(model_config, phase='train') model.build() # Set up the learning rate learning_rate = tf.constant(training_config.initial_learning_rate) def _learning_rate_decay_fn(learn_rate, global_step): return tf.train.exponential_decay( learn_rate, global_step, decay_steps=training_config.decay_step, decay_rate=training_config.decay_factor, staircase=False) learning_rate_decay_fn = _learning_rate_decay_fn train_op = tf.contrib.layers.optimize_loss( loss=model.loss, global_step=model.global_step, learning_rate=learning_rate, optimizer=training_config.optimizer, clip_gradients=training_config.clip_gradients, learning_rate_decay_fn=learning_rate_decay_fn) # Set up the Saver for saving and restoring model checkpoints. saver = tf.train.Saver( max_to_keep=training_config.max_checkpoints_to_keep) # setup summaries summary_op = tf.summary.merge_all() # create reader # model_name = os.path.split(train_dir)[1] reader = Reader( batch_size=32, subset=FLAGS.model_trainset, cst_file='vqa_replay_buffer/vqa_replay_low_rescore_prior_05_04.json') # reader = Reader(batch_size=64, # known_set='kprestval', # unknown_set='kptrain', # 'kptrain' # un_ratio=1, # hide_label=False) # Run training. training_util.train(train_op, train_dir, log_every_n_steps=FLAGS.log_every_n_steps, graph=g, global_step=model.global_step, number_of_steps=FLAGS.number_of_steps, init_fn=model.init_fn, saver=saver, reader=reader, feed_fn=model.fill_feed_dict)
def train(): model_config = ModelConfig() training_config = TrainConfig() # Get model # model_fn = get_model_creation_fn(FLAGS.model_type) # Create training directory. train_dir = FLAGS.train_dir % (FLAGS.version, FLAGS.model_type) do_counter_sampling = FLAGS.version == 'v2' if not tf.gfile.IsDirectory(train_dir): tf.logging.info("Creating training directory: %s", train_dir) tf.gfile.MakeDirs(train_dir) g = tf.Graph() with g.as_default(): # Build the model. model = model_fn(model_config, phase='train') model.build() # Set up the learning rate learning_rate = tf.constant(training_config.initial_learning_rate) def _learning_rate_decay_fn(learn_rate, global_step): return tf.train.exponential_decay( learn_rate, global_step, decay_steps=training_config.decay_step, decay_rate=training_config.decay_factor, staircase=False) learning_rate_decay_fn = _learning_rate_decay_fn train_op = tf.contrib.layers.optimize_loss( loss=model.loss, global_step=model.global_step, learning_rate=learning_rate, optimizer=training_config.optimizer, clip_gradients=training_config.clip_gradients, learning_rate_decay_fn=learning_rate_decay_fn, variables=model.qrd_vars) # Set up the Saver for saving and restoring model checkpoints. saver = tf.train.Saver( max_to_keep=training_config.max_checkpoints_to_keep) # setup summaries summary_op = tf.summary.merge_all() # create reader model_name = os.path.split(train_dir)[1] reader = Reader(batch_size=model_config.batch_size, subset='trainval', model_name=model_name, epsilon=0.5, feat_type='res5c', version=FLAGS.version, counter_sampling=do_counter_sampling) # Run training. training_util.train(train_op, train_dir, log_every_n_steps=FLAGS.log_every_n_steps, graph=g, global_step=model.global_step, number_of_steps=FLAGS.number_of_steps, init_fn=model.init_fn, saver=saver, reader=reader, feed_fn=model.fill_feed_dict, summary_op=summary_op)
def train(): model_config = ModelConfig() training_config = TrainConfig() # training_config.initial_learning_rate = 0.01 training_config.decay_step = 100000 training_config.decay_factor = 0.1 # training_config.optimizer = lambda: tf.train.MomentumOptimizer(0.5, momentum=0.5) # Get model model_fn = get_model_creation_fn(FLAGS.model_type) # Create training directory. train_dir = FLAGS.train_dir % (FLAGS.version, FLAGS.model_type) if FLAGS.sample_negative: train_dir += '_sn' if FLAGS.use_fb_data: train_dir += '_fb' if FLAGS.use_fb_bn: train_dir += '_bn' do_counter_sampling = FLAGS.version == 'v2' if not tf.gfile.IsDirectory(train_dir): tf.logging.info("Creating training directory: %s", train_dir) tf.gfile.MakeDirs(train_dir) g = tf.Graph() with g.as_default(): # Build the model. model_config.sample_negative = FLAGS.sample_negative model_config.use_fb_bn = FLAGS.use_fb_bn model = model_fn(model_config, phase='train') model.build() # Set up the learning rate learning_rate = tf.constant(training_config.initial_learning_rate) def _learning_rate_decay_fn(learn_rate, global_step): return tf.train.exponential_decay( learn_rate, global_step, decay_steps=training_config.decay_step, decay_rate=training_config.decay_factor, staircase=True) # staircase=False) learning_rate_decay_fn = _learning_rate_decay_fn train_op = tf.contrib.layers.optimize_loss( loss=model.loss, global_step=model.global_step, learning_rate=learning_rate, # optimizer=tf.train.MomentumOptimizer(learning_rate, 0.9), optimizer=training_config.optimizer, clip_gradients=None, learning_rate_decay_fn=learning_rate_decay_fn) # Set up the Saver for saving and restoring model checkpoints. saver = tf.train.Saver( max_to_keep=training_config.max_checkpoints_to_keep) # setup summaries summary_op = tf.summary.merge_all() # create reader batch_size = 256 if FLAGS.sample_negative else 64 reader = Reader(batch_size=batch_size, subset='kptrain', sample_negative=FLAGS.sample_negative, use_fb_data=FLAGS.use_fb_data) # Run training. training_util.train(train_op, train_dir, log_every_n_steps=FLAGS.log_every_n_steps, graph=g, global_step=model.global_step, number_of_steps=FLAGS.number_of_steps, init_fn=model.init_fn, saver=saver, reader=reader, feed_fn=model.fill_feed_dict, summary_op=summary_op)