+ nv = F.one_hot(nb_correct, num_classes=len(models) + 1).sum(0)
+ nv = " ".join([str(x.item()) for x in nv])
+
+ nb_validated = valid_c_quizzes(recorded, standard_validity).size(0)
+
+ log_string(
+ f"keep c_quizzes kept {nv} nb_accumulated {nb_validated} / {nb_to_create}"
+ )
+
+ # ------------------------------------------------------------
+
+ 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)
+
+ for n in range(len(models) + 1):
+ s = (
+ "_validated"
+ if n >= args.min_to_validate and n <= args.max_to_validate
+ else ""
+ )
+
+ quizz_machine.problem.save_quizzes(
+ valid_c_quizzes(recorded, criteria=lambda nb_correct: nb_correct == n)[:72],
+ args.result_dir,
+ f"culture_c_quiz_{n_epoch:04d}_N{n}{s}",
+ )
+
+ return sum_logits / sum_nb_c_quizzes