Deep Variational CCA and Deep Canonically Correlated AutoencodersΒΆ

This example demonstrates multiview models which can reconstruct their inputs

import matplotlib.pyplot as plt
import numpy as np
import pytorch_lightning as pl
from torch.utils.data import Subset
from cca_zoo.data import Noisy_MNIST_Dataset
from cca_zoo.deepmodels import (
    CCALightning,
    get_dataloaders,
    architectures,
    DCCAE,
    DVCCA,
)


def plot_reconstruction(model, dataset, idx):
    (x, y), _ = dataset[idx]
    recon_x, recon_y = model.recon(x, y)
    if isinstance(recon_x, list):
        recon_x = recon_x[0]
        recon_y = recon_y[0]
    recon_x = recon_x.detach().numpy()
    recon_y = recon_y.detach().numpy()
    fig, ax = plt.subplots(ncols=4)
    ax[0].set_title("Original View 1")
    ax[1].set_title("Original View 2")
    ax[2].set_title("Reconstruction View 1")
    ax[3].set_title("Reconstruction View 2")
    ax[0].imshow(x.detach().numpy().reshape((28, 28)))
    ax[1].imshow(y.detach().numpy().reshape((28, 28)))
    ax[2].imshow(recon_x.reshape((28, 28)))
    ax[3].imshow(recon_y.reshape((28, 28)))


n_train = 500
n_val = 100
train_dataset = Noisy_MNIST_Dataset(mnist_type="MNIST", train=True, flatten=True)
val_dataset = Subset(train_dataset, np.arange(n_train, n_train + n_val))
train_dataset = Subset(train_dataset, np.arange(n_train))
train_loader, val_loader = get_dataloaders(train_dataset, val_dataset)

# The number of latent dimensions across models
latent_dims = 2
# number of epochs for deep models
epochs = 50

encoder_1 = architectures.Encoder(
    latent_dims=latent_dims, feature_size=784, variational=True
)
encoder_2 = architectures.Encoder(
    latent_dims=latent_dims, feature_size=784, variational=True
)
decoder_1 = architectures.Decoder(
    latent_dims=latent_dims, feature_size=784, norm_output=True
)
decoder_2 = architectures.Decoder(
    latent_dims=latent_dims, feature_size=784, norm_output=True
)

Deep VCCA

dcca = DVCCA(
    latent_dims=latent_dims,
    encoders=[encoder_1, encoder_2],
    decoders=[decoder_1, decoder_2],
)
dcca = CCALightning(dcca)
trainer = pl.Trainer(max_epochs=epochs, enable_checkpointing=False)
trainer.fit(dcca, train_loader, val_loader)
plot_reconstruction(dcca.model, train_dataset, 0)
plt.suptitle("DVCCA")
plt.show()
DVCCA, Original View 1, Original View 2, Reconstruction View 1, Reconstruction View 2

Out:

Validation sanity check: 0it [00:00, ?it/s]
Validation sanity check:   0%|          | 0/1 [00:00<?, ?it/s]/home/docs/checkouts/readthedocs.org/user_builds/cca-zoo/envs/v1.10.6/lib/python3.7/site-packages/torch/nn/functional.py:1806: UserWarning: nn.functional.sigmoid is deprecated. Use torch.sigmoid instead.
  warnings.warn("nn.functional.sigmoid is deprecated. Use torch.sigmoid instead.")


/home/docs/checkouts/readthedocs.org/user_builds/cca-zoo/envs/v1.10.6/lib/python3.7/site-packages/pytorch_lightning/trainer/data_loading.py:413: UserWarning: The number of training samples (1) is smaller than the logging interval Trainer(log_every_n_steps=50). Set a lower value for log_every_n_steps if you want to see logs for the training epoch.
  f"The number of training samples ({self.num_training_batches}) is smaller than the logging interval"

Training: 0it [00:00, ?it/s]
Training:   0%|          | 0/2 [00:00<?, ?it/s]
Epoch 0:   0%|          | 0/2 [00:00<?, ?it/s]
Epoch 0:  50%|#####     | 1/2 [00:00<00:00,  2.28it/s]
Epoch 0:  50%|#####     | 1/2 [00:00<00:00,  2.28it/s, loss=1.82, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 0: 100%|##########| 2/2 [00:00<00:00,  3.33it/s, loss=1.82, v_num=8]


Epoch 0:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.82, v_num=8]
Epoch 1:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.82, v_num=8]
Epoch 1:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.82, v_num=8]
Epoch 1:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.81, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 1: 100%|##########| 2/2 [00:00<00:00,  3.44it/s, loss=1.81, v_num=8]


Epoch 1:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.81, v_num=8]
Epoch 2:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.81, v_num=8]
Epoch 2:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.81, v_num=8]
Epoch 2:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.8, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 2: 100%|##########| 2/2 [00:00<00:00,  3.42it/s, loss=1.8, v_num=8]


Epoch 2:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.8, v_num=8]
Epoch 3:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.8, v_num=8]
Epoch 3:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=1.8, v_num=8]
Epoch 3:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=1.79, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 3: 100%|##########| 2/2 [00:00<00:00,  3.41it/s, loss=1.79, v_num=8]


Epoch 3:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.79, v_num=8]
Epoch 4:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.79, v_num=8]
Epoch 4:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=1.79, v_num=8]
Epoch 4:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=1.78, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 4: 100%|##########| 2/2 [00:00<00:00,  3.41it/s, loss=1.78, v_num=8]


Epoch 4:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.78, v_num=8]
Epoch 5:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.78, v_num=8]
Epoch 5:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.78, v_num=8]
Epoch 5:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.77, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 5: 100%|##########| 2/2 [00:00<00:00,  3.43it/s, loss=1.77, v_num=8]


Epoch 5:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.77, v_num=8]
Epoch 6:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.77, v_num=8]
Epoch 6:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.77, v_num=8]
Epoch 6:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.77, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 6: 100%|##########| 2/2 [00:00<00:00,  3.41it/s, loss=1.77, v_num=8]


Epoch 6:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.77, v_num=8]
Epoch 7:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.77, v_num=8]
Epoch 7:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.77, v_num=8]
Epoch 7:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.76, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 7: 100%|##########| 2/2 [00:00<00:00,  3.42it/s, loss=1.76, v_num=8]


Epoch 7:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.76, v_num=8]
Epoch 8:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.76, v_num=8]
Epoch 8:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=1.76, v_num=8]
Epoch 8:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=1.75, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 8: 100%|##########| 2/2 [00:00<00:00,  3.40it/s, loss=1.75, v_num=8]


Epoch 8:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.75, v_num=8]
Epoch 9:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.75, v_num=8]
Epoch 9:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=1.75, v_num=8]
Epoch 9:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=1.74, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 9: 100%|##########| 2/2 [00:00<00:00,  3.39it/s, loss=1.74, v_num=8]


Epoch 9:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.74, v_num=8]
Epoch 10:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.74, v_num=8]
Epoch 10:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.74, v_num=8]
Epoch 10:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=1.73, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 10: 100%|##########| 2/2 [00:00<00:00,  3.41it/s, loss=1.73, v_num=8]


Epoch 10:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.73, v_num=8]
Epoch 11:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.73, v_num=8]
Epoch 11:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=1.73, v_num=8]
Epoch 11:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=1.73, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 11: 100%|##########| 2/2 [00:00<00:00,  3.40it/s, loss=1.73, v_num=8]


