Exemple #1
0
def run_comparison_by_trained(start = 0,times = 5 ):
    PATH = 'ablation_comparisoned.txt'
    ld_train = read_ld_train()
    ld_test = read_ld_test() # NOTE: 必须是test
    # 5 * (2 + 2 + 2 + 1) * 25 = 875(min) = 14.58(hour)
    for model_idx in range(times):
        model_idx = model_idx + start
        SEED = SEEDS_FOR_TRAIN_PLUS[model_idx]
        m = load_model(f'SEED_{SEED}_LEFTAUXE2')
        dic['LEFT_AUX0'].append(test_left_aux(m, ld_test))
        save_dic(PATH)
        m = load_model(f'SEED_{SEED}_RIGHTAUXE2')
        dic['RIGHT_AUX0'].append(test_right_aux(m, ld_test))
        save_dic(PATH)
        m = load_model(f'SEED_{SEED}_NOAUXE2')
        dic['NO_AUX0'].append(test_no_aux(m, ld_test))
        save_dic(PATH)
        m = load_model(f'SEED_{SEED}_COUNTERAUXE2')
        dic['COUTER_AUX0'].append(test_counter_aux(m, ld_test))
        save_dic(PATH)
        m = load_model(f'SEED_{SEED}_STAND')
        dic['STAND0'].append(test_chain_baseline(m, ld_test)) # NOTE: 参数顺序不同
        save_dic(PATH)
        m = load_model(f'SEED_{SEED}_AUX00')
        dic['AUX000'].append(test_chain(m, ld_test)) # DD
        save_dic(PATH)
Exemple #2
0
def train_and_plot(times = 3, start = 0):
    epochs = 3
    ld_train = read_ld_train()
    ld_dev = read_ld_dev() 
    for model_idx_org in range(times):
        model_idx = model_idx_org + start
        SEED = RANDOM_SEEDs[model_idx]
        # COUNTER AUX
        m = create_model_with_seed(SEED)
        cb = create_iteration_callback_shell(f'COUTER_AUX{model_idx}', m, ld_dev, test_counter_aux, intensively_log_interval = 20)
        for i in range(epochs):
            train_counter_aux(m, ld_train, fl_rate = 0, iteration_callback = cb)
        # Baseline:
        m = create_model_with_seed(SEED)
        cb = create_iteration_callback_shell(f'STAND{model_idx}', m, ld_dev, test_chain_baseline, intensively_log_interval = 20)
        for i in range(epochs):
            train_baseline(m, ld_train, fl_rate = 0, iteration_callback = cb)
        # LEFT
        m = create_model_with_seed(SEED)
        cb = create_iteration_callback_shell(f'LEFT_AUX{model_idx}', m, ld_dev, test_left_aux, intensively_log_interval = 20)
        for i in range(epochs):
            train_left_aux(m, ld_train, fl_rate = 0, aux_rate = 0.0, iteration_callback = cb)
        # RIGHT
        m = create_model_with_seed(SEED)
        cb = create_iteration_callback_shell(f'RIGHT_AUX{model_idx}', m, ld_dev, test_right_aux, intensively_log_interval = 20)
        for i in range(epochs):
            train_right_aux(m, ld_train, fl_rate = 0, aux_rate = 0.0, iteration_callback = cb)
        # NO AUX
        m = create_model_with_seed(SEED)
        cb = create_iteration_callback_shell(f'NO_AUX{model_idx}', m, ld_dev, test_no_aux, intensively_log_interval = 20)
        for i in range(epochs):
            train_no_aux(m, ld_train, fl_rate = 0.0, iteration_callback = cb)
Exemple #3
0
def train_and_plot(times = 3, start = 0):
    epochs = 3
    ld_train = read_ld_train()
    ld_dev = read_ld_dev() 
    for model_idx_org in range(times):
        model_idx = model_idx_org + start
        print(f'random seed {RANDOM_SEEDs[model_idx]}')
        t.manual_seed(RANDOM_SEEDs[model_idx])
        m = Sector_2022()
        cb = create_iteration_callback(f'AUXFL_FS_DEV{model_idx}', m, ld_dev, intensively_log_interval = 20)
        for i in range(epochs):
            train(m, ld_train, fl_rate = 5.0, aux_rate = 0.1, iteration_callback = cb)
        t.manual_seed(RANDOM_SEEDs[model_idx])
        m = Sector_2022()
        cb = create_iteration_callback(f'AUX_FS_DEV{model_idx}', m, ld_dev, intensively_log_interval = 20)
        for i in range(epochs):
            train(m, ld_train, fl_rate = 0, aux_rate = 0.2, iteration_callback = cb)
        t.manual_seed(RANDOM_SEEDs[model_idx])
        m = Sector_2022()
        cb = create_iteration_callback_baseline(f'FL_FS_DEV{model_idx}', m, ld_dev, intensively_log_interval = 20)
        for i in range(epochs):
            train_baseline(m, ld_train, fl_rate = 2.0, iteration_callback = cb)
        t.manual_seed(RANDOM_SEEDs[model_idx])
        m = Sector_2022()
        cb = create_iteration_callback_baseline(f'STAND_FS_DEV{model_idx}', m, ld_dev, intensively_log_interval = 20)
        for i in range(epochs):
            train_baseline(m, ld_train, fl_rate = 0, iteration_callback = cb)
