def generate_test_result(self, test_collection: cri.CrCollection, verbose=1, save_to_instance_key=None, exp_key=None, verbose_short_name=None, description='', workers=4, use_multiprocessing=False, params=None) -> Result: """ Genereates a Result based on predictions against test_collection. When save_to_instance_key is not None, the results are saved to <model_key>/<save_to_instance_key>/cr_result.json """ model = self.get_model() test_gen = self.get_test_generator(test_collection) test_gen.reset() if (verbose): print('Generating predictions for {}'.format( self.get_key()).center(80, '-')) predictions = model.predict_generator( test_gen, steps=len(test_gen), workers=workers, use_multiprocessing=use_multiprocessing, verbose=1) cr_codes = cri.extract_cr_codes(test_gen.filenames) if verbose_short_name is None: short_name = self.get_key() short_name += ' analyzed on {}'.format( datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) else: short_name = verbose_short_name if params is None: params = dict() result = Result.from_predictions(predictions, cr_codes, params, short_name, description) if save_to_instance_key: result.save(self.get_key(), save_to_instance_key, exp_key) return result