Epoch 11:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.73, v_num=8]
Epoch 12:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.73, v_num=8]
Epoch 12:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.73, v_num=8]
Epoch 12:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.72, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 12: 100%|##########| 2/2 [00:00<00:00,  3.42it/s, loss=1.72, v_num=8]


Epoch 12:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.72, v_num=8]
Epoch 13:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.72, v_num=8]
Epoch 13:  50%|#####     | 1/2 [00:00<00:00,  2.39it/s, loss=1.72, v_num=8]
Epoch 13:  50%|#####     | 1/2 [00:00<00:00,  2.39it/s, loss=1.71, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 13: 100%|##########| 2/2 [00:00<00:00,  3.44it/s, loss=1.71, v_num=8]


Epoch 13:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.71, v_num=8]
Epoch 14:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.71, v_num=8]
Epoch 14:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.71, v_num=8]
Epoch 14:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.71, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 14: 100%|##########| 2/2 [00:00<00:00,  3.43it/s, loss=1.71, v_num=8]


Epoch 14:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.71, v_num=8]
Epoch 15:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.71, v_num=8]
Epoch 15:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.71, v_num=8]
Epoch 15:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.7, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 15: 100%|##########| 2/2 [00:00<00:00,  3.42it/s, loss=1.7, v_num=8]


Epoch 15:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.7, v_num=8]
Epoch 16:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.7, v_num=8]
Epoch 16:  50%|#####     | 1/2 [00:00<00:00,  1.94it/s, loss=1.7, v_num=8]
Epoch 16:  50%|#####     | 1/2 [00:00<00:00,  1.94it/s, loss=1.69, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 16: 100%|##########| 2/2 [00:00<00:00,  2.95it/s, loss=1.69, v_num=8]


Epoch 16:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.69, v_num=8]
Epoch 17:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.69, v_num=8]
Epoch 17:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.69, v_num=8]
Epoch 17:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.69, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 17: 100%|##########| 2/2 [00:00<00:00,  3.43it/s, loss=1.69, v_num=8]


Epoch 17:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.69, v_num=8]
Epoch 18:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.69, v_num=8]
Epoch 18:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.69, v_num=8]
Epoch 18:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.68, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 18: 100%|##########| 2/2 [00:00<00:00,  3.44it/s, loss=1.68, v_num=8]


Epoch 18:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.68, v_num=8]
Epoch 19:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.68, v_num=8]
Epoch 19:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.68, v_num=8]
Epoch 19:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.68, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 19: 100%|##########| 2/2 [00:00<00:00,  3.42it/s, loss=1.68, v_num=8]


Epoch 19:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.68, v_num=8]
Epoch 20:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.68, v_num=8]
Epoch 20:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.68, v_num=8]
Epoch 20:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.66, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 20: 100%|##########| 2/2 [00:00<00:00,  3.43it/s, loss=1.66, v_num=8]


Epoch 20:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.66, v_num=8]
Epoch 21:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.66, v_num=8]
Epoch 21:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.66, v_num=8]
Epoch 21:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.65, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 21: 100%|##########| 2/2 [00:00<00:00,  3.43it/s, loss=1.65, v_num=8]


Epoch 21:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.65, v_num=8]
Epoch 22:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.65, v_num=8]
Epoch 22:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.65, v_num=8]
Epoch 22:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.64, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 22: 100%|##########| 2/2 [00:00<00:00,  3.43it/s, loss=1.64, v_num=8]


Epoch 22:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.64, v_num=8]
Epoch 23:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.64, v_num=8]
Epoch 23:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.64, v_num=8]
Epoch 23:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.63, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 23: 100%|##########| 2/2 [00:00<00:00,  3.43it/s, loss=1.63, v_num=8]


Epoch 23:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.63, v_num=8]
Epoch 24:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.63, v_num=8]
Epoch 24:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.63, v_num=8]
Epoch 24:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.61, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 24: 100%|##########| 2/2 [00:00<00:00,  3.44it/s, loss=1.61, v_num=8]


Epoch 24:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.61, v_num=8]
Epoch 25:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.61, v_num=8]
Epoch 25:  50%|#####     | 1/2 [00:00<00:00,  2.39it/s, loss=1.61, v_num=8]
Epoch 25:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.6, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 25: 100%|##########| 2/2 [00:00<00:00,  3.44it/s, loss=1.6, v_num=8]


Epoch 25:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.6, v_num=8]
Epoch 26:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.6, v_num=8]
Epoch 26:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.6, v_num=8]
Epoch 26:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.59, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 26: 100%|##########| 2/2 [00:00<00:00,  3.44it/s, loss=1.59, v_num=8]


Epoch 26:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.59, v_num=8]
Epoch 27:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.59, v_num=8]
Epoch 27:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.59, v_num=8]
Epoch 27:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.58, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 27: 100%|##########| 2/2 [00:00<00:00,  3.43it/s, loss=1.58, v_num=8]


Epoch 27:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.58, v_num=8]
Epoch 28:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.58, v_num=8]
Epoch 28:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.58, v_num=8]
Epoch 28:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.57, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 28: 100%|##########| 2/2 [00:00<00:00,  3.43it/s, loss=1.57, v_num=8]


Epoch 28:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.57, v_num=8]
Epoch 29:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.57, v_num=8]
Epoch 29:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.57, v_num=8]
Epoch 29:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.57, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 29: 100%|##########| 2/2 [00:00<00:00,  3.43it/s, loss=1.57, v_num=8]


Epoch 29:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.57, v_num=8]
Epoch 30:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.57, v_num=8]
Epoch 30:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.57, v_num=8]
Epoch 30:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.56, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 30: 100%|##########| 2/2 [00:00<00:00,  3.43it/s, loss=1.56, v_num=8]


Epoch 30:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.56, v_num=8]
Epoch 31:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.56, v_num=8]
Epoch 31:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.56, v_num=8]
Epoch 31:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.55, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 31: 100%|##########| 2/2 [00:00<00:00,  3.43it/s, loss=1.55, v_num=8]


Epoch 31:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.55, v_num=8]
Epoch 32:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.55, v_num=8]
Epoch 32:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.55, v_num=8]
Epoch 32:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.54, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 32: 100%|##########| 2/2 [00:00<00:00,  3.43it/s, loss=1.54, v_num=8]


Epoch 32:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.54, v_num=8]
Epoch 33:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.54, v_num=8]
Epoch 33:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.54, v_num=8]
Epoch 33:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=1.53, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 33: 100%|##########| 2/2 [00:00<00:00,  3.41it/s, loss=1.53, v_num=8]


Epoch 33:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.53, v_num=8]
Epoch 34:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.53, v_num=8]
Epoch 34:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.53, v_num=8]
Epoch 34:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.53, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 34: 100%|##########| 2/2 [00:00<00:00,  3.44it/s, loss=1.53, v_num=8]


Epoch 34:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.53, v_num=8]
Epoch 35:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.53, v_num=8]
Epoch 35:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.53, v_num=8]
Epoch 35:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=1.52, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 35: 100%|##########| 2/2 [00:00<00:00,  3.41it/s, loss=1.52, v_num=8]


Epoch 35:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.52, v_num=8]
Epoch 36:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.52, v_num=8]
Epoch 36:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.52, v_num=8]
Epoch 36:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=1.51, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 36: 100%|##########| 2/2 [00:00<00:00,  3.43it/s, loss=1.51, v_num=8]


