def main(): training_size = 1000 index = range(training_size) epochs = 1000 one_epoch_word_num = training_size * 3 giver = PGACAgent(player_tag='giver', is_giver=True, restrict_value=False) all_words = giver.get_all_targets() words = itemgetter(*index)(all_words) words = [w[0] for w in words] res_dir = "./single_pg_res" if not os.path.exists(res_dir): os.mkdir(res_dir) path = 'single_pg_{0}.json'.format(CURRENT_TIME) path = os.path.join(res_dir, path) to_save_path = os.path.join(res_dir, 'model_{}'.format(CURRENT_TIME)) for epoch in range(epochs): print("Current Epoch {}".format(epoch)) for guesser in deterministic_guessers: print("In the testing set") if epoch: test_on_words(words, giver, guesser, epoch=epoch, path=path) for num in range(one_epoch_word_num): guesser = random.choice(deterministic_guessers) add_experience(giver, guesser, words) try: if num % 100 == 99: print("Finished a training process") giver.train() except: import pdb pdb.set_trace() giver.model.save_model(epoch=epoch, path=to_save_path) print('=======================')
def main(): training_size = 1000 index, test_index = range(training_size), range(training_size, training_size + 59) epochs = 1000 one_epoch_word_num = training_size * 3 giver = PGACAgent(player_tag='giver', is_giver=True, restrict_value=False) all_words = giver.get_all_targets() words = itemgetter(*index)(all_words) words = [w[0] for w in words] test_words = itemgetter(*test_index)(all_words) test_words = [w[0] for w in test_words] for epoch in range(epochs): print("Current Epoch {}".format(epoch)) for guesser in deterministic_guessers: print("In the testing set") if epoch: test_on_words(test_words, giver, guesser) for num in range(one_epoch_word_num): guesser = random.choice(deterministic_guessers) add_experience(giver, guesser, words) try: if num % 100 == 99: giver.train() except: continue print('=======================')
def main(): training_size = 1000 giver = PGACAgent(player_tag='giver', is_giver=True, restrict_value=False) guesser = PGACAgent(player_tag='guesser', is_giver=False, FSG=True, restrict_value=False, REV_FSG_NORM=True) epochs = 1000 index = list(range(training_size)) one_epoch_word_num = training_size * 3 all_words = giver.get_all_targets() words = itemgetter(*index)(all_words) words = [w[0] for w in words] deterministic_guessers.append(guesser) path = './double_pg_{}.json'.format(CURRENT_TIME) for epoch in range(epochs): print("Current Epoch {}".format(epoch)) if epoch: for to_test_guesser in deterministic_guessers: test_on_words(words, giver, to_test_guesser, epoch=epoch, path=path) for num in range(one_epoch_word_num): add_experience(giver, guesser, words) if num % 100 == 99: print("Trained on a batch") giver.train() guesser.train() print('=======================')
def main(): giver = ActorCriticAgent(player_tag='giver', is_giver=True, restrict_value=True) training_size = 1000 epochs = 1000 one_epoch_word_num = training_size * 3 all_words = giver.get_all_targets() words = all_words[:training_size] words = [w[0] for w in words] res_dir = "./single_naive_res" if not os.path.exists(res_dir): os.mkdir(res_dir) path = 'single_naive_{0}.json'.format(CURRENT_TIME) path = os.path.join(res_dir, path) to_save_path = os.path.join(res_dir, 'model_{}'.format(CURRENT_TIME)) for epoch in range(epochs): print("Current Epoch {}".format(epoch)) guesser = deterministic_guessers[0] for guesser in deterministic_guessers: # print("In the training set") # test_on_words(words, giver, guesser) print("In the testing set") if epoch: test_on_words(words, giver, guesser, epoch=epoch, path=path) for num in range(one_epoch_word_num): guesser = random.choice(deterministic_guessers) #guesser = deterministic_guessers[0] add_experience(giver, guesser, words) if num % 100 == 99: print("Trained on a batch") giver.train() if num == (one_epoch_word_num - 1): giver.add_train_counter() giver.model.save_model(epoch=epoch, path=to_save_path) print('=======================')
def topic_guesses_checker(): giver = giver12 training_size = 200 all_words = giver.get_all_targets() words = all_words[:training_size] words = [w[0] for w in words] print("Test for 1") giver = PGACAgent(player_tag='giver', is_giver=True, restrict_value=False) giver.model.load_model('./remote_models/single_pg/giver') test_on_words(words, giver, guesser12, epoch=0, to_print_traj=False) print("Test for Topic 1") for guesser in guesser12_family: test_on_words(words, giver, guesser, epoch=0, to_print_traj=False) print("Test for 2") test_on_words(words, giver, guesser22, epoch=0, to_print_traj=False) print("Test for Topic 2") for guesser in guesser22_family: test_on_words(words, giver, guesser, epoch=0, to_print_traj=False) print("Test for 3") test_on_words(words, giver, guesser32, epoch=0, to_print_traj=False) print("Test for Topic 3") for guesser in guesser32_family: test_on_words(words, giver, guesser, epoch=0, to_print_traj=False) # testing print("Test for 4") test_on_words(words, giver, guesser42, epoch=0, to_print_traj=False) print("Test for Topic 4") for guesser in guesser42_family: test_on_words(words, giver, guesser, epoch=0, to_print_traj=False) print("Test for 5") test_on_words(words, giver, guesser52, epoch=0, to_print_traj=False) print("Test for Topic 5") for guesser in guesser52_family: test_on_words(words, giver, guesser, epoch=0, to_print_traj=False)