Exemple #4
0
def run_comparison_by_trained(start = 0,times = 10 ):
    PATH = 'news_comparisoned.txt'
    ld_train = read_ld_train()
    ld_test = read_combined_test() # NOTE: 约7万个句子, 好像没有什么必要
    # 5 * (2 + 2 + 2 + 1) * 25 = 875(min) = 14.58(hour)
    for model_idx in range(times):
        model_idx = model_idx + start
        SEED = SEEDS_FOR_TRAIN[model_idx]
        m = load_model(f'SEED{SEED}_AUX01FL50E2')
        dic['AUXFL_FS_TEST0'].append(test_chain(m, ld_test))
        save_dic(PATH)
        m = load_model(f'SEED{SEED}_AUX02E2')
        dic['AUX_FS_TEST0'].append(test_chain(m, ld_test))
        save_dic(PATH)
        m = load_model(f'SEED{SEED}_FL20E3')
        dic['FL_FS_TEST0'].append(test_chain_baseline(m, ld_test))
        save_dic(PATH)
        m = load_model(f'SEED{SEED}_STDE3')
        dic['STAND_FS_TEST0'].append(test_chain_baseline(m, ld_test))
        save_dic(PATH)
Exemple #5
0
def train_and_save(start = 0, times = 10):
    ld_train = read_ld_train()
    for model_idx_org in range(times):
        model_idx = model_idx_org + start
        SEED = SEEDS_FOR_TRAIN[model_idx]
        m = create_model_with_seed(SEED)
        for i in range(2): # AUX_FL
            train(m, ld_train, fl_rate = 5.0, aux_rate = 0.1)
        save_model(m, f'SEED{SEED}_AUX01FL50E2.tch')
        m = create_model_with_seed(SEED)
        for i in range(2): # AUX
            train(m, ld_train, fl_rate = 0, aux_rate = 0.2)
        save_model(m, f'SEED{SEED}_AUX02E2.tch')
        m = create_model_with_seed(SEED)
        for i in range(3): # FL
            train_baseline(m, ld_train, fl_rate = 2.0)
        save_model(m, f'SEED{SEED}_FL20E3.tch')
        m = create_model_with_seed(SEED)
        for i in range(2): # STAND
            train_baseline(m, ld_train, fl_rate = 0)
        save_model(m, f'SEED{SEED}_STDE3.tch') # NOTE: 名字错了,应该是E2的,但是将就用把
Exemple #6
0
def train_and_save(start = 0, times = 5):
    epochs = 2
    ld_train = read_ld_train()
    for model_idx_org in range(times):
        model_idx = model_idx_org + start
        SEED = SEEDS_FOR_TRAIN_PLUS[model_idx]
        # COUNTER AUX
        m = create_model_with_seed(SEED)
        for i in range(epochs):
            train_counter_aux(m, ld_train, fl_rate = 0)
        save_model(m, f'SEED_{SEED}_COUNTERAUXE2')
        # Baseline:
        m = create_model_with_seed(SEED)
        for i in range(epochs):
            train_baseline(m, ld_train, fl_rate = 0)
        save_model(m, f'SEED_{SEED}_STAND')
        # AUX00:
        m = create_model_with_seed(SEED)
        for i in range(epochs):
            train(m, ld_train, fl_rate = 0, aux_rate = 0)
        save_model(m, f'SEED_{SEED}_AUX00')
        # LEFT
        m = create_model_with_seed(SEED)
        for i in range(epochs):
            train_left_aux(m, ld_train, fl_rate = 0, aux_rate = 0.0)
        save_model(m, f'SEED_{SEED}_LEFTAUXE2')
        # # RIGHT
        m = create_model_with_seed(SEED)
        for i in range(epochs):
            train_right_aux(m, ld_train, fl_rate = 0, aux_rate = 0.0)
        save_model(m, f'SEED_{SEED}_RIGHTAUXE2')
        # # NO AUX
        m = create_model_with_seed(SEED)
        for i in range(epochs):
            train_no_aux(m, ld_train, fl_rate = 0.0)
        save_model(m, f'SEED_{SEED}_NOAUXE2')