Epoch 36:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.51, v_num=8]
Epoch 37:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.51, v_num=8]
Epoch 37:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.51, v_num=8]
Epoch 37:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.51, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 37: 100%|##########| 2/2 [00:00<00:00,  3.43it/s, loss=1.51, v_num=8]


Epoch 37:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.51, v_num=8]
Epoch 38:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.51, v_num=8]
Epoch 38:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.51, v_num=8]
Epoch 38:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.5, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 38: 100%|##########| 2/2 [00:00<00:00,  3.42it/s, loss=1.5, v_num=8]


Epoch 38:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.5, v_num=8]
Epoch 39:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.5, v_num=8]
Epoch 39:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.5, v_num=8]
Epoch 39:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.5, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 39: 100%|##########| 2/2 [00:00<00:00,  3.43it/s, loss=1.5, v_num=8]


Epoch 39:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.5, v_num=8]
Epoch 40:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.5, v_num=8]
Epoch 40:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.5, v_num=8]
Epoch 40:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.49, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 40: 100%|##########| 2/2 [00:00<00:00,  3.43it/s, loss=1.49, v_num=8]


Epoch 40:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.49, v_num=8]
Epoch 41:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.49, v_num=8]
Epoch 41:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.49, v_num=8]
Epoch 41:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.49, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 41: 100%|##########| 2/2 [00:00<00:00,  3.43it/s, loss=1.49, v_num=8]


Epoch 41:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.49, v_num=8]
Epoch 42:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.49, v_num=8]
Epoch 42:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.49, v_num=8]
Epoch 42:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.48, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 42: 100%|##########| 2/2 [00:00<00:00,  3.42it/s, loss=1.48, v_num=8]


Epoch 42:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.48, v_num=8]
Epoch 43:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.48, v_num=8]
Epoch 43:  50%|#####     | 1/2 [00:00<00:00,  2.39it/s, loss=1.48, v_num=8]
Epoch 43:  50%|#####     | 1/2 [00:00<00:00,  2.39it/s, loss=1.48, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 43: 100%|##########| 2/2 [00:00<00:00,  3.44it/s, loss=1.48, v_num=8]


Epoch 43:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.48, v_num=8]
Epoch 44:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.48, v_num=8]
Epoch 44:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.48, v_num=8]
Epoch 44:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.47, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 44: 100%|##########| 2/2 [00:00<00:00,  3.42it/s, loss=1.47, v_num=8]


Epoch 44:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.47, v_num=8]
Epoch 45:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.47, v_num=8]
Epoch 45:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.47, v_num=8]
Epoch 45:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.47, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 45: 100%|##########| 2/2 [00:00<00:00,  3.40it/s, loss=1.47, v_num=8]


Epoch 45:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.47, v_num=8]
Epoch 46:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.47, v_num=8]
Epoch 46:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.47, v_num=8]
Epoch 46:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.47, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 46: 100%|##########| 2/2 [00:00<00:00,  3.42it/s, loss=1.47, v_num=8]


Epoch 46:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.47, v_num=8]
Epoch 47:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.47, v_num=8]
Epoch 47:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.47, v_num=8]
Epoch 47:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.46, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 47: 100%|##########| 2/2 [00:00<00:00,  3.44it/s, loss=1.46, v_num=8]


Epoch 47:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.46, v_num=8]
Epoch 48:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.46, v_num=8]
Epoch 48:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=1.46, v_num=8]
Epoch 48:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=1.46, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 48: 100%|##########| 2/2 [00:00<00:00,  3.42it/s, loss=1.46, v_num=8]


Epoch 48:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.46, v_num=8]
Epoch 49:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.46, v_num=8]
Epoch 49:  50%|#####     | 1/2 [00:00<00:00,  2.38it/s, loss=1.46, v_num=8]
Epoch 49:  50%|#####     | 1/2 [00:00<00:00,  2.37it/s, loss=1.46, v_num=8]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 49: 100%|##########| 2/2 [00:00<00:00,  3.42it/s, loss=1.46, v_num=8]


Epoch 49: 100%|##########| 2/2 [00:00<00:00,  2.09it/s, loss=1.46, v_num=8]

Deep VCCA (private) We need to add additional private encoders and change (double) the dimensionality of the decoders.

private_encoder_1 = architectures.Encoder(
    latent_dims=latent_dims, feature_size=784, variational=True
)
private_encoder_2 = architectures.Encoder(
    latent_dims=latent_dims, feature_size=784, variational=True
)
private_decoder_1 = architectures.Decoder(latent_dims=2 * latent_dims, feature_size=784)
private_decoder_2 = architectures.Decoder(latent_dims=2 * latent_dims, feature_size=784)
dcca = DVCCA(
    latent_dims=latent_dims,
    encoders=[encoder_1, encoder_2],
    decoders=[private_decoder_1, private_decoder_2],
    private_encoders=[private_encoder_1, private_encoder_2],
)
dcca = CCALightning(dcca)
trainer = pl.Trainer(max_epochs=epochs, enable_checkpointing=False)
trainer.fit(dcca, train_loader, val_loader)
plot_reconstruction(dcca.model, train_dataset, 0)
plt.suptitle("DVCCA Private")
plt.show()
DVCCA Private, Original View 1, Original View 2, Reconstruction View 1, Reconstruction View 2

Out:

Validation sanity check: 0it [00:00, ?it/s]
Validation sanity check:   0%|          | 0/1 [00:00<?, ?it/s]/home/docs/checkouts/readthedocs.org/user_builds/cca-zoo/envs/v1.10.6/lib/python3.7/site-packages/torch/nn/functional.py:1806: UserWarning: nn.functional.sigmoid is deprecated. Use torch.sigmoid instead.
  warnings.warn("nn.functional.sigmoid is deprecated. Use torch.sigmoid instead.")


/home/docs/checkouts/readthedocs.org/user_builds/cca-zoo/envs/v1.10.6/lib/python3.7/site-packages/pytorch_lightning/trainer/data_loading.py:413: UserWarning: The number of training samples (1) is smaller than the logging interval Trainer(log_every_n_steps=50). Set a lower value for log_every_n_steps if you want to see logs for the training epoch.
  f"The number of training samples ({self.num_training_batches}) is smaller than the logging interval"

Training: 0it [00:00, ?it/s]
Training:   0%|          | 0/2 [00:00<?, ?it/s]
Epoch 0:   0%|          | 0/2 [00:00<?, ?it/s]
Epoch 0:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s]
Epoch 0:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=1.11e+03, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 0: 100%|##########| 2/2 [00:00<00:00,  3.39it/s, loss=1.11e+03, v_num=9]


Epoch 0:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.11e+03, v_num=9]
Epoch 1:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.11e+03, v_num=9]
Epoch 1:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=1.11e+03, v_num=9]
Epoch 1:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=1.09e+03, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 1: 100%|##########| 2/2 [00:00<00:00,  3.36it/s, loss=1.09e+03, v_num=9]


Epoch 1:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.09e+03, v_num=9]
Epoch 2:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.09e+03, v_num=9]
Epoch 2:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=1.09e+03, v_num=9]
Epoch 2:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=1.07e+03, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 2: 100%|##########| 2/2 [00:00<00:00,  3.35it/s, loss=1.07e+03, v_num=9]


