def test_train(): dataset_df = load_dataset_df('/store/kaggle/tgs') train_df, val_df = train_test_split(dataset_df) output_dir = '/store/tmp' train( model_path=f"{output_dir}/model.pt", train_dataset=TgsSaltDataset(train_df), val_dataset=TgsSaltDataset(val_df), epochs=1000, batch_size=32, feature_size=32, patience=5, base_size=5, log_dir=f'{config["TENSORBORAD_LOG_DIR"]}/test', )
def test_dataset(): dataset_df = load_dataset_df('/store/kaggle/tgs') dataset = TgsSaltDataset(dataset_df) scores = [] for i in range(12): sample = dataset[i] score = iou(sample['mask'].numpy(), sample['mask'].numpy()) scores.append(score) assert np.round(np.mean(scores), decimals=3) == 1.0
def test_flip(): writer = SummaryWriter(f'{config["TENSORBORAD_LOG_DIR"]}/test') dataset_df = load_dataset_df('/store/kaggle/tgs') dataset = TgsSaltDataset(dataset_df) writer.add_image( f"flip", vutils.make_grid( pipe(range(8), map(lambda x: dataset[12]), map(lambda x: [x['image'], x['mask']]), concat, list)), )
def test_predict(csv_fn, is_train): dataset_df = load_dataset_df('/store/kaggle/tgs', csv_fn).sample(10) dataset = TgsSaltDataset(dataset_df, is_train=is_train) model = UNet() model_paths = ['/store/tmp/model.pt'] torch.save(model, model_paths[0]) predicted_df = predict(model_paths=model_paths, log_dir=f'{config["TENSORBORAD_LOG_DIR"]}/test', dataset=dataset, log_interval=1) print(predicted_df) assert len(predicted_df) == len(dataset_df)
def test_pool(): dataset_df = load_dataset_df( '/store/kaggle/tgs', 'train.csv', ) dataset = TgsSaltDataset(dataset_df, has_y=True) dataloader = DataLoader(dataset, batch_size=8, shuffle=True) sample = pipe(dataloader, first)['mask'] interpolated = F.max_pool2d(sample, kernel_size=101) writer = SummaryWriter(f'{config["TENSORBORAD_LOG_DIR"]}/test') dataset_df = load_dataset_df('/store/kaggle/tgs') writer.add_image(f"mask", vutils.make_grid([*sample]), 0) writer.add_image(f"pooled", vutils.make_grid([*interpolated]), 0)
def test_add_noise(): dataset_df = load_dataset_df( '/store/kaggle/tgs', 'train.csv', ) dataset = TgsSaltDataset(dataset_df) dataloader = DataLoader(dataset, batch_size=2, shuffle=True) sample = pipe(dataloader, first)['image'] noised = add_noise(sample) writer = SummaryWriter(f'{config["TENSORBORAD_LOG_DIR"]}/test') dataset_df = load_dataset_df('/store/kaggle/tgs') writer.add_image( f"add_noise", vutils.make_grid([*sample, *noised]), )
def test_erase(): dataset_df = load_dataset_df( '/store/kaggle/tgs', 'train.csv', ) dataset = TgsSaltDataset(dataset_df, has_y=True) dataloader = DataLoader(dataset, batch_size=8, shuffle=True) sample = pipe(dataloader, first)['image'] random_erase = RandomErasing() noised = add_noise(sample, erase_num=5, erase_p=1) writer = SummaryWriter(f'{config["TENSORBORAD_LOG_DIR"]}/test') dataset_df = load_dataset_df('/store/kaggle/tgs') writer.add_image( f"random_erase", vutils.make_grid([*sample, *noised]), )
def test_dataset(): dataset_df = load_dataset_df('/store/kaggle/tgs') dataset = TgsSaltDataset(dataset_df) assert len(dataset) == 4000
def test_dense_crf(): dataset_df = load_dataset_df('/store/kaggle/tgs').dropna().head(5) dataset = TgsSaltDataset(dataset_df) sample = dataset[0] print(sample['image'].shape) aa = dense_crf(sample['image'].view(-1, 101, 101), sample['mask'].view(-1, 101, 101))