コード例 #1
0
def get_batch_of_embeddings(data_dir, model_dir, n_speakers, n_utterances):
    # create data set
    speaker_dataset = SpeakerVerificationDataset(data_dir, dataset_len=26)

    # create model
    device = torch.device('cuda')
    model = load_model(model_dir, device)
    model.eval()

    # get embeddings
    print("running model on batch...")
    with torch.no_grad():
        speakers = [
            speaker_dataset[i]
            for i in np.random.randint(0, len(speaker_dataset), n_speakers)
        ]  # for i in np.arange(n_speakers)]
        my_batch = SpeakerBatch(speakers,
                                utterances_per_speaker=n_utterances,
                                n_frames=160)
        my_batch_data = torch.from_numpy(my_batch.data).to(device)
        print("Batch shape: ", my_batch_data.shape)
        embeds = model(my_batch_data)
        print("Embeds shape: ", embeds.shape)

        embeds = embeds.detach().cpu().numpy()
    return embeds
コード例 #2
0
 def collate(self, speakers):
     return SpeakerBatch(speakers, self.utterances_per_speaker,
                         partials_n_frames)
 def collate(self, speakers):
     return SpeakerBatch(speakers, self.utterances_per_speaker,
                         PARTIALS_N_FRAMES)