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.1/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.1/lib/python3.7/site-packages/pytorch_lightning/trainer/data_loading.py:408: 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.30it/s]
Epoch 0:  50%|#####     | 1/2 [00:00<00:00,  2.30it/s, loss=1.8, 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.36it/s, loss=1.8, v_num=8]


Epoch 0:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.8, v_num=8]
Epoch 1:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.8, v_num=8]
Epoch 1:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=1.8, v_num=8]
Epoch 1:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=1.82, 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.37it/s, loss=1.82, v_num=8]


Epoch 1:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.82, v_num=8]
Epoch 2:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.82, v_num=8]
Epoch 2:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=1.82, v_num=8]
Epoch 2:  50%|#####     | 1/2 [00:00<00:00,  2.30it/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.35it/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.33it/s, loss=1.8, v_num=8]
Epoch 3:  50%|#####     | 1/2 [00:00<00:00,  2.33it/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.38it/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.79, 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.79, v_num=8]


Epoch 4:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.79, v_num=8]
Epoch 5:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.79, v_num=8]
Epoch 5:  50%|#####     | 1/2 [00:00<00:00,  2.28it/s, loss=1.79, v_num=8]
Epoch 5:  50%|#####     | 1/2 [00:00<00:00,  2.27it/s, loss=1.78, 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.32it/s, loss=1.78, v_num=8]


Epoch 5:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.78, v_num=8]
Epoch 6:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.78, v_num=8]
Epoch 6:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=1.78, v_num=8]
Epoch 6:  50%|#####     | 1/2 [00:00<00:00,  2.31it/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.36it/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.35it/s, loss=1.77, v_num=8]
Epoch 7:  50%|#####     | 1/2 [00:00<00:00,  2.34it/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.40it/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.34it/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.39it/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.31it/s, loss=1.74, v_num=8]
Epoch 10:  50%|#####     | 1/2 [00:00<00:00,  2.30it/s, loss=1.74, 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.35it/s, loss=1.74, v_num=8]


Epoch 10:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.74, v_num=8]
Epoch 11:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.74, v_num=8]
Epoch 11:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=1.74, v_num=8]
Epoch 11:  50%|#####     | 1/2 [00:00<00:00,  2.31it/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.36it/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.33it/s, loss=1.73, v_num=8]
Epoch 12:  50%|#####     | 1/2 [00:00<00:00,  2.33it/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.39it/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.36it/s, loss=1.72, v_num=8]
Epoch 13:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=1.72, 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.41it/s, loss=1.72, v_num=8]


Epoch 13:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.72, v_num=8]
Epoch 14:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.72, v_num=8]
Epoch 14:  50%|#####     | 1/2 [00:00<00:00,  2.36it/s, loss=1.72, v_num=8]
Epoch 14:  50%|#####     | 1/2 [00:00<00:00,  2.36it/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.41it/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.31it/s, loss=1.71, v_num=8]
Epoch 15:  50%|#####     | 1/2 [00:00<00:00,  2.31it/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.36it/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,  2.34it/s, loss=1.7, v_num=8]
Epoch 16:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=1.7, 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,  3.38it/s, loss=1.7, v_num=8]


Epoch 16:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.7, v_num=8]
Epoch 17:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.7, v_num=8]
Epoch 17:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=1.7, v_num=8]
Epoch 17:  50%|#####     | 1/2 [00:00<00:00,  2.33it/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.37it/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.30it/s, loss=1.69, v_num=8]
Epoch 18:  50%|#####     | 1/2 [00:00<00:00,  2.30it/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.34it/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.35it/s, loss=1.68, v_num=8]
Epoch 19:  50%|#####     | 1/2 [00:00<00:00,  2.34it/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.38it/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.36it/s, loss=1.68, v_num=8]
Epoch 20:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=1.67, 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.40it/s, loss=1.67, v_num=8]


Epoch 20:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.67, v_num=8]
Epoch 21:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.67, v_num=8]
Epoch 21:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=1.67, v_num=8]
Epoch 21:  50%|#####     | 1/2 [00:00<00:00,  2.33it/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.38it/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.36it/s, loss=1.65, v_num=8]
Epoch 22:  50%|#####     | 1/2 [00:00<00:00,  2.35it/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.40it/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.32it/s, loss=1.64, v_num=8]
Epoch 23:  50%|#####     | 1/2 [00:00<00:00,  2.31it/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.35it/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.32it/s, loss=1.63, v_num=8]
Epoch 24:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=1.62, 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.36it/s, loss=1.62, v_num=8]


Epoch 24:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.62, v_num=8]
Epoch 25:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.62, v_num=8]
Epoch 25:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=1.62, v_num=8]
Epoch 25:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=1.61, 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.38it/s, loss=1.61, v_num=8]


Epoch 25:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.61, v_num=8]
Epoch 26:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.61, v_num=8]
Epoch 26:  50%|#####     | 1/2 [00:00<00:00,  2.35it/s, loss=1.61, v_num=8]
Epoch 26:  50%|#####     | 1/2 [00:00<00:00,  2.35it/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.40it/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.34it/s, loss=1.59, v_num=8]
Epoch 27:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=1.59, 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.38it/s, loss=1.59, v_num=8]


