Update.
[culture.git] / main.py
diff --git a/main.py b/main.py
index 6137834..0a7be99 100755 (executable)
--- a/main.py
+++ b/main.py
@@ -85,10 +85,6 @@ parser.add_argument("--problem", type=str, default="sky")
 
 parser.add_argument("--nb_gpts", type=int, default=5)
 
-parser.add_argument("--nb_models_for_generation", type=int, default=1)
-
-parser.add_argument("--generation_mode", type=str, default="groupthink")
-
 parser.add_argument("--min_to_validate", type=int, default=4)
 
 parser.add_argument("--max_to_validate", type=int, default=4)
@@ -421,7 +417,9 @@ def create_c_quizzes(
         sum_logits += c_quizzes.size(0) * ave_seq_logproba
         sum_nb_c_quizzes += c_quizzes.size(0)
 
-        nb_correct = quizz_machine.comput_correctness(c_quizzes, models)
+        nb_correct = quizz_machine.compute_correctness(
+            c_quizzes, models, both_direction=True
+        )
 
         if args.dirty_debug:
             nb_correct = torch.randint(
@@ -435,15 +433,20 @@ def create_c_quizzes(
 
         nb_validated = valid_c_quizzes(recorded, standard_validity).size(0)
 
-        log_string(f"keep c_quizzes kept {nv} total {nb_validated} / {nb_to_create}")
+        log_string(
+            f"keep c_quizzes kept {nv} nb_accumulated {nb_validated} / {nb_to_create}"
+        )
 
-    # ------------------------------------------------------------
+    # store the new c_quizzes which have been validated
 
     new_c_quizzes = valid_c_quizzes(recorded, standard_validity)
 
     quizz_machine.store_c_quizzes(new_c_quizzes[:nb_for_train], for_train=True)
     quizz_machine.store_c_quizzes(new_c_quizzes[nb_for_train:], for_train=False)
 
+    # save a bunch of images to investigate what quizzes with a
+    # certain nb of correct predictions look like
+
     for n in range(len(models) + 1):
         s = (
             "_validated"
@@ -510,6 +513,9 @@ for n_epoch in range(args.nb_epochs):
         f"test_set_composition w_quizzes {quizz_machine.nb_batch_w_quizzes} c_quizzes {quizz_machine.nb_batch_c_quizzes}"
     )
 
+    cta = " ".join([f"{float(m.main_test_accuracy):.02f}" for m in models])
+    log_string(f"current_test_accuracies {cta}")
+
     # replace a fraction of the w_quizzes with a fresh ones
     quizz_machine.renew_w_quizzes(args.nb_train_samples // args.nb_gpts)