Epoch 2:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.07e+03, v_num=9]
Epoch 3:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.07e+03, v_num=9]
Epoch 3:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=1.07e+03, v_num=9]
Epoch 3:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=1.06e+03, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 3: 100%|##########| 2/2 [00:00<00:00,  3.36it/s, loss=1.06e+03, v_num=9]


Epoch 3:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.06e+03, v_num=9]
Epoch 4:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.06e+03, v_num=9]
Epoch 4:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=1.06e+03, v_num=9]
Epoch 4:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=1.04e+03, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 4: 100%|##########| 2/2 [00:00<00:00,  3.40it/s, loss=1.04e+03, v_num=9]


Epoch 4:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.04e+03, v_num=9]
Epoch 5:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.04e+03, v_num=9]
Epoch 5:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=1.04e+03, v_num=9]
Epoch 5:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=1.03e+03, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 5: 100%|##########| 2/2 [00:00<00:00,  3.39it/s, loss=1.03e+03, v_num=9]


Epoch 5:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.03e+03, v_num=9]
Epoch 6:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.03e+03, v_num=9]
Epoch 6:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=1.03e+03, v_num=9]
Epoch 6:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=1.01e+03, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 6: 100%|##########| 2/2 [00:00<00:00,  3.40it/s, loss=1.01e+03, v_num=9]


Epoch 6:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.01e+03, v_num=9]
Epoch 7:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.01e+03, v_num=9]
Epoch 7:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=1.01e+03, v_num=9]
Epoch 7:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=996, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 7: 100%|##########| 2/2 [00:00<00:00,  3.40it/s, loss=996, v_num=9]


Epoch 7:   0%|          | 0/2 [00:00<?, ?it/s, loss=996, v_num=9]
Epoch 8:   0%|          | 0/2 [00:00<?, ?it/s, loss=996, v_num=9]
Epoch 8:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=996, v_num=9]
Epoch 8:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=982, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 8: 100%|##########| 2/2 [00:00<00:00,  3.40it/s, loss=982, v_num=9]


Epoch 8:   0%|          | 0/2 [00:00<?, ?it/s, loss=982, v_num=9]
Epoch 9:   0%|          | 0/2 [00:00<?, ?it/s, loss=982, v_num=9]
Epoch 9:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=982, v_num=9]
Epoch 9:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=968, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 9: 100%|##########| 2/2 [00:00<00:00,  3.41it/s, loss=968, v_num=9]


Epoch 9:   0%|          | 0/2 [00:00<?, ?it/s, loss=968, v_num=9]
Epoch 10:   0%|          | 0/2 [00:00<?, ?it/s, loss=968, v_num=9]
Epoch 10:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=968, v_num=9]
Epoch 10:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=955, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 10: 100%|##########| 2/2 [00:00<00:00,  3.40it/s, loss=955, v_num=9]


Epoch 10:   0%|          | 0/2 [00:00<?, ?it/s, loss=955, v_num=9]
Epoch 11:   0%|          | 0/2 [00:00<?, ?it/s, loss=955, v_num=9]
Epoch 11:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=955, v_num=9]
Epoch 11:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=942, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 11: 100%|##########| 2/2 [00:00<00:00,  3.39it/s, loss=942, v_num=9]


Epoch 11:   0%|          | 0/2 [00:00<?, ?it/s, loss=942, v_num=9]
Epoch 12:   0%|          | 0/2 [00:00<?, ?it/s, loss=942, v_num=9]
Epoch 12:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=942, v_num=9]
Epoch 12:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=930, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 12: 100%|##########| 2/2 [00:00<00:00,  3.38it/s, loss=930, v_num=9]


Epoch 12:   0%|          | 0/2 [00:00<?, ?it/s, loss=930, v_num=9]
Epoch 13:   0%|          | 0/2 [00:00<?, ?it/s, loss=930, v_num=9]
Epoch 13:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=930, v_num=9]
Epoch 13:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=918, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 13: 100%|##########| 2/2 [00:00<00:00,  3.38it/s, loss=918, v_num=9]


Epoch 13:   0%|          | 0/2 [00:00<?, ?it/s, loss=918, v_num=9]
Epoch 14:   0%|          | 0/2 [00:00<?, ?it/s, loss=918, v_num=9]
Epoch 14:  50%|#####     | 1/2 [00:00<00:00,  2.30it/s, loss=918, v_num=9]
Epoch 14:  50%|#####     | 1/2 [00:00<00:00,  2.30it/s, loss=907, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 14: 100%|##########| 2/2 [00:00<00:00,  3.34it/s, loss=907, v_num=9]


Epoch 14:   0%|          | 0/2 [00:00<?, ?it/s, loss=907, v_num=9]
Epoch 15:   0%|          | 0/2 [00:00<?, ?it/s, loss=907, v_num=9]
Epoch 15:  50%|#####     | 1/2 [00:00<00:00,  2.29it/s, loss=907, v_num=9]
Epoch 15:  50%|#####     | 1/2 [00:00<00:00,  2.28it/s, loss=896, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 15: 100%|##########| 2/2 [00:00<00:00,  3.33it/s, loss=896, v_num=9]


Epoch 15:   0%|          | 0/2 [00:00<?, ?it/s, loss=896, v_num=9]
Epoch 16:   0%|          | 0/2 [00:00<?, ?it/s, loss=896, v_num=9]
Epoch 16:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=896, v_num=9]
Epoch 16:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=886, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 16: 100%|##########| 2/2 [00:00<00:00,  3.36it/s, loss=886, v_num=9]


Epoch 16:   0%|          | 0/2 [00:00<?, ?it/s, loss=886, v_num=9]
Epoch 17:   0%|          | 0/2 [00:00<?, ?it/s, loss=886, v_num=9]
Epoch 17:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=886, v_num=9]
Epoch 17:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=876, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 17: 100%|##########| 2/2 [00:00<00:00,  3.39it/s, loss=876, v_num=9]


Epoch 17:   0%|          | 0/2 [00:00<?, ?it/s, loss=876, v_num=9]
Epoch 18:   0%|          | 0/2 [00:00<?, ?it/s, loss=876, v_num=9]
Epoch 18:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=876, v_num=9]
Epoch 18:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=866, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 18: 100%|##########| 2/2 [00:00<00:00,  3.39it/s, loss=866, v_num=9]


Epoch 18:   0%|          | 0/2 [00:00<?, ?it/s, loss=866, v_num=9]
Epoch 19:   0%|          | 0/2 [00:00<?, ?it/s, loss=866, v_num=9]
Epoch 19:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=866, v_num=9]
Epoch 19:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=856, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 19: 100%|##########| 2/2 [00:00<00:00,  3.39it/s, loss=856, v_num=9]


Epoch 19:   0%|          | 0/2 [00:00<?, ?it/s, loss=856, v_num=9]
Epoch 20:   0%|          | 0/2 [00:00<?, ?it/s, loss=856, v_num=9]
Epoch 20:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=856, v_num=9]
Epoch 20:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=834, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 20: 100%|##########| 2/2 [00:00<00:00,  3.35it/s, loss=834, v_num=9]


Epoch 20:   0%|          | 0/2 [00:00<?, ?it/s, loss=834, v_num=9]
Epoch 21:   0%|          | 0/2 [00:00<?, ?it/s, loss=834, v_num=9]
Epoch 21:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=834, v_num=9]
Epoch 21:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=813, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 21: 100%|##########| 2/2 [00:00<00:00,  3.39it/s, loss=813, v_num=9]