Epoch 27:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.59, v_num=8]
Epoch 28:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.59, v_num=8]
Epoch 28:  50%|#####     | 1/2 [00:00<00:00,  2.29it/s, loss=1.59, v_num=8]
Epoch 28:  50%|#####     | 1/2 [00:00<00:00,  2.29it/s, loss=1.58, 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.33it/s, loss=1.58, v_num=8]


Epoch 28:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.58, v_num=8]
Epoch 29:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.58, v_num=8]
Epoch 29:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=1.58, v_num=8]
Epoch 29:  50%|#####     | 1/2 [00:00<00:00,  2.34it/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.39it/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.34it/s, loss=1.57, v_num=8]
Epoch 30:  50%|#####     | 1/2 [00:00<00:00,  2.34it/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.39it/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.35it/s, loss=1.56, v_num=8]
Epoch 31:  50%|#####     | 1/2 [00:00<00:00,  2.35it/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.39it/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.29it/s, loss=1.55, v_num=8]
Epoch 32:  50%|#####     | 1/2 [00:00<00:00,  2.29it/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.33it/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.29it/s, loss=1.54, v_num=8]
Epoch 33:  50%|#####     | 1/2 [00:00<00:00,  2.29it/s, loss=1.54, 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.34it/s, loss=1.54, v_num=8]


Epoch 33:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.54, v_num=8]
Epoch 34:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.54, v_num=8]
Epoch 34:  50%|#####     | 1/2 [00:00<00:00,  2.27it/s, loss=1.54, v_num=8]
Epoch 34:  50%|#####     | 1/2 [00:00<00:00,  2.27it/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.31it/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,  1.90it/s, loss=1.53, v_num=8]
Epoch 35:  50%|#####     | 1/2 [00:00<00:00,  1.90it/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,  2.90it/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.33it/s, loss=1.52, v_num=8]
Epoch 36:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=1.52, 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.37it/s, loss=1.52, v_num=8]


Epoch 36:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.52, v_num=8]
Epoch 37:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.52, v_num=8]
Epoch 37:  50%|#####     | 1/2 [00:00<00:00,  2.28it/s, loss=1.52, v_num=8]
Epoch 37:  50%|#####     | 1/2 [00:00<00:00,  2.28it/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.32it/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.31it/s, loss=1.51, v_num=8]
Epoch 38:  50%|#####     | 1/2 [00:00<00:00,  2.31it/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.35it/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.33it/s, loss=1.5, v_num=8]
Epoch 39:  50%|#####     | 1/2 [00:00<00:00,  2.33it/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.37it/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.32it/s, loss=1.5, v_num=8]
Epoch 40:  50%|#####     | 1/2 [00:00<00:00,  2.31it/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.36it/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.27it/s, loss=1.49, v_num=8]
Epoch 41:  50%|#####     | 1/2 [00:00<00:00,  2.27it/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.31it/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.29it/s, loss=1.49, v_num=8]
Epoch 42:  50%|#####     | 1/2 [00:00<00:00,  2.28it/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.33it/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.34it/s, loss=1.48, v_num=8]
Epoch 43:  50%|#####     | 1/2 [00:00<00:00,  2.34it/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.38it/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.32it/s, loss=1.48, v_num=8]
Epoch 44:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=1.48, 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.37it/s, loss=1.48, v_num=8]


Epoch 44:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.48, v_num=8]
Epoch 45:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.48, v_num=8]
Epoch 45:  50%|#####     | 1/2 [00:00<00:00,  2.28it/s, loss=1.48, v_num=8]
Epoch 45:  50%|#####     | 1/2 [00:00<00:00,  2.28it/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.32it/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.30it/s, loss=1.47, v_num=8]
Epoch 46:  50%|#####     | 1/2 [00:00<00:00,  2.30it/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.34it/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.34it/s, loss=1.47, v_num=8]
Epoch 47:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=1.47, 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.38it/s, loss=1.47, v_num=8]


Epoch 47:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.47, v_num=8]
Epoch 48:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.47, v_num=8]
Epoch 48:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=1.47, v_num=8]
Epoch 48:  50%|#####     | 1/2 [00:00<00:00,  2.33it/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.38it/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.33it/s, loss=1.46, v_num=8]
Epoch 49:  50%|#####     | 1/2 [00:00<00:00,  2.33it/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.36it/s, loss=1.46, v_num=8]


Epoch 49: 100%|##########| 2/2 [00:00<00:00,  2.06it/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.1/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.1/lib/python3.7/site-packages/pytorch_lightning/trainer/data_loading.py:408: 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.30it/s]
Epoch 0:  50%|#####     | 1/2 [00:00<00:00,  2.30it/s, loss=1.1e+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.32it/s, loss=1.1e+03, v_num=9]


Epoch 0:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.1e+03, v_num=9]
Epoch 1:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.1e+03, v_num=9]
Epoch 1:  50%|#####     | 1/2 [00:00<00:00,  2.27it/s, loss=1.1e+03, v_num=9]
Epoch 1:  50%|#####     | 1/2 [00:00<00:00,  2.26it/s, loss=1.08e+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.29it/s, loss=1.08e+03, v_num=9]


