예제 #1
0
def main():
    utils.seed_python(config.seed)
    utils.seed_torch(config.seed)

    train_eval_data = pd.read_csv(os.path.join(args.dataset_path, 'train.csv'),
                                  converters={'EncodedPixels': str})
    train_eval_data['root'] = os.path.join(args.dataset_path, 'train_images')

    test_data = pd.read_csv(os.path.join(args.dataset_path,
                                         'sample_submission.csv'),
                            converters={'EncodedPixels': str})
    test_data['root'] = os.path.join(args.dataset_path, 'test_images')

    if args.lr_search:
        lr = lr_search(train_eval_data)
        print('lr_search: {}'.format(lr))
        gc.collect()
        return

    if args.fold is None:
        folds = FOLDS
    else:
        folds = [args.fold]

    if not args.infer:
        for fold in folds:
            train_fold(fold, train_eval_data)

    update_transforms(1.)  # FIXME:
    temp = find_temp_for_folds(folds, train_eval_data)
    gc.collect()
    build_submission(folds, test_data, temp)
예제 #2
0
def main():
    utils.seed_python(config.seed)
    utils.seed_torch(config.seed)

    train_eval_data = pd.read_csv(os.path.join(args.dataset_path, 'train.csv'))
    train_eval_data['root'] = os.path.join(args.dataset_path, 'train')

    test_data = pd.read_csv(os.path.join(args.dataset_path, 'test.csv'))
    test_data['root'] = os.path.join(args.dataset_path, 'test')

    infer_image_transform.reset(tta=False)

    if args.lr_search:
        lr = lr_search(train_eval_data)
        print('lr_search: {}'.format(lr))
        gc.collect()
        return

    if args.fold is None:
        folds = FOLDS
    else:
        folds = [args.fold]

    if not args.infer:
        for fold in folds:
            train_fold(fold, train_eval_data, test_data)

    infer_image_transform.reset(tta=True)

    update_transforms(1.)  # FIXME:
    temp = find_temp_for_folds(folds, train_eval_data)
    gc.collect()
    build_submission(folds, test_data, temp)
예제 #3
0
def main(model_paths, dataset_path, submission_path):
    utils.seed_python(config.seed)
    utils.seed_torch(config.seed)

    test_data = load_test_data(dataset_path, 'test')
    predictions, ids = build_submission(model_paths, FOLDS, test_data)
    predictions = predictions.cpu()
    submission = {
        'fname': ids,
        **{ID_TO_CLASS[i]: predictions[:, i] for i in range(NUM_CLASSES)}
    }
    submission = pd.DataFrame(submission)
    submission.to_csv(submission_path, index=False)
예제 #4
0
def main():
    utils.seed_python(config.seed)
    utils.seed_torch(config.seed)

    train_eval_data = load_train_eval_data(args.dataset_path, 'train_curated')
    train_noisy_data = load_train_eval_data(args.dataset_path, 'train_noisy')
    test_data = load_test_data(args.dataset_path, 'test')

    noisy_meta = pd.read_csv('./noisy_meta.csv')
    noisy_indices = np.argsort(-noisy_meta.score)[:config.noisy_topk]

    for data in [train_eval_data, train_noisy_data, test_data]:
        if args.debug:
            data['path'] = './frees/sample.wav'

    if config.opt.lr is None:
        lr = find_lr(train_eval_data, train_noisy_data.iloc[noisy_indices])
        gc.collect()

    else:
        lr = config.opt.lr

    if args.fold is None:
        folds = FOLDS
    else:
        folds = [args.fold]

    for fold in folds:
        train_fold(fold, train_eval_data, train_noisy_data.iloc[noisy_indices],
                   lr)

    # TODO: check and refine
    # TODO: remove?
    evaluate_folds(folds, train_eval_data)
    scores, ids = evaluate_noisy(folds, train_noisy_data)
    noisy_meta = pd.DataFrame({'fname': ids, 'score': scores})
    noisy_meta.to_csv(os.path.join(args.experiment_path, 'noisy_meta.csv'),
                      index=False)

    predictions, ids = build_submission(folds, test_data)
    predictions = predictions.cpu()
    submission = {
        'fname': ids,
        **{ID_TO_CLASS[i]: predictions[:, i]
           for i in range(NUM_CLASSES)}
    }
    submission = pd.DataFrame(submission)
    submission.to_csv(os.path.join(args.experiment_path, 'submission.csv'),
                      index=False)
예제 #5
0
def main():
    utils.seed_python(config.seed)
    utils.seed_torch(config.seed)

    train_eval_data = pd.read_csv(os.path.join(args.dataset_path, 'train.csv'))
    train_eval_data['root'] = os.path.join(args.dataset_path, 'train')

    test_data = pd.read_csv(os.path.join(args.dataset_path, 'test.csv'))
    test_data['root'] = os.path.join(args.dataset_path, 'test')

    data = pd.concat([train_eval_data, test_data])

    if args.fold is None:
        folds = FOLDS
    else:
        folds = [args.fold]

    infer_image_transform.reset(tta=True)
    update_transforms(1.)  # FIXME:
    compute_features(folds, data)
예제 #6
0
def main():
    # TODO: refactor seed
    utils.seed_python(config.seed)

    if config.opt.lr is None:
        lr = find_lr()
        print('find_lr: {}'.format(lr))
        gc.collect()
    else:
        lr = config.opt.lr

    if args.fold is None:
        folds = FOLDS
    else:
        folds = [args.fold]

    for fold in folds:
        train_fold(fold, lr)

    # TODO: check and refine
    threshold = find_threshold_for_folds(folds)
    build_submission(folds, threshold)
예제 #7
0
def worker_init_fn(_):
    utils.seed_python(torch.initial_seed() % 2**32)
예제 #8
0
def main():
    utils.seed_python(config.seed)
    utils.seed_torch(config.seed)
    train()