def test_create_pair_summaries(patched_dataset_reading): provider = patched_dataset_reading.param run_data = gen.run_data(model=FakeModel(data_provider=provider())) dir_with_pair_summaries = filenames.get_run_logs_data_dir( run_data) / 'features' assert utils.check_filepath(dir_with_pair_summaries, exists=False) image_summaries.create_pair_summaries(run_data) assert utils.check_filepath(dir_with_pair_summaries, is_directory=True, is_empty=False) assert len(list(dir_with_pair_summaries.iterdir())) == 1
def test_should_create_pair_board_for_different_datasets( fake_dataset: DictsDataset): infer_results_image_path = filenames._get_home_infer_dir() / "board.png" assert utils.check_filepath(infer_results_image_path, exists=False) image_summaries.create_pairs_board( dataset=fake_dataset, predicted_labels=fake_dataset.labels.pair, predicted_scores=None, path=infer_results_image_path, show=False) # set to True to see generated board assert utils.check_filepath(infer_results_image_path, is_directory=False, is_empty=False)
def test_should_save_and_read_pairs_correctly(batch_size): images_dataset: DictsDataset paths_dataset: DictsDataset images_dataset, paths_dataset = gen.dicts_dataset(batch_size=batch_size, paired=True, save_on_disc=True) raw_dataset_fragment = testing_helpers.dicts_dataset_to_raw_dataset_fragment( images_dataset) dataset_desc = gen.dataset_desc( storage_method=DatasetStorageMethod.ON_DISC, image_dimensions=ImageDimensions(testing_consts.TEST_IMAGE_SIZE)) dataset_spec = gen.dataset_spec(description=dataset_desc, raw_dataset_fragment=raw_dataset_fragment) tfrecord_full_path = preparing_data.save_to_tfrecord( paths_dataset.features, paths_dataset.labels, 'data', dataset_spec) assert utils.check_filepath(tfrecord_full_path, is_directory=False, is_empty=False) dataset = reading_tfrecords.assemble_dataset(tfrecord_full_path.parent, dataset_spec) dataset = dataset.repeat() dataset = dataset.batch(batch_size) first_batch = dataset.make_one_shot_iterator().get_next() _check_paired_result( first_batch, (images_dataset.features.left, images_dataset.features.right), images_dataset.labels)
def _assert_log_dirs(logs_dir, names): eval_dirs = [ logs_dir / ('eval_' + names[0]), logs_dir / ('eval_' + names[1]) ] for e in eval_dirs: assert utils.check_filepath(e) checkpoint_files = logs_dir.glob('model.ckpt*') assert list(checkpoint_files)
def test_should_create_summaries_for_different_models(patched_dataset_reading, patched_params): model = patched_dataset_reading.param run_data = gen.run_data(model=model()) inference.single_run_inference(run_data=run_data, show=False) infer_results_dir_path = filenames.get_infer_dir(run_data) assert utils.check_filepath(infer_results_dir_path, is_directory=True, is_empty=False)
def test_should_create_correct_number_of_inference_files( patched_dataset_reading, patched_params): model = patched_dataset_reading.param() run_data = gen.run_data(model=model) inference.single_run_inference(run_data=run_data, show=False) infer_results_dir_path = filenames.get_infer_dir(run_data) expected_file_count = 4 if model.produces_2d_embedding else 2 assert utils.check_filepath(infer_results_dir_path, is_directory=True, is_empty=False, expected_len=expected_file_count)
def thor_image_path(patched_home_dir): import urllib.request thor_path = patched_home_dir / "downloaded/thor_is_here.png" thor_path.parent.mkdir() image_address = 'https://i.stack.imgur.com/Cr57x.png' # image_address = 'https://liquipedia.net/commons/images/0/0d/ThorCE.jpg' urllib.request.urlretrieve(image_address, thor_path) assert utils.check_filepath(thor_path, exists=True, is_directory=False, is_empty=False) yield str(thor_path) thor_path.unlink()
def _prepare_launcher_dir(run_data: RunData) -> Union[Path, None]: if not run_data.is_experiment_and_first_run(): return None launcher_dir = filenames.get_launcher_dir(run_data) if utils.check_filepath(filename=launcher_dir, exists=True, is_directory=True, is_empty=False): shutil.rmtree(str(launcher_dir)) return launcher_dir else: launcher_dir.mkdir(exist_ok=False, parents=True) return None
def _prepare_log_dir(run_data: RunData): log_dir = filenames.get_run_logs_data_dir(run_data) if utils.check_filepath(filename=log_dir, exists=True, is_directory=True, is_empty=False): utils.log( 'Found not empty logs directory from previous runs: {}'.format( log_dir)) if config[consts.REMOVE_OLD_MODEL_DIR]: utils.log('Deleting old model_dir: {}'.format(log_dir)) shutil.rmtree(str(log_dir)) else: utils.log( 'Logs directory from previous runs not found. Creating new: {}'. format(log_dir)) log_dir.mkdir(exist_ok=False, parents=True)
def test_should_save_and_read_unpaired_correctly(batch_size): images_dataset: DictsDataset = gen.dicts_dataset(batch_size=batch_size, paired=False) tfrecord_full_path = preparing_data.save_to_tfrecord( images_dataset.features, images_dataset.labels, 'data', gen.dataset_spec(paired=False)) assert utils.check_filepath(tfrecord_full_path, is_directory=False, is_empty=False) dataset = reading_tfrecords.assemble_dataset( tfrecord_full_path.parent, gen.dataset_spec(paired=False)) dataset = dataset.repeat() dataset = dataset.batch(batch_size) iterator = dataset.make_one_shot_iterator() first_batch = iterator.get_next() _check_result(first_batch, images_dataset.features.all, images_dataset.labels)
def test_check_directory_or_file(patched_home_dir): non_existing = patched_home_dir / 'not_exists' assert utils.check_filepath(non_existing, exists=False) assert not utils.check_filepath(non_existing, exists=True) assert utils.check_filepath(non_existing, exists=False, is_directory=True, is_empty=True) empty_dir = (patched_home_dir / 'baz') empty_dir.mkdir() assert not utils.check_filepath(empty_dir, exists=False) assert not utils.check_filepath(empty_dir, is_directory=False) assert utils.check_filepath(empty_dir, exists=True, is_directory=True, is_empty=True) assert not utils.check_filepath( empty_dir, exists=True, is_directory=True, is_empty=False) nonempty_dir = (patched_home_dir / 'qux') (nonempty_dir / 'quux').mkdir(parents=True) assert not utils.check_filepath(nonempty_dir, exists=False) assert not utils.check_filepath(nonempty_dir, is_directory=False) assert utils.check_filepath(nonempty_dir, exists=True, is_directory=True, is_empty=False) assert not utils.check_filepath( nonempty_dir, exists=True, is_directory=True, is_empty=True) empty_file = (patched_home_dir / 'abc.txt') empty_file.write_text('') assert not utils.check_filepath(empty_file, exists=False) assert not utils.check_filepath(empty_file, is_directory=True) assert utils.check_filepath(empty_file, exists=True, is_directory=False, is_empty=True) assert not utils.check_filepath( empty_file, exists=True, is_directory=False, is_empty=False) non_empty_file = (patched_home_dir / 'qwop.txt') non_empty_file.write_text('wubba lubba dub dub') assert not utils.check_filepath(non_empty_file, exists=False) assert not utils.check_filepath(non_empty_file, is_directory=True) assert utils.check_filepath(non_empty_file, exists=True, is_directory=False, is_empty=False) assert not utils.check_filepath( non_empty_file, exists=True, is_directory=False, is_empty=True)