Epoch 1:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.08e+03, v_num=9]
Epoch 2:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.08e+03, v_num=9]
Epoch 2:  50%|#####     | 1/2 [00:00<00:00,  2.28it/s, loss=1.08e+03, v_num=9]
Epoch 2:  50%|#####     | 1/2 [00:00<00:00,  2.28it/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.31it/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.31it/s, loss=1.07e+03, v_num=9]
Epoch 3:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=1.05e+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.35it/s, loss=1.05e+03, v_num=9]


Epoch 3:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.05e+03, v_num=9]
Epoch 4:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.05e+03, v_num=9]
Epoch 4:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=1.05e+03, v_num=9]
Epoch 4:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=1.03e+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.35it/s, loss=1.03e+03, v_num=9]


Epoch 4:   0%|          | 0/2 [00:00<?, ?it/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 5:  50%|#####     | 1/2 [00:00<00:00,  2.28it/s, loss=1.03e+03, v_num=9]
Epoch 5:  50%|#####     | 1/2 [00:00<00:00,  2.27it/s, loss=1.02e+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.30it/s, loss=1.02e+03, v_num=9]


Epoch 5:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.02e+03, v_num=9]
Epoch 6:   0%|          | 0/2 [00:00<?, ?it/s, loss=1.02e+03, v_num=9]
Epoch 6:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=1.02e+03, v_num=9]
Epoch 6:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=1e+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.36it/s, loss=1e+03, v_num=9]


Epoch 6:   0%|          | 0/2 [00:00<?, ?it/s, loss=1e+03, v_num=9]
Epoch 7:   0%|          | 0/2 [00:00<?, ?it/s, loss=1e+03, v_num=9]
Epoch 7:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=1e+03, v_num=9]
Epoch 7:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=989, 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.34it/s, loss=989, v_num=9]


Epoch 7:   0%|          | 0/2 [00:00<?, ?it/s, loss=989, v_num=9]
Epoch 8:   0%|          | 0/2 [00:00<?, ?it/s, loss=989, v_num=9]
Epoch 8:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=989, v_num=9]
Epoch 8:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=975, 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.35it/s, loss=975, v_num=9]


Epoch 8:   0%|          | 0/2 [00:00<?, ?it/s, loss=975, v_num=9]
Epoch 9:   0%|          | 0/2 [00:00<?, ?it/s, loss=975, v_num=9]
Epoch 9:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=975, v_num=9]
Epoch 9:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=962, 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.34it/s, loss=962, v_num=9]


Epoch 9:   0%|          | 0/2 [00:00<?, ?it/s, loss=962, v_num=9]
Epoch 10:   0%|          | 0/2 [00:00<?, ?it/s, loss=962, v_num=9]
Epoch 10:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=962, v_num=9]
Epoch 10:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=949, 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.35it/s, loss=949, v_num=9]


Epoch 10:   0%|          | 0/2 [00:00<?, ?it/s, loss=949, v_num=9]
Epoch 11:   0%|          | 0/2 [00:00<?, ?it/s, loss=949, v_num=9]
Epoch 11:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=949, v_num=9]
Epoch 11:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=936, 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.33it/s, loss=936, v_num=9]


Epoch 11:   0%|          | 0/2 [00:00<?, ?it/s, loss=936, v_num=9]
Epoch 12:   0%|          | 0/2 [00:00<?, ?it/s, loss=936, v_num=9]
Epoch 12:  50%|#####     | 1/2 [00:00<00:00,  2.24it/s, loss=936, v_num=9]
Epoch 12:  50%|#####     | 1/2 [00:00<00:00,  2.24it/s, loss=924, 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.24it/s, loss=924, v_num=9]


Epoch 12:   0%|          | 0/2 [00:00<?, ?it/s, loss=924, v_num=9]
Epoch 13:   0%|          | 0/2 [00:00<?, ?it/s, loss=924, v_num=9]
Epoch 13:  50%|#####     | 1/2 [00:00<00:00,  2.27it/s, loss=924, v_num=9]
Epoch 13:  50%|#####     | 1/2 [00:00<00:00,  2.27it/s, loss=912, 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.30it/s, loss=912, v_num=9]


Epoch 13:   0%|          | 0/2 [00:00<?, ?it/s, loss=912, v_num=9]
Epoch 14:   0%|          | 0/2 [00:00<?, ?it/s, loss=912, v_num=9]
Epoch 14:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=912, v_num=9]
Epoch 14:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=901, 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=901, v_num=9]


Epoch 14:   0%|          | 0/2 [00:00<?, ?it/s, loss=901, v_num=9]
Epoch 15:   0%|          | 0/2 [00:00<?, ?it/s, loss=901, v_num=9]
Epoch 15:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=901, v_num=9]
Epoch 15:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=890, 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.35it/s, loss=890, v_num=9]


Epoch 15:   0%|          | 0/2 [00:00<?, ?it/s, loss=890, v_num=9]
Epoch 16:   0%|          | 0/2 [00:00<?, ?it/s, loss=890, v_num=9]
Epoch 16:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=890, v_num=9]
Epoch 16:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=879, 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.35it/s, loss=879, v_num=9]