Epoch 21:   0%|          | 0/2 [00:00<?, ?it/s, loss=813, v_num=9]
Epoch 22:   0%|          | 0/2 [00:00<?, ?it/s, loss=813, v_num=9]
Epoch 22:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=813, v_num=9]
Epoch 22:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=793, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 22: 100%|##########| 2/2 [00:00<00:00,  3.40it/s, loss=793, v_num=9]


Epoch 22:   0%|          | 0/2 [00:00<?, ?it/s, loss=793, v_num=9]
Epoch 23:   0%|          | 0/2 [00:00<?, ?it/s, loss=793, v_num=9]
Epoch 23:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=793, v_num=9]
Epoch 23:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=775, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 23: 100%|##########| 2/2 [00:00<00:00,  3.35it/s, loss=775, v_num=9]


Epoch 23:   0%|          | 0/2 [00:00<?, ?it/s, loss=775, v_num=9]
Epoch 24:   0%|          | 0/2 [00:00<?, ?it/s, loss=775, v_num=9]
Epoch 24:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=775, v_num=9]
Epoch 24:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=757, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 24: 100%|##########| 2/2 [00:00<00:00,  3.39it/s, loss=757, v_num=9]


Epoch 24:   0%|          | 0/2 [00:00<?, ?it/s, loss=757, v_num=9]
Epoch 25:   0%|          | 0/2 [00:00<?, ?it/s, loss=757, v_num=9]
Epoch 25:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=757, v_num=9]
Epoch 25:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=741, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 25: 100%|##########| 2/2 [00:00<00:00,  3.39it/s, loss=741, v_num=9]


Epoch 25:   0%|          | 0/2 [00:00<?, ?it/s, loss=741, v_num=9]
Epoch 26:   0%|          | 0/2 [00:00<?, ?it/s, loss=741, v_num=9]
Epoch 26:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=741, v_num=9]
Epoch 26:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=726, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 26: 100%|##########| 2/2 [00:00<00:00,  3.39it/s, loss=726, v_num=9]


Epoch 26:   0%|          | 0/2 [00:00<?, ?it/s, loss=726, v_num=9]
Epoch 27:   0%|          | 0/2 [00:00<?, ?it/s, loss=726, v_num=9]
Epoch 27:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=726, v_num=9]
Epoch 27:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=711, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 27: 100%|##########| 2/2 [00:00<00:00,  3.40it/s, loss=711, v_num=9]


Epoch 27:   0%|          | 0/2 [00:00<?, ?it/s, loss=711, v_num=9]
Epoch 28:   0%|          | 0/2 [00:00<?, ?it/s, loss=711, v_num=9]
Epoch 28:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=711, v_num=9]
Epoch 28:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=698, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 28: 100%|##########| 2/2 [00:00<00:00,  3.35it/s, loss=698, v_num=9]


Epoch 28:   0%|          | 0/2 [00:00<?, ?it/s, loss=698, v_num=9]
Epoch 29:   0%|          | 0/2 [00:00<?, ?it/s, loss=698, v_num=9]
Epoch 29:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=698, v_num=9]
Epoch 29:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=685, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 29: 100%|##########| 2/2 [00:00<00:00,  3.39it/s, loss=685, v_num=9]


Epoch 29:   0%|          | 0/2 [00:00<?, ?it/s, loss=685, v_num=9]
Epoch 30:   0%|          | 0/2 [00:00<?, ?it/s, loss=685, v_num=9]
Epoch 30:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=685, v_num=9]
Epoch 30:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=673, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 30: 100%|##########| 2/2 [00:00<00:00,  3.36it/s, loss=673, v_num=9]


Epoch 30:   0%|          | 0/2 [00:00<?, ?it/s, loss=673, v_num=9]
Epoch 31:   0%|          | 0/2 [00:00<?, ?it/s, loss=673, v_num=9]
Epoch 31:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=673, v_num=9]
Epoch 31:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=663, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 31: 100%|##########| 2/2 [00:00<00:00,  3.40it/s, loss=663, v_num=9]


Epoch 31:   0%|          | 0/2 [00:00<?, ?it/s, loss=663, v_num=9]
Epoch 32:   0%|          | 0/2 [00:00<?, ?it/s, loss=663, v_num=9]
Epoch 32:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=663, v_num=9]
Epoch 32:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=652, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 32: 100%|##########| 2/2 [00:00<00:00,  3.40it/s, loss=652, v_num=9]


Epoch 32:   0%|          | 0/2 [00:00<?, ?it/s, loss=652, v_num=9]
Epoch 33:   0%|          | 0/2 [00:00<?, ?it/s, loss=652, v_num=9]
Epoch 33:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=652, v_num=9]
Epoch 33:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=643, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 33: 100%|##########| 2/2 [00:00<00:00,  3.40it/s, loss=643, v_num=9]


Epoch 33:   0%|          | 0/2 [00:00<?, ?it/s, loss=643, v_num=9]
Epoch 34:   0%|          | 0/2 [00:00<?, ?it/s, loss=643, v_num=9]
Epoch 34:  50%|#####     | 1/2 [00:00<00:00,  2.29it/s, loss=643, v_num=9]
Epoch 34:  50%|#####     | 1/2 [00:00<00:00,  2.29it/s, loss=634, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 34: 100%|##########| 2/2 [00:00<00:00,  3.33it/s, loss=634, v_num=9]


Epoch 34:   0%|          | 0/2 [00:00<?, ?it/s, loss=634, v_num=9]
Epoch 35:   0%|          | 0/2 [00:00<?, ?it/s, loss=634, v_num=9]
Epoch 35:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=634, v_num=9]
Epoch 35:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=626, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 35: 100%|##########| 2/2 [00:00<00:00,  3.39it/s, loss=626, v_num=9]


Epoch 35:   0%|          | 0/2 [00:00<?, ?it/s, loss=626, v_num=9]
Epoch 36:   0%|          | 0/2 [00:00<?, ?it/s, loss=626, v_num=9]
Epoch 36:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=626, v_num=9]
Epoch 36:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=618, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 36: 100%|##########| 2/2 [00:00<00:00,  3.38it/s, loss=618, v_num=9]


Epoch 36:   0%|          | 0/2 [00:00<?, ?it/s, loss=618, v_num=9]
Epoch 37:   0%|          | 0/2 [00:00<?, ?it/s, loss=618, v_num=9]
Epoch 37:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=618, v_num=9]
Epoch 37:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=611, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 37: 100%|##########| 2/2 [00:00<00:00,  3.37it/s, loss=611, v_num=9]


Epoch 37:   0%|          | 0/2 [00:00<?, ?it/s, loss=611, v_num=9]
Epoch 38:   0%|          | 0/2 [00:00<?, ?it/s, loss=611, v_num=9]
Epoch 38:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=611, v_num=9]
Epoch 38:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=604, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 38: 100%|##########| 2/2 [00:00<00:00,  3.40it/s, loss=604, v_num=9]


Epoch 38:   0%|          | 0/2 [00:00<?, ?it/s, loss=604, v_num=9]
Epoch 39:   0%|          | 0/2 [00:00<?, ?it/s, loss=604, v_num=9]
Epoch 39:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=604, v_num=9]
Epoch 39:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=598, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 39: 100%|##########| 2/2 [00:00<00:00,  3.35it/s, loss=598, v_num=9]


