示例#1
0
utils.show_model(model)

val_losses = []
dc_weight = 1

for epoch in epochs:
    if args.unfold_iterations:
        if (epoch % int(params['num_epochs'] / 5) == 0):
            n_iterations = int(params['num_epoch'] / epoch)
            module.clusterer.n_iterations = min(params['num_clustering_iterations'], n_iterations)

    if args.curriculum_learning:
        if epoch >= int(params['num_epochs'] / 5):
            # Lengthen sequences for learning
            dataset.create_cache = True
            dataset.length = 1.0
            val_dataset.create_cache = True
            val_dataset.length = 1.0
                
    progress_bar = trange(num_iterations)
    epoch_loss = []
    for (spectrogram, magnitude_spectrogram, source_spectrograms, source_ibms, weights, one_hots) in dataloader:
        spectrogram = spectrogram.to(device).requires_grad_()
        magnitude_spectrogram = magnitude_spectrogram.to(device).unsqueeze(-1).requires_grad_()
        source_spectrograms = source_spectrograms.float().to(device)
        source_ibms = source_ibms.to(device).float()
        one_hots = one_hots.float().to(device).requires_grad_()
        if weights is not None:
            weights = weights.float().to(device)
        
        optimizer.zero_grad()