Epoch 16:   0%|          | 0/2 [00:00<?, ?it/s, loss=879, v_num=9]
Epoch 17:   0%|          | 0/2 [00:00<?, ?it/s, loss=879, v_num=9]
Epoch 17:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=879, v_num=9]
Epoch 17:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=869, 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.36it/s, loss=869, v_num=9]


Epoch 17:   0%|          | 0/2 [00:00<?, ?it/s, loss=869, v_num=9]
Epoch 18:   0%|          | 0/2 [00:00<?, ?it/s, loss=869, v_num=9]
Epoch 18:  50%|#####     | 1/2 [00:00<00:00,  2.30it/s, loss=869, v_num=9]
Epoch 18:  50%|#####     | 1/2 [00:00<00:00,  2.29it/s, loss=859, 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.32it/s, loss=859, v_num=9]


Epoch 18:   0%|          | 0/2 [00:00<?, ?it/s, loss=859, v_num=9]
Epoch 19:   0%|          | 0/2 [00:00<?, ?it/s, loss=859, v_num=9]
Epoch 19:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=859, v_num=9]
Epoch 19:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=850, 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.35it/s, loss=850, v_num=9]


Epoch 19:   0%|          | 0/2 [00:00<?, ?it/s, loss=850, v_num=9]
Epoch 20:   0%|          | 0/2 [00:00<?, ?it/s, loss=850, v_num=9]
Epoch 20:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=850, v_num=9]
Epoch 20:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=828, 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=828, v_num=9]


Epoch 20:   0%|          | 0/2 [00:00<?, ?it/s, loss=828, v_num=9]
Epoch 21:   0%|          | 0/2 [00:00<?, ?it/s, loss=828, v_num=9]
Epoch 21:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=828, v_num=9]
Epoch 21:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=807, 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.35it/s, loss=807, v_num=9]


Epoch 21:   0%|          | 0/2 [00:00<?, ?it/s, loss=807, v_num=9]
Epoch 22:   0%|          | 0/2 [00:00<?, ?it/s, loss=807, v_num=9]
Epoch 22:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=807, v_num=9]
Epoch 22:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=787, 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.34it/s, loss=787, v_num=9]


Epoch 22:   0%|          | 0/2 [00:00<?, ?it/s, loss=787, v_num=9]
Epoch 23:   0%|          | 0/2 [00:00<?, ?it/s, loss=787, v_num=9]
Epoch 23:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=787, v_num=9]
Epoch 23:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=769, 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.36it/s, loss=769, v_num=9]


Epoch 23:   0%|          | 0/2 [00:00<?, ?it/s, loss=769, v_num=9]
Epoch 24:   0%|          | 0/2 [00:00<?, ?it/s, loss=769, v_num=9]
Epoch 24:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=769, v_num=9]
Epoch 24:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=751, 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.38it/s, loss=751, v_num=9]


Epoch 24:   0%|          | 0/2 [00:00<?, ?it/s, loss=751, v_num=9]
Epoch 25:   0%|          | 0/2 [00:00<?, ?it/s, loss=751, v_num=9]
Epoch 25:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=751, v_num=9]
Epoch 25:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=735, 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.36it/s, loss=735, v_num=9]


Epoch 25:   0%|          | 0/2 [00:00<?, ?it/s, loss=735, v_num=9]
Epoch 26:   0%|          | 0/2 [00:00<?, ?it/s, loss=735, v_num=9]
Epoch 26:  50%|#####     | 1/2 [00:00<00:00,  2.29it/s, loss=735, v_num=9]
Epoch 26:  50%|#####     | 1/2 [00:00<00:00,  2.29it/s, loss=719, 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.33it/s, loss=719, v_num=9]


Epoch 26:   0%|          | 0/2 [00:00<?, ?it/s, loss=719, v_num=9]
Epoch 27:   0%|          | 0/2 [00:00<?, ?it/s, loss=719, v_num=9]
Epoch 27:  50%|#####     | 1/2 [00:00<00:00,  2.30it/s, loss=719, v_num=9]
Epoch 27:  50%|#####     | 1/2 [00:00<00:00,  2.30it/s, loss=705, 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.33it/s, loss=705, v_num=9]


Epoch 27:   0%|          | 0/2 [00:00<?, ?it/s, loss=705, v_num=9]
Epoch 28:   0%|          | 0/2 [00:00<?, ?it/s, loss=705, v_num=9]
Epoch 28:  50%|#####     | 1/2 [00:00<00:00,  2.29it/s, loss=705, v_num=9]
Epoch 28:  50%|#####     | 1/2 [00:00<00:00,  2.28it/s, loss=691, 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.32it/s, loss=691, v_num=9]


Epoch 28:   0%|          | 0/2 [00:00<?, ?it/s, loss=691, v_num=9]
Epoch 29:   0%|          | 0/2 [00:00<?, ?it/s, loss=691, v_num=9]
Epoch 29:  50%|#####     | 1/2 [00:00<00:00,  2.29it/s, loss=691, v_num=9]
Epoch 29:  50%|#####     | 1/2 [00:00<00:00,  2.29it/s, loss=679, 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.33it/s, loss=679, v_num=9]