Epoch 39:   0%|          | 0/2 [00:00<?, ?it/s, loss=598, v_num=9]
Epoch 40:   0%|          | 0/2 [00:00<?, ?it/s, loss=598, v_num=9]
Epoch 40:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=598, v_num=9]
Epoch 40:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=592, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 40: 100%|##########| 2/2 [00:00<00:00,  3.39it/s, loss=592, v_num=9]


Epoch 40:   0%|          | 0/2 [00:00<?, ?it/s, loss=592, v_num=9]
Epoch 41:   0%|          | 0/2 [00:00<?, ?it/s, loss=592, v_num=9]
Epoch 41:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=592, v_num=9]
Epoch 41:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=587, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 41: 100%|##########| 2/2 [00:00<00:00,  3.39it/s, loss=587, v_num=9]


Epoch 41:   0%|          | 0/2 [00:00<?, ?it/s, loss=587, v_num=9]
Epoch 42:   0%|          | 0/2 [00:00<?, ?it/s, loss=587, v_num=9]
Epoch 42:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=587, v_num=9]
Epoch 42:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=582, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 42: 100%|##########| 2/2 [00:00<00:00,  3.39it/s, loss=582, v_num=9]


Epoch 42:   0%|          | 0/2 [00:00<?, ?it/s, loss=582, v_num=9]
Epoch 43:   0%|          | 0/2 [00:00<?, ?it/s, loss=582, v_num=9]
Epoch 43:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=582, v_num=9]
Epoch 43:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=578, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 43: 100%|##########| 2/2 [00:00<00:00,  3.40it/s, loss=578, v_num=9]


Epoch 43:   0%|          | 0/2 [00:00<?, ?it/s, loss=578, v_num=9]
Epoch 44:   0%|          | 0/2 [00:00<?, ?it/s, loss=578, v_num=9]
Epoch 44:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=578, v_num=9]
Epoch 44:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=574, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 44: 100%|##########| 2/2 [00:00<00:00,  3.36it/s, loss=574, v_num=9]


Epoch 44:   0%|          | 0/2 [00:00<?, ?it/s, loss=574, v_num=9]
Epoch 45:   0%|          | 0/2 [00:00<?, ?it/s, loss=574, v_num=9]
Epoch 45:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=574, v_num=9]
Epoch 45:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=570, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 45: 100%|##########| 2/2 [00:00<00:00,  3.37it/s, loss=570, v_num=9]


Epoch 45:   0%|          | 0/2 [00:00<?, ?it/s, loss=570, v_num=9]
Epoch 46:   0%|          | 0/2 [00:00<?, ?it/s, loss=570, v_num=9]
Epoch 46:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=570, v_num=9]
Epoch 46:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=566, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 46: 100%|##########| 2/2 [00:00<00:00,  3.38it/s, loss=566, v_num=9]


Epoch 46:   0%|          | 0/2 [00:00<?, ?it/s, loss=566, v_num=9]
Epoch 47:   0%|          | 0/2 [00:00<?, ?it/s, loss=566, v_num=9]
Epoch 47:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=566, v_num=9]
Epoch 47:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=563, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 47: 100%|##########| 2/2 [00:00<00:00,  3.39it/s, loss=563, v_num=9]


Epoch 47:   0%|          | 0/2 [00:00<?, ?it/s, loss=563, v_num=9]
Epoch 48:   0%|          | 0/2 [00:00<?, ?it/s, loss=563, v_num=9]
Epoch 48:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=563, v_num=9]
Epoch 48:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=560, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 48: 100%|##########| 2/2 [00:00<00:00,  3.37it/s, loss=560, v_num=9]


Epoch 48:   0%|          | 0/2 [00:00<?, ?it/s, loss=560, v_num=9]
Epoch 49:   0%|          | 0/2 [00:00<?, ?it/s, loss=560, v_num=9]
Epoch 49:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=560, v_num=9]
Epoch 49:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=557, v_num=9]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 49: 100%|##########| 2/2 [00:00<00:00,  3.39it/s, loss=557, v_num=9]


Epoch 49: 100%|##########| 2/2 [00:00<00:00,  2.08it/s, loss=557, v_num=9]

DCCAE

encoder_1 = architectures.Encoder(latent_dims=latent_dims, feature_size=784)
encoder_2 = architectures.Encoder(latent_dims=latent_dims, feature_size=784)
dcca = DCCAE(
    latent_dims=latent_dims,
    encoders=[encoder_1, encoder_2],
    decoders=[decoder_1, decoder_2],
)
dcca = CCALightning(dcca)
trainer = pl.Trainer(max_epochs=epochs, enable_checkpointing=False)
trainer.fit(dcca, train_loader, val_loader)
plot_reconstruction(dcca.model, train_dataset, 0)
plt.suptitle("DCCAE")
plt.show()
DCCAE, Original View 1, Original View 2, Reconstruction View 1, Reconstruction View 2

Out:

Validation sanity check: 0it [00:00, ?it/s]
Validation sanity check:   0%|          | 0/1 [00:00<?, ?it/s]

/home/docs/checkouts/readthedocs.org/user_builds/cca-zoo/envs/v1.10.6/lib/python3.7/site-packages/pytorch_lightning/trainer/data_loading.py:413: UserWarning: The number of training samples (1) is smaller than the logging interval Trainer(log_every_n_steps=50). Set a lower value for log_every_n_steps if you want to see logs for the training epoch.
  f"The number of training samples ({self.num_training_batches}) is smaller than the logging interval"

Training: 0it [00:00, ?it/s]
Training:   0%|          | 0/2 [00:00<?, ?it/s]
Epoch 0:   0%|          | 0/2 [00:00<?, ?it/s]
Epoch 0:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s]
Epoch 0:  50%|#####     | 1/2 [00:00<00:00,  2.50it/s, loss=0.272, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 0: 100%|##########| 2/2 [00:00<00:00,  3.58it/s, loss=0.272, v_num=10]


Epoch 0:   0%|          | 0/2 [00:00<?, ?it/s, loss=0.272, v_num=10]
Epoch 1:   0%|          | 0/2 [00:00<?, ?it/s, loss=0.272, v_num=10]
Epoch 1:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=0.272, v_num=10]
Epoch 1:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=0.0207, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 1: 100%|##########| 2/2 [00:00<00:00,  3.59it/s, loss=0.0207, v_num=10]


Epoch 1:   0%|          | 0/2 [00:00<?, ?it/s, loss=0.0207, v_num=10]
Epoch 2:   0%|          | 0/2 [00:00<?, ?it/s, loss=0.0207, v_num=10]
Epoch 2:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=0.0207, v_num=10]
Epoch 2:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-0.215, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 2: 100%|##########| 2/2 [00:00<00:00,  3.60it/s, loss=-0.215, v_num=10]


Epoch 2:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.215, v_num=10]
Epoch 3:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.215, v_num=10]
Epoch 3:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-0.215, v_num=10]
Epoch 3:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-0.363, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 3: 100%|##########| 2/2 [00:00<00:00,  3.60it/s, loss=-0.363, v_num=10]


Epoch 3:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.363, v_num=10]
Epoch 4:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.363, v_num=10]
Epoch 4:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-0.363, v_num=10]
Epoch 4:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-0.446, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 4: 100%|##########| 2/2 [00:00<00:00,  3.60it/s, loss=-0.446, v_num=10]


