netC.eval() netC_T.eval() with torch.no_grad(): total_t, correct_t, loss_t = evaluation.test_classifier(netC) total_tt, correct_tt, loss_tt = evaluation.test_classifier(netC_T) netC.train() netC_T.train() logger.add("testing", "loss", loss_t.item(), i + 1) logger.add("testing", "accuracy", 100 * (correct_t / total_t), i + 1) logger.add("testing", "loss_t", loss_tt.item(), i + 1) logger.add("testing", "accuracy_t", 100 * (correct_tt / total_tt), i + 1) str_meg = logger_prefix.format(i + 1, max_iter, 100 * ((i + 1) / max_iter)) logger.log_info(str_meg, text_logger.info, ["testing"]) if (i + 1) % print_interval == 0: prefix = logger_prefix.format(i + 1, max_iter, (100 * i + 1) / max_iter) cats = ["training_pre"] logger.log_info(prefix, text_logger.info, cats=cats) for i in range(pretrain_inter, max_iter + pretrain_inter): data, label = itr.__next__() data, label = data.to(device), label.to(device) # data_u, _ = itr.__next__() # data_u_d, _ = itr.__next__() # data_u, data_u_d = data_u.to(device), data_u_d.to(device) for _ in range(n_iter_d):
for i in range(max_iter): tloss, l_loss, u_loss = loss_func(netC, netC_T, i, itr, itr_u, device) if FLAGS.c_step == "ramp_swa": step_func(optim_c, swa_optim, netC, netC_T, i, tloss) else: step_func(optim_c, netC, netC_T, i, tloss) logger.add("training", "loss", tloss.item(), i + 1) logger.add("training", "l_loss", l_loss.item(), i + 1) logger.add("training", "u_loss", u_loss.item(), i + 1) if (i + 1) % print_interval == 0: prefix = logger_prefix.format(i + 1, max_iter, (100 * i + 1) / max_iter) cats = ["training"] logger.log_info(prefix, text_logger.info, cats=cats) if (i + 1) % test_interval == 0: netC.eval() netC_T.eval() if FLAGS.c_step == "ramp_swa": netC_swa.train() for _ in range(300): data_u, _ = itr_u.__next__() _ = netC_swa(data_u.to(device)) netC_swa.eval() total_s, correct_s, loss_s = evaluation.test_classifier(netC_swa) logger.add("testing", "loss_s", loss_s.item(), i + 1) logger.add("testing", "accuracy_s", 100 * (correct_s / total_s), i + 1)