Epoch 29:   0%|          | 0/2 [00:00<?, ?it/s, loss=679, v_num=9]
Epoch 30:   0%|          | 0/2 [00:00<?, ?it/s, loss=679, v_num=9]
Epoch 30:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=679, v_num=9]
Epoch 30:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=667, 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.35it/s, loss=667, v_num=9]


Epoch 30:   0%|          | 0/2 [00:00<?, ?it/s, loss=667, v_num=9]
Epoch 31:   0%|          | 0/2 [00:00<?, ?it/s, loss=667, v_num=9]
Epoch 31:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=667, v_num=9]
Epoch 31:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=656, 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.35it/s, loss=656, v_num=9]


Epoch 31:   0%|          | 0/2 [00:00<?, ?it/s, loss=656, v_num=9]
Epoch 32:   0%|          | 0/2 [00:00<?, ?it/s, loss=656, v_num=9]
Epoch 32:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=656, v_num=9]
Epoch 32:  50%|#####     | 1/2 [00:00<00:00,  2.30it/s, loss=646, 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.34it/s, loss=646, v_num=9]


Epoch 32:   0%|          | 0/2 [00:00<?, ?it/s, loss=646, v_num=9]
Epoch 33:   0%|          | 0/2 [00:00<?, ?it/s, loss=646, v_num=9]
Epoch 33:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=646, v_num=9]
Epoch 33:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=636, 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.37it/s, loss=636, v_num=9]


Epoch 33:   0%|          | 0/2 [00:00<?, ?it/s, loss=636, v_num=9]
Epoch 34:   0%|          | 0/2 [00:00<?, ?it/s, loss=636, v_num=9]
Epoch 34:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=636, v_num=9]
Epoch 34:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=627, 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.37it/s, loss=627, v_num=9]


Epoch 34:   0%|          | 0/2 [00:00<?, ?it/s, loss=627, v_num=9]
Epoch 35:   0%|          | 0/2 [00:00<?, ?it/s, loss=627, v_num=9]
Epoch 35:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=627, v_num=9]
Epoch 35:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=619, 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.36it/s, loss=619, v_num=9]


Epoch 35:   0%|          | 0/2 [00:00<?, ?it/s, loss=619, v_num=9]
Epoch 36:   0%|          | 0/2 [00:00<?, ?it/s, loss=619, v_num=9]
Epoch 36:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=619, v_num=9]
Epoch 36:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=611, 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.36it/s, loss=611, v_num=9]


Epoch 36:   0%|          | 0/2 [00:00<?, ?it/s, loss=611, v_num=9]
Epoch 37:   0%|          | 0/2 [00:00<?, ?it/s, loss=611, v_num=9]
Epoch 37:  50%|#####     | 1/2 [00:00<00:00,  2.34it/s, loss=611, v_num=9]
Epoch 37:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=604, 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.38it/s, loss=604, v_num=9]


Epoch 37:   0%|          | 0/2 [00:00<?, ?it/s, loss=604, v_num=9]
Epoch 38:   0%|          | 0/2 [00:00<?, ?it/s, loss=604, v_num=9]
Epoch 38:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=604, v_num=9]
Epoch 38:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=598, 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.37it/s, loss=598, v_num=9]


Epoch 38:   0%|          | 0/2 [00:00<?, ?it/s, loss=598, v_num=9]
Epoch 39:   0%|          | 0/2 [00:00<?, ?it/s, loss=598, v_num=9]
Epoch 39:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=598, v_num=9]
Epoch 39:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=592, 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.36it/s, loss=592, v_num=9]


Epoch 39:   0%|          | 0/2 [00:00<?, ?it/s, loss=592, v_num=9]
Epoch 40:   0%|          | 0/2 [00:00<?, ?it/s, loss=592, v_num=9]
Epoch 40:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=592, v_num=9]
Epoch 40:  50%|#####     | 1/2 [00:00<00:00,  2.33it/s, loss=586, 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.36it/s, loss=586, v_num=9]


Epoch 40:   0%|          | 0/2 [00:00<?, ?it/s, loss=586, v_num=9]
Epoch 41:   0%|          | 0/2 [00:00<?, ?it/s, loss=586, v_num=9]
Epoch 41:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=586, v_num=9]
Epoch 41:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=581, 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.35it/s, loss=581, v_num=9]


Epoch 41:   0%|          | 0/2 [00:00<?, ?it/s, loss=581, v_num=9]
Epoch 42:   0%|          | 0/2 [00:00<?, ?it/s, loss=581, v_num=9]
Epoch 42:  50%|#####     | 1/2 [00:00<00:00,  2.29it/s, loss=581, v_num=9]
Epoch 42:  50%|#####     | 1/2 [00:00<00:00,  2.29it/s, loss=577, 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.33it/s, loss=577, v_num=9]


Epoch 42:   0%|          | 0/2 [00:00<?, ?it/s, loss=577, v_num=9]
Epoch 43:   0%|          | 0/2 [00:00<?, ?it/s, loss=577, v_num=9]
Epoch 43:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=577, v_num=9]
Epoch 43:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=572, 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.36it/s, loss=572, v_num=9]


