def main(_): config = get_config() q_config = run_lstmlm_withBegToken.small_config(data) name = create_name(config, q_config) logdir = wb.mkdir('./trf_nn/' + name, is_recreate=True) sys.stdout = wb.std_log(logdir + '/trf.log') config.pprint() print(logdir) # write data data.write_vocab(logdir + '/vocab.txt') data.write_data(data.datas[0], logdir + '/train.id') data.write_data(data.datas[1], logdir + '/valid.id') data.write_data(data.datas[2], logdir + '/test.id') m = trf.TRF(config, data, logdir=logdir, device='/gpu:0', simulater_device='/gpu:0', q_model=lstmlm.LM(run_lstmlm_withBegToken.small_config(data), device='/gpu:0')) ops = Ops(m) sv = tf.train.Supervisor(logdir=logdir + '/logs', summary_op=None, global_step=m._global_step) # sv.summary_writer.add_graph(tf.get_default_graph()) # write the graph to logs session_config = tf.ConfigProto(allow_soft_placement=True, log_device_placement=False) session_config.gpu_options.allow_growth = True with sv.managed_session(config=session_config) as session: m.set_session(session) print('load lstmlm q(x)') m.q_model.restore(session, './lstm/' + run_lstmlm_withBegToken.create_name(m.q_model.config) + '/model.ckpt') m.train(sv, session, print_per_epoch=0.05, operation=ops, model_per_epoch=None)
def create_name(config, q_config): s = str(config) + '_with_' + run_lstmlm_withBegToken.create_name(q_config) if config.feat_type_file is not None: s += '_' + os.path.split(config.feat_type_file)[-1].split('.')[0] if config.opt_method != 'adam': s += '_' + config.opt_method return s
def main(_): data = reader.Data().load_raw_data(reader.ptb_raw_dir(), add_beg_token='<s>', add_end_token='</s>', add_unknwon_token='<unk>') nbest = reader.NBest(*reader.wsj0_nbest()) nbest_list = data.load_data(nbest.nbest, is_nbest=True) config = trfnce.Config(data) config.structure_type = 'cnn' config.embedding_dim = 256 config.cnn_filters = [(i, 128) for i in range(1, 11)] config.cnn_hidden = 128 config.cnn_layers = 3 config.cnn_skip_connection = True config.cnn_activation = 'tanh' config.batch_size = 50 config.noise_factor = 20 config.noise_sampler = 2 config.init_weight = 0.1 config.lr_param = trfbase.LearningRateTime(1e-3) config.max_epoch = 10 config.global_normalized = True config.update_zeta = False config.init_zeta = 10 config.dropout = 0 config.write_dbg = False config.pprint() name = create_name(config) logdir = 'trf_nce/' + name wb.mkdir(logdir, is_recreate=True) sys.stdout = wb.std_log(os.path.join(logdir, 'trf.log')) print(logdir) data.write_vocab(logdir + '/vocab.txt') data.write_data(data.datas[1], logdir + '/valid.id') data.write_data(data.datas[2], logdir + '/test.id') data.write_data(nbest_list, logdir + '/nbest.id') # wb.rmdir(logdirs) with tf.Graph().as_default(): m = trfnce.TRF(config, data, logdir=logdir, device='/gpu:1', q_model=lstmlm.LM( run_lstmlm_withBegToken.small_config(data), device='/gpu:1')) sv = tf.train.Supervisor(logdir=os.path.join(logdir, 'logs'), global_step=m.train_net.global_step) sv.summary_writer.add_graph( tf.get_default_graph()) # write the graph to logs session_config = tf.ConfigProto(allow_soft_placement=True, log_device_placement=False) session_config.gpu_options.allow_growth = True with sv.managed_session(config=session_config) as session: m.set_session(session) print('load lstmlm for noise generator') m.q_model.restore( session, './lstm/' + run_lstmlm_withBegToken.create_name(m.q_model.config) + '/model.ckpt') m.train(sv, session, print_per_epoch=0.1, nbest=nbest, nbest_list=nbest_list)
def create_name(config, q_config): return str(config) + '_with_' + run_lstmlm_withBegToken.create_name(q_config) + '_zeta0'