Epoch 4:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.446, v_num=10]
Epoch 5:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.446, v_num=10]
Epoch 5:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-0.446, v_num=10]
Epoch 5:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-0.518, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 5: 100%|##########| 2/2 [00:00<00:00,  3.60it/s, loss=-0.518, v_num=10]


Epoch 5:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.518, v_num=10]
Epoch 6:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.518, v_num=10]
Epoch 6:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-0.518, v_num=10]
Epoch 6:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-0.578, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 6: 100%|##########| 2/2 [00:00<00:00,  3.59it/s, loss=-0.578, v_num=10]


Epoch 6:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.578, v_num=10]
Epoch 7:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.578, v_num=10]
Epoch 7:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-0.578, v_num=10]
Epoch 7:  50%|#####     | 1/2 [00:00<00:00,  2.50it/s, loss=-0.629, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 7: 100%|##########| 2/2 [00:00<00:00,  3.58it/s, loss=-0.629, v_num=10]


Epoch 7:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.629, v_num=10]
Epoch 8:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.629, v_num=10]
Epoch 8:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-0.629, v_num=10]
Epoch 8:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-0.673, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 8: 100%|##########| 2/2 [00:00<00:00,  3.59it/s, loss=-0.673, v_num=10]


Epoch 8:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.673, v_num=10]
Epoch 9:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.673, v_num=10]
Epoch 9:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-0.673, v_num=10]
Epoch 9:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-0.703, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 9: 100%|##########| 2/2 [00:00<00:00,  3.60it/s, loss=-0.703, v_num=10]


Epoch 9:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.703, v_num=10]
Epoch 10:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.703, v_num=10]
Epoch 10:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-0.703, v_num=10]
Epoch 10:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-0.736, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 10: 100%|##########| 2/2 [00:00<00:00,  3.59it/s, loss=-0.736, v_num=10]


Epoch 10:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.736, v_num=10]
Epoch 11:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.736, v_num=10]
Epoch 11:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-0.736, v_num=10]
Epoch 11:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-0.763, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 11: 100%|##########| 2/2 [00:00<00:00,  3.59it/s, loss=-0.763, v_num=10]


Epoch 11:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.763, v_num=10]
Epoch 12:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.763, v_num=10]
Epoch 12:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-0.763, v_num=10]
Epoch 12:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-0.788, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 12: 100%|##########| 2/2 [00:00<00:00,  3.59it/s, loss=-0.788, v_num=10]


Epoch 12:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.788, v_num=10]
Epoch 13:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.788, v_num=10]
Epoch 13:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-0.788, v_num=10]
Epoch 13:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-0.81, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 13: 100%|##########| 2/2 [00:00<00:00,  3.60it/s, loss=-0.81, v_num=10]


Epoch 13:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.81, v_num=10]
Epoch 14:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.81, v_num=10]
Epoch 14:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-0.81, v_num=10]
Epoch 14:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-0.832, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 14: 100%|##########| 2/2 [00:00<00:00,  3.59it/s, loss=-0.832, v_num=10]


Epoch 14:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.832, v_num=10]
Epoch 15:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.832, v_num=10]
Epoch 15:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-0.832, v_num=10]
Epoch 15:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-0.85, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 15: 100%|##########| 2/2 [00:00<00:00,  3.59it/s, loss=-0.85, v_num=10]


Epoch 15:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.85, v_num=10]
Epoch 16:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.85, v_num=10]
Epoch 16:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-0.85, v_num=10]
Epoch 16:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-0.868, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 16: 100%|##########| 2/2 [00:00<00:00,  3.59it/s, loss=-0.868, v_num=10]


Epoch 16:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.868, v_num=10]
Epoch 17:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.868, v_num=10]
Epoch 17:  50%|#####     | 1/2 [00:00<00:00,  2.50it/s, loss=-0.868, v_num=10]
Epoch 17:  50%|#####     | 1/2 [00:00<00:00,  2.50it/s, loss=-0.883, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 17: 100%|##########| 2/2 [00:00<00:00,  3.58it/s, loss=-0.883, v_num=10]


Epoch 17:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.883, v_num=10]
Epoch 18:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.883, v_num=10]
Epoch 18:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-0.883, v_num=10]
Epoch 18:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-0.897, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 18: 100%|##########| 2/2 [00:00<00:00,  3.58it/s, loss=-0.897, v_num=10]


Epoch 18:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.897, v_num=10]
Epoch 19:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.897, v_num=10]
Epoch 19:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-0.897, v_num=10]
Epoch 19:  50%|#####     | 1/2 [00:00<00:00,  2.50it/s, loss=-0.909, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 19: 100%|##########| 2/2 [00:00<00:00,  3.58it/s, loss=-0.909, v_num=10]


Epoch 19:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.909, v_num=10]
Epoch 20:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.909, v_num=10]
Epoch 20:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-0.909, v_num=10]
Epoch 20:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-0.982, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 20: 100%|##########| 2/2 [00:00<00:00,  3.59it/s, loss=-0.982, v_num=10]


Epoch 20:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.982, v_num=10]
Epoch 21:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.982, v_num=10]
Epoch 21:  50%|#####     | 1/2 [00:00<00:00,  2.50it/s, loss=-0.982, v_num=10]
Epoch 21:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-1.03, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 21: 100%|##########| 2/2 [00:00<00:00,  3.57it/s, loss=-1.03, v_num=10]


Epoch 21:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.03, v_num=10]
Epoch 22:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.03, v_num=10]
Epoch 22:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.03, v_num=10]
Epoch 22:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.05, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 22: 100%|##########| 2/2 [00:00<00:00,  3.61it/s, loss=-1.05, v_num=10]


Epoch 22:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.05, v_num=10]
Epoch 23:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.05, v_num=10]
Epoch 23:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.05, v_num=10]
Epoch 23:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.07, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 23: 100%|##########| 2/2 [00:00<00:00,  3.59it/s, loss=-1.07, v_num=10]


Epoch 23:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.07, v_num=10]
Epoch 24:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.07, v_num=10]
Epoch 24:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.07, v_num=10]
Epoch 24:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.1, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 24: 100%|##########| 2/2 [00:00<00:00,  3.61it/s, loss=-1.1, v_num=10]


Epoch 24:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.1, v_num=10]
Epoch 25:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.1, v_num=10]
Epoch 25:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.1, v_num=10]
Epoch 25:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.11, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 25: 100%|##########| 2/2 [00:00<00:00,  3.61it/s, loss=-1.11, v_num=10]


Epoch 25:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.11, v_num=10]
Epoch 26:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.11, v_num=10]
Epoch 26:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.11, v_num=10]
Epoch 26:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.13, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 26: 100%|##########| 2/2 [00:00<00:00,  3.60it/s, loss=-1.13, v_num=10]


Epoch 26:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.13, v_num=10]
Epoch 27:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.13, v_num=10]
Epoch 27:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.13, v_num=10]
Epoch 27:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.14, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 27: 100%|##########| 2/2 [00:00<00:00,  3.59it/s, loss=-1.14, v_num=10]


Epoch 27:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.14, v_num=10]
Epoch 28:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.14, v_num=10]
Epoch 28:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.14, v_num=10]
Epoch 28:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.15, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 28: 100%|##########| 2/2 [00:00<00:00,  3.58it/s, loss=-1.15, v_num=10]