Epoch 43:   0%|          | 0/2 [00:00<?, ?it/s, loss=572, v_num=9]
Epoch 44:   0%|          | 0/2 [00:00<?, ?it/s, loss=572, v_num=9]
Epoch 44:  50%|#####     | 1/2 [00:00<00:00,  2.29it/s, loss=572, v_num=9]
Epoch 44:  50%|#####     | 1/2 [00:00<00:00,  2.29it/s, loss=568, 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.33it/s, loss=568, v_num=9]


Epoch 44:   0%|          | 0/2 [00:00<?, ?it/s, loss=568, v_num=9]
Epoch 45:   0%|          | 0/2 [00:00<?, ?it/s, loss=568, v_num=9]
Epoch 45:  50%|#####     | 1/2 [00:00<00:00,  2.30it/s, loss=568, v_num=9]
Epoch 45:  50%|#####     | 1/2 [00:00<00:00,  2.30it/s, loss=565, 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.33it/s, loss=565, v_num=9]


Epoch 45:   0%|          | 0/2 [00:00<?, ?it/s, loss=565, v_num=9]
Epoch 46:   0%|          | 0/2 [00:00<?, ?it/s, loss=565, v_num=9]
Epoch 46:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=565, v_num=9]
Epoch 46:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=561, 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.34it/s, loss=561, v_num=9]


Epoch 46:   0%|          | 0/2 [00:00<?, ?it/s, loss=561, v_num=9]
Epoch 47:   0%|          | 0/2 [00:00<?, ?it/s, loss=561, v_num=9]
Epoch 47:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=561, v_num=9]
Epoch 47:  50%|#####     | 1/2 [00:00<00:00,  2.30it/s, loss=558, 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.34it/s, loss=558, v_num=9]


Epoch 47:   0%|          | 0/2 [00:00<?, ?it/s, loss=558, v_num=9]
Epoch 48:   0%|          | 0/2 [00:00<?, ?it/s, loss=558, v_num=9]
Epoch 48:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=558, v_num=9]
Epoch 48:  50%|#####     | 1/2 [00:00<00:00,  2.31it/s, loss=556, 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.35it/s, loss=556, v_num=9]


Epoch 48:   0%|          | 0/2 [00:00<?, ?it/s, loss=556, v_num=9]
Epoch 49:   0%|          | 0/2 [00:00<?, ?it/s, loss=556, v_num=9]
Epoch 49:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=556, v_num=9]
Epoch 49:  50%|#####     | 1/2 [00:00<00:00,  2.32it/s, loss=553, 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.36it/s, loss=553, v_num=9]


Epoch 49: 100%|##########| 2/2 [00:00<00:00,  2.06it/s, loss=553, 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.1/lib/python3.7/site-packages/pytorch_lightning/trainer/data_loading.py:408: 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.47it/s]
Epoch 0:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=0.159, 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.54it/s, loss=0.159, v_num=10]


Epoch 0:   0%|          | 0/2 [00:00<?, ?it/s, loss=0.159, v_num=10]
Epoch 1:   0%|          | 0/2 [00:00<?, ?it/s, loss=0.159, v_num=10]
Epoch 1:  50%|#####     | 1/2 [00:00<00:00,  2.42it/s, loss=0.159, v_num=10]
Epoch 1:  50%|#####     | 1/2 [00:00<00:00,  2.42it/s, loss=-0.0854, 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.47it/s, loss=-0.0854, v_num=10]


Epoch 1:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.0854, v_num=10]
Epoch 2:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.0854, v_num=10]
Epoch 2:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.0854, v_num=10]
Epoch 2:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.259, 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.55it/s, loss=-0.259, v_num=10]


Epoch 2:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.259, v_num=10]
Epoch 3:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.259, v_num=10]
Epoch 3:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.259, v_num=10]
Epoch 3:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.368, 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.55it/s, loss=-0.368, v_num=10]


Epoch 3:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.368, v_num=10]
Epoch 4:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.368, v_num=10]
Epoch 4:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-0.368, v_num=10]
Epoch 4:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-0.465, 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.56it/s, loss=-0.465, v_num=10]


Epoch 4:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.465, v_num=10]
Epoch 5:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.465, v_num=10]
Epoch 5:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.465, v_num=10]
Epoch 5:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.529, 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.55it/s, loss=-0.529, v_num=10]


Epoch 5:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.529, v_num=10]
Epoch 6:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.529, v_num=10]
Epoch 6:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-0.529, v_num=10]
Epoch 6:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-0.582, 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.56it/s, loss=-0.582, v_num=10]


Epoch 6:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.582, v_num=10]
Epoch 7:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.582, v_num=10]
Epoch 7:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-0.582, v_num=10]
Epoch 7:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-0.631, 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.56it/s, loss=-0.631, v_num=10]


Epoch 7:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.631, v_num=10]
Epoch 8:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.631, v_num=10]
Epoch 8:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.631, v_num=10]
Epoch 8:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.677, 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.55it/s, loss=-0.677, v_num=10]


Epoch 8:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.677, v_num=10]
Epoch 9:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.677, v_num=10]
Epoch 9:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.677, v_num=10]
Epoch 9:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.713, 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.55it/s, loss=-0.713, v_num=10]


