Example #1
0
epoch_nr = 0
start_time = time.time()
num_training_batches = datahandler.get_num_training_batches()
num_test_batches = datahandler.get_num_test_batches()
epoch_loss = 0

# start training
while epoch_nr < MAX_EPOCHS:
    with open(txt_log_name, 'a') as txt_file:
        txt_file.write("Starting epoch #" + str(epoch_nr) + "\n")
    start_time_epoch = time.time()

    # reset the datahandler and get first training batch
    datahandler.reset_user_batch_data_train()
    datahandler.reset_user_session_representations()
    items, item_targets, session_lengths, session_reps, session_rep_lengths, user_list, sess_time_reps, time_targets, first_rec_targets = datahandler.get_next_train_batch(
    )
    batch_nr = 0

    model.train_mode()
    while len(items) > int(BATCHSIZE / 2):
        batch_start_time = time.time()
        batch_loss = model.train_on_batch(items, session_reps, sess_time_reps,
                                          user_list, item_targets,
                                          time_targets, first_rec_targets,
                                          session_lengths, session_rep_lengths)
        epoch_loss += batch_loss
        batch_runtime = time.time() - batch_start_time
        items, item_targets, session_lengths, session_reps, session_rep_lengths, user_list, sess_time_reps, time_targets, first_rec_targets = datahandler.get_next_train_batch(
        )
        if batch_nr % 1500 == 0:
            with open(txt_log_name, 'a') as txt_file: