Ejemplo n.º 1
0
            pseudolabeled_labels = pseudolabeled_df.labels.tolist()
        else:
            pseudolabeled_audio_files = []
            pseudolabeled_labels = []

        train_loader = torch.utils.data.DataLoader(
            AntispoofDataset(
                audio_files=[
                    os.path.join(args.train_data_dir, fname)
                    for fname in train_df.fname.values[train]
                ] + pseudolabeled_audio_files,
                labels=train_df.labels.values[train].tolist() +
                pseudolabeled_labels,
                transform=Compose([
                    LoadAudio(),
                    SampleLongAudio(max_length=args.max_audio_length),
                    MixUp(p=args.p_mixup),
                    AudioAugmentation(p=args.p_aug),
                    audio_transform,
                    DropFields(("audio", "sr")),
                ]),
                clean_transform=Compose([
                    LoadAudio(),
                    SampleLongAudio(max_length=args.max_audio_length)
                ])),
            shuffle=True,
            drop_last=True,
            batch_size=config.train.batch_size,
            collate_fn=make_collate_fn(
                {"signal": audio_transform.padding_value}),
            **loader_kwargs)
            "pin_memory": True
        } if torch.cuda.is_available() else {})

        valid_loader = torch.utils.data.DataLoader(
            SoundDataset(
                audio_files=[
                    os.path.join(args.train_data_dir, fname)
                    for fname in train_df.fname.values[valid]
                ],
                labels=[
                    item.split(",") for item in train_df.labels.values[valid]
                ],
                transform=Compose([
                    LoadAudio(),
                    MapLabels(class_map=class_map),
                    SampleLongAudio(args.max_audio_length),
                    ShuffleAudio(chunks_range=(12, 20), p=1.0),
                    audio_transform,
                    DropFields(("audio", "filename", "sr")),
                ]),
                clean_transform=Compose([
                    LoadAudio(),
                    MapLabels(class_map=class_map),
                ]),
            ),
            shuffle=False,
            batch_size=args.batch_size,
            collate_fn=make_collate_fn(
                {"signal": audio_transform.padding_value}),
            **loader_kwargs)