Epoch 28:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.15, v_num=10]
Epoch 29:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.15, v_num=10]
Epoch 29:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.15, v_num=10]
Epoch 29:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.17, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 29: 100%|##########| 2/2 [00:00<00:00,  3.58it/s, loss=-1.17, v_num=10]


Epoch 29:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.17, v_num=10]
Epoch 30:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.17, v_num=10]
Epoch 30:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.17, v_num=10]
Epoch 30:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.17, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 30: 100%|##########| 2/2 [00:00<00:00,  3.59it/s, loss=-1.17, v_num=10]


Epoch 30:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.17, v_num=10]
Epoch 31:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.17, v_num=10]
Epoch 31:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.17, v_num=10]
Epoch 31:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.18, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 31: 100%|##########| 2/2 [00:00<00:00,  3.60it/s, loss=-1.18, v_num=10]


Epoch 31:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.18, v_num=10]
Epoch 32:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.18, v_num=10]
Epoch 32:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.18, v_num=10]
Epoch 32:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.19, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 32: 100%|##########| 2/2 [00:00<00:00,  3.60it/s, loss=-1.19, v_num=10]


Epoch 32:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.19, v_num=10]
Epoch 33:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.19, v_num=10]
Epoch 33:  50%|#####     | 1/2 [00:00<00:00,  2.53it/s, loss=-1.19, v_num=10]
Epoch 33:  50%|#####     | 1/2 [00:00<00:00,  2.53it/s, loss=-1.2, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 33: 100%|##########| 2/2 [00:00<00:00,  3.62it/s, loss=-1.2, v_num=10]


Epoch 33:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.2, v_num=10]
Epoch 34:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.2, v_num=10]
Epoch 34:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.2, v_num=10]
Epoch 34:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.21, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 34: 100%|##########| 2/2 [00:00<00:00,  3.60it/s, loss=-1.21, v_num=10]


Epoch 34:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.21, v_num=10]
Epoch 35:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.21, v_num=10]
Epoch 35:  50%|#####     | 1/2 [00:00<00:00,  2.53it/s, loss=-1.21, v_num=10]
Epoch 35:  50%|#####     | 1/2 [00:00<00:00,  2.53it/s, loss=-1.22, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 35: 100%|##########| 2/2 [00:00<00:00,  3.61it/s, loss=-1.22, v_num=10]


Epoch 35:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.22, v_num=10]
Epoch 36:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.22, v_num=10]
Epoch 36:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.22, v_num=10]
Epoch 36:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.23, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 36: 100%|##########| 2/2 [00:00<00:00,  3.59it/s, loss=-1.23, v_num=10]


Epoch 36:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.23, v_num=10]
Epoch 37:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.23, v_num=10]
Epoch 37:  50%|#####     | 1/2 [00:00<00:00,  2.53it/s, loss=-1.23, v_num=10]
Epoch 37:  50%|#####     | 1/2 [00:00<00:00,  2.53it/s, loss=-1.24, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 37: 100%|##########| 2/2 [00:00<00:00,  3.61it/s, loss=-1.24, v_num=10]


Epoch 37:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.24, v_num=10]
Epoch 38:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.24, v_num=10]
Epoch 38:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.24, v_num=10]
Epoch 38:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.24, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 38: 100%|##########| 2/2 [00:00<00:00,  3.60it/s, loss=-1.24, v_num=10]


Epoch 38:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.24, v_num=10]
Epoch 39:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.24, v_num=10]
Epoch 39:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.24, v_num=10]
Epoch 39:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.25, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 39: 100%|##########| 2/2 [00:00<00:00,  3.61it/s, loss=-1.25, v_num=10]


Epoch 39:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.25, v_num=10]
Epoch 40:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.25, v_num=10]
Epoch 40:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.25, v_num=10]
Epoch 40:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.26, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 40: 100%|##########| 2/2 [00:00<00:00,  3.59it/s, loss=-1.26, v_num=10]


Epoch 40:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.26, v_num=10]
Epoch 41:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.26, v_num=10]
Epoch 41:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.26, v_num=10]
Epoch 41:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.27, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 41: 100%|##########| 2/2 [00:00<00:00,  3.60it/s, loss=-1.27, v_num=10]


Epoch 41:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.27, v_num=10]
Epoch 42:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.27, v_num=10]
Epoch 42:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.27, v_num=10]
Epoch 42:  50%|#####     | 1/2 [00:00<00:00,  2.50it/s, loss=-1.27, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 42: 100%|##########| 2/2 [00:00<00:00,  3.59it/s, loss=-1.27, v_num=10]


Epoch 42:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.27, v_num=10]
Epoch 43:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.27, v_num=10]
Epoch 43:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.27, v_num=10]
Epoch 43:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.28, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 43: 100%|##########| 2/2 [00:00<00:00,  3.60it/s, loss=-1.28, v_num=10]


Epoch 43:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.28, v_num=10]
Epoch 44:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.28, v_num=10]
Epoch 44:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.28, v_num=10]
Epoch 44:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.28, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 44: 100%|##########| 2/2 [00:00<00:00,  3.59it/s, loss=-1.28, v_num=10]


Epoch 44:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.28, v_num=10]
Epoch 45:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.28, v_num=10]
Epoch 45:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.28, v_num=10]
Epoch 45:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.29, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 45: 100%|##########| 2/2 [00:00<00:00,  3.59it/s, loss=-1.29, v_num=10]


Epoch 45:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.29, v_num=10]
Epoch 46:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.29, v_num=10]
Epoch 46:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.29, v_num=10]
Epoch 46:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.29, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 46: 100%|##########| 2/2 [00:00<00:00,  3.60it/s, loss=-1.29, v_num=10]


Epoch 46:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.29, v_num=10]
Epoch 47:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.29, v_num=10]
Epoch 47:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.29, v_num=10]
Epoch 47:  50%|#####     | 1/2 [00:00<00:00,  2.51it/s, loss=-1.3, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 47: 100%|##########| 2/2 [00:00<00:00,  3.60it/s, loss=-1.3, v_num=10]


Epoch 47:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.3, v_num=10]
Epoch 48:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.3, v_num=10]
Epoch 48:  50%|#####     | 1/2 [00:00<00:00,  2.53it/s, loss=-1.3, v_num=10]
Epoch 48:  50%|#####     | 1/2 [00:00<00:00,  2.53it/s, loss=-1.3, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 48: 100%|##########| 2/2 [00:00<00:00,  3.61it/s, loss=-1.3, v_num=10]


Epoch 48:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.3, v_num=10]
Epoch 49:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.3, v_num=10]
Epoch 49:  50%|#####     | 1/2 [00:00<00:00,  2.53it/s, loss=-1.3, v_num=10]
Epoch 49:  50%|#####     | 1/2 [00:00<00:00,  2.52it/s, loss=-1.31, v_num=10]

Validating: 0it [00:00, ?it/s]

Validating:   0%|          | 0/1 [00:00<?, ?it/s]
Epoch 49: 100%|##########| 2/2 [00:00<00:00,  3.59it/s, loss=-1.31, v_num=10]


Epoch 49: 100%|##########| 2/2 [00:00<00:00,  2.16it/s, loss=-1.31, v_num=10]

Total running time of the script: ( 2 minutes 40.151 seconds)

Gallery generated by Sphinx-Gallery