def train_autoencoder()

in run_experiments_real.py [0:0]


def train_autoencoder(data, z_dim, n_epochs, learning_rate, seed, folder, architecture):

    model_disentangled_rotation = autoencoder.AutoEncoder(
        data,
        z_dim=z_dim,
        n_epochs=n_epochs,
        learning_rate=learning_rate,
        latent_operator_name="DisentangledRotation",
        encoder_type=architecture,
        decoder_type=architecture,
        device=device,
        seed=seed,
    )
    model_disentangled_rotation.run()
    model_disentangled_rotation.save_best_validation(
        os.path.join(folder, "disentangled-operator")
    )

    model_shift_operator = autoencoder.AutoEncoder(
        data,
        z_dim=z_dim,
        n_epochs=n_epochs,
        learning_rate=learning_rate,
        latent_operator_name="ShiftOperator",
        encoder_type=architecture,
        decoder_type=architecture,
        device=device,
        seed=seed,
    )
    model_shift_operator.run()
    model_shift_operator.save_best_validation(os.path.join(folder, "shift-operator"))