- for k in range(nb_per_primer):
- results = autoregression(
- model, self.batch_size,
- nb_samples = 1, nb_tokens_to_generate = nb_tokens,
- primer = self.tensorize([ primer_descr ]),
- device = self.device
- )
- r = ' '.join([ self.id2token[t.item()] for t in results.flatten() ])
- result_descr.append(r)
+ results = autoregression(
+ model,
+ self.batch_size,
+ nb_samples = nb_per_primer,
+ nb_tokens_to_generate = nb_tokens_to_generate,
+ primer = self.tensorize([ primer_descr ]).expand(nb_per_primer, -1),
+ device = self.device
+ )
+
+ l = [ ' '.join([ self.id2token[t.item()] for t in r ]) for r in results ]
+ result_descr += l
+
+ np = picoclvr.nb_properties(
+ result_descr,
+ height = self.height, width = self.width
+ )
+
+ nb_requested_properties, _, nb_missing_properties = zip(*np)
+
+ log_string(f'nb_requested_properties {sum(nb_requested_properties) / len(result_descr):.02f} nb_missing_properties {sum(nb_missing_properties) / len(result_descr):.02f}')