Epoch 9:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.713, v_num=10]
Epoch 10:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.713, v_num=10]
Epoch 10:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.713, v_num=10]
Epoch 10:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-0.745, 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.55it/s, loss=-0.745, v_num=10]


Epoch 10:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.745, v_num=10]
Epoch 11:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.745, v_num=10]
Epoch 11:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.745, v_num=10]
Epoch 11:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.77, 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.55it/s, loss=-0.77, v_num=10]


Epoch 11:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.77, v_num=10]
Epoch 12:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.77, v_num=10]
Epoch 12:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.77, v_num=10]
Epoch 12:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.795, 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.56it/s, loss=-0.795, v_num=10]


Epoch 12:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.795, v_num=10]
Epoch 13:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.795, v_num=10]
Epoch 13:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-0.795, v_num=10]
Epoch 13:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.818, 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.56it/s, loss=-0.818, v_num=10]


Epoch 13:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.818, v_num=10]
Epoch 14:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.818, v_num=10]
Epoch 14:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-0.818, v_num=10]
Epoch 14:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-0.84, 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.54it/s, loss=-0.84, v_num=10]


Epoch 14:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.84, v_num=10]
Epoch 15:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.84, v_num=10]
Epoch 15:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-0.84, v_num=10]
Epoch 15:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-0.86, 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.57it/s, loss=-0.86, v_num=10]


Epoch 15:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.86, v_num=10]
Epoch 16:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.86, v_num=10]
Epoch 16:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.86, v_num=10]
Epoch 16:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.881, 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.54it/s, loss=-0.881, v_num=10]


Epoch 16:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.881, v_num=10]
Epoch 17:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.881, v_num=10]
Epoch 17:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.881, v_num=10]
Epoch 17:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-0.896, 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.55it/s, loss=-0.896, v_num=10]


Epoch 17:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.896, v_num=10]
Epoch 18:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.896, v_num=10]
Epoch 18:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.896, v_num=10]
Epoch 18:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.912, 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.55it/s, loss=-0.912, v_num=10]


Epoch 18:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.912, v_num=10]
Epoch 19:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.912, v_num=10]
Epoch 19:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-0.912, v_num=10]
Epoch 19:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-0.928, 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.56it/s, loss=-0.928, v_num=10]


Epoch 19:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.928, v_num=10]
Epoch 20:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.928, v_num=10]
Epoch 20:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-0.928, v_num=10]
Epoch 20:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-0.995, 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.54it/s, loss=-0.995, v_num=10]


Epoch 20:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.995, v_num=10]
Epoch 21:   0%|          | 0/2 [00:00<?, ?it/s, loss=-0.995, v_num=10]
Epoch 21:  50%|#####     | 1/2 [00:00<00:00,  2.50it/s, loss=-0.995, v_num=10]
Epoch 21:  50%|#####     | 1/2 [00:00<00:00,  2.50it/s, loss=-1.04, 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.04, v_num=10]


Epoch 21:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.04, v_num=10]
Epoch 22:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.04, v_num=10]
Epoch 22:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-1.04, v_num=10]
Epoch 22:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-1.07, 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.55it/s, loss=-1.07, v_num=10]


Epoch 22:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.07, v_num=10]
Epoch 23:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.07, v_num=10]
Epoch 23:  50%|#####     | 1/2 [00:00<00:00,  2.50it/s, loss=-1.07, v_num=10]
Epoch 23:  50%|#####     | 1/2 [00:00<00:00,  2.50it/s, loss=-1.1, 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.57it/s, loss=-1.1, v_num=10]


Epoch 23:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.1, v_num=10]
Epoch 24:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.1, v_num=10]
Epoch 24:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-1.1, v_num=10]
Epoch 24:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-1.12, 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.57it/s, loss=-1.12, v_num=10]


Epoch 24:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.12, v_num=10]
Epoch 25:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.12, v_num=10]
Epoch 25:  50%|#####     | 1/2 [00:00<00:00,  2.50it/s, loss=-1.12, v_num=10]
Epoch 25:  50%|#####     | 1/2 [00:00<00:00,  2.50it/s, loss=-1.14, 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.58it/s, loss=-1.14, v_num=10]


Epoch 25:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.14, v_num=10]
Epoch 26:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.14, v_num=10]
Epoch 26:  50%|#####     | 1/2 [00:00<00:00,  2.50it/s, loss=-1.14, v_num=10]
Epoch 26:  50%|#####     | 1/2 [00:00<00:00,  2.50it/s, loss=-1.16, 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.58it/s, loss=-1.16, v_num=10]


Epoch 26:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.16, v_num=10]
Epoch 27:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.16, v_num=10]
Epoch 27:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-1.16, v_num=10]
Epoch 27:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-1.17, 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.55it/s, loss=-1.17, v_num=10]


Epoch 27:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.17, v_num=10]
Epoch 28:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.17, v_num=10]
Epoch 28:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-1.17, v_num=10]
Epoch 28:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-1.19, 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.56it/s, loss=-1.19, v_num=10]


Epoch 28:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.19, v_num=10]
Epoch 29:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.19, v_num=10]
Epoch 29:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-1.19, v_num=10]
Epoch 29:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-1.2, 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.55it/s, loss=-1.2, v_num=10]


