evaluate(model,data_loader_test,model_name=config.model,ty='test',verbose=True,log=True) exit(0) model = Transformer(p.vocab) print("MODEL USED",config.model) print("TRAINABLE PARAMETERS",count_parameters(model)) best_ppl = 1000 cnt = 0 for e in range(config.epochs): print("Epoch", e) p, l = [],[] pbar = tqdm(enumerate(data_loader_tr),total=len(data_loader_tr)) for i, d in pbar: torch.cuda.empty_cache() loss, ppl, _ = model.train_one_batch(d) l.append(loss) p.append(ppl) pbar.set_description("loss:{:.4f} ppl:{:.1f}".format(np.mean(l),np.mean(p))) #pbar.set_description("loss:{:.4f} ppl:{:.1f}".format(loss,ppl)) torch.cuda.empty_cache() #break loss,ppl_val,ent_b,bleu_score_b = evaluate(model,data_loader_val,model_name=config.model,ty="valid", verbose=True) if(ppl_val <= best_ppl): best_ppl = ppl_val cnt = 0 model.save_model(best_ppl,e,0,0,bleu_score_b,ent_b) else: cnt += 1 if(cnt > 10): break
xavier_uniform_(p) print("MODEL USED", config.model) print("TRAINABLE PARAMETERS", count_parameters(model)) check_iter = 2000 try: if (config.USE_CUDA): model.cuda() model = model.train() best_ppl = 1000 patient = 0 writer = SummaryWriter(log_dir=config.save_path) weights_best = deepcopy(model.state_dict()) data_iter = make_infinite(data_loader_tra) for n_iter in tqdm(range(1000000)): loss, ppl, bce, acc = model.train_one_batch(next(data_iter), n_iter) writer.add_scalars('loss', {'loss_train': loss}, n_iter) writer.add_scalars('ppl', {'ppl_train': ppl}, n_iter) writer.add_scalars('bce', {'bce_train': bce}, n_iter) writer.add_scalars('accuracy', {'acc_train': acc}, n_iter) if (config.noam): writer.add_scalars('lr', {'learning_rata': model.optimizer._rate}, n_iter) if ((n_iter + 1) % check_iter == 0): model = model.eval() model.epoch = n_iter model.__id__logger = 0 loss_val, ppl_val, bce_val, acc_val, bleu_score_g, bleu_score_b = evaluate( model, data_loader_val, ty="valid", max_dec_step=50) writer.add_scalars('loss', {'loss_valid': loss_val}, n_iter)