Epoch 29:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.2, v_num=10]
Epoch 30:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.2, v_num=10]
Epoch 30:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-1.2, v_num=10]
Epoch 30:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-1.21, 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.55it/s, loss=-1.21, v_num=10]


Epoch 30:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.21, v_num=10]
Epoch 31:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.21, v_num=10]
Epoch 31:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-1.21, v_num=10]
Epoch 31:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-1.22, 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.55it/s, loss=-1.22, v_num=10]


Epoch 31:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.22, v_num=10]
Epoch 32:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.22, v_num=10]
Epoch 32:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-1.22, v_num=10]
Epoch 32:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-1.23, 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.56it/s, loss=-1.23, v_num=10]


Epoch 32:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.23, v_num=10]
Epoch 33:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.23, v_num=10]
Epoch 33:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-1.23, v_num=10]
Epoch 33:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-1.24, 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.56it/s, loss=-1.24, v_num=10]


Epoch 33:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.24, v_num=10]
Epoch 34:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.24, v_num=10]
Epoch 34:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-1.24, v_num=10]
Epoch 34:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-1.25, 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.56it/s, loss=-1.25, v_num=10]


Epoch 34:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.25, v_num=10]
Epoch 35:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.25, v_num=10]
Epoch 35:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-1.25, v_num=10]
Epoch 35:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-1.26, 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.53it/s, loss=-1.26, v_num=10]


Epoch 35:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.26, v_num=10]
Epoch 36:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.26, v_num=10]
Epoch 36:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-1.26, v_num=10]
Epoch 36:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-1.27, 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.54it/s, loss=-1.27, v_num=10]


Epoch 36:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.27, v_num=10]
Epoch 37:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.27, v_num=10]
Epoch 37:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-1.27, v_num=10]
Epoch 37:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-1.28, 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.54it/s, loss=-1.28, v_num=10]


Epoch 37:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.28, v_num=10]
Epoch 38:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.28, v_num=10]
Epoch 38:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-1.28, v_num=10]
Epoch 38:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-1.29, 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.54it/s, loss=-1.29, v_num=10]


Epoch 38:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.29, v_num=10]
Epoch 39:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.29, v_num=10]
Epoch 39:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-1.29, v_num=10]
Epoch 39:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-1.29, 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.54it/s, loss=-1.29, v_num=10]


Epoch 39:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.29, v_num=10]
Epoch 40:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.29, v_num=10]
Epoch 40:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-1.29, v_num=10]
Epoch 40:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-1.3, 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.56it/s, loss=-1.3, v_num=10]


Epoch 40:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.3, v_num=10]
Epoch 41:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.3, v_num=10]
Epoch 41:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-1.3, v_num=10]
Epoch 41:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-1.31, 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.55it/s, loss=-1.31, v_num=10]


Epoch 41:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.31, v_num=10]
Epoch 42:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.31, v_num=10]
Epoch 42:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-1.31, v_num=10]
Epoch 42:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-1.31, 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.55it/s, loss=-1.31, v_num=10]


Epoch 42:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.31, v_num=10]
Epoch 43:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.31, v_num=10]
Epoch 43:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-1.31, v_num=10]
Epoch 43:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-1.32, 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.54it/s, loss=-1.32, v_num=10]


Epoch 43:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.32, v_num=10]
Epoch 44:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.32, v_num=10]
Epoch 44:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-1.32, v_num=10]
Epoch 44:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-1.33, 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.55it/s, loss=-1.33, v_num=10]


Epoch 44:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.33, v_num=10]
Epoch 45:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.33, v_num=10]
Epoch 45:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-1.33, v_num=10]
Epoch 45:  50%|#####     | 1/2 [00:00<00:00,  2.49it/s, loss=-1.33, 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.57it/s, loss=-1.33, v_num=10]


Epoch 45:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.33, v_num=10]
Epoch 46:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.33, v_num=10]
Epoch 46:  50%|#####     | 1/2 [00:00<00:00,  2.48it/s, loss=-1.33, v_num=10]
Epoch 46:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-1.34, 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.55it/s, loss=-1.34, v_num=10]


Epoch 46:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.34, v_num=10]
Epoch 47:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.34, v_num=10]
Epoch 47:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-1.34, v_num=10]
Epoch 47:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-1.34, 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.53it/s, loss=-1.34, v_num=10]


Epoch 47:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.34, v_num=10]
Epoch 48:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.34, v_num=10]
Epoch 48:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-1.34, v_num=10]
Epoch 48:  50%|#####     | 1/2 [00:00<00:00,  2.46it/s, loss=-1.34, 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.54it/s, loss=-1.34, v_num=10]


Epoch 48:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.34, v_num=10]
Epoch 49:   0%|          | 0/2 [00:00<?, ?it/s, loss=-1.34, v_num=10]
Epoch 49:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-1.34, v_num=10]
Epoch 49:  50%|#####     | 1/2 [00:00<00:00,  2.47it/s, loss=-1.35, 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.54it/s, loss=-1.35, v_num=10]


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

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

Gallery generated by Sphinx-Gallery