Beispiel #1
0
def runBestLNNAutoencoder():
    hf.lineprint("Processing Liner Autoencoder...")
Beispiel #2
0
def runBestCNNAutoencoder():
    hf.lineprint("Processing Convolutional Autoencoder...")
    print(train_cnn(3, mnist_data, mnist_test))
Beispiel #3
0
def runConvolutionalAutoencoder(number_of_epochs,
                                plot_graph=False,
                                save_network=False,
                                save_training_log=False,
                                compare=True,
                                log=True,
                                show=True):
    hf.lineprint("Processing autoencoder...")
    trained_dict = ac.train_cnn_for_assigment(number_of_epochs,
                                              mnist_data=mnist_data,
                                              mnist_test=mnist_test)
    basename = f"cnn_epch{number_of_epochs}"
    trained_encoder = trained_dict["autoencoder"]
    if compare:
        ac.compareEncoder(trained_encoder,
                          mnist_test, (0, 50),
                          save=True,
                          basename=basename)
    if save_network:
        torch.save(trained_encoder, basename + ".savednn")
    if save_training_log:
        with open(basename + "_traintest.txt", 'w') as f:
            writedict = trained_dict
            del writedict["autoencoder"]
            f.write(json.dumps(writedict))
    if plot_graph:
        _, ax = plt.subplots(figsize=(10, 5))
        ax.set_xlim(-0.2, number_of_epochs + 0.5)
        ax.set_ylabel('Error')
        ax.set_yscale("log")
        ax.set_xlabel('Epoch')
        x_values = [x for x in range(number_of_epochs + 1)]
        ax.plot(np.array(x_values),
                np.array(trained_dict["test_error_arr"]),
                label="Test Error")
        ax.plot(np.array(x_values),
                np.array(trained_dict["train_error_arr"]),
                label="Training Error")
        ax.legend(loc="upper right")
        filename = f'asignmentGraph_a_h{number_hidden}_epch{number_of_epochs}_m{mode}.png'
        plt.savefig(filename, dpi=200)
        hf.myprint("\tSaved " + filename)
        plt.clf()

        _, ax = plt.subplots(figsize=(10, 5))
        ax.set_xlim(5, number_of_epochs)
        ax.set_ylabel('Error')
        ax.set_yscale("log")
        ax.set_xlabel('Epoch')
        x_values = [x for x in range(5, number_of_epochs + 1)]
        ax.plot(np.array(x_values),
                np.array(trained_dict["test_error_arr"][5:]),
                label="Test Error")
        ax.plot(np.array(x_values),
                np.array(trained_dict["train_error_arr"][5:]),
                label="Training Error")
        ax.legend(loc="upper right")
        filename = f'asignmentGraph_a_h{number_hidden}_epch{number_of_epochs}_m{mode}_zoomed.png'
        plt.savefig(filename, dpi=200)
        hf.myprint("\tSaved " + filename)
        plt.clf()
Beispiel #4
0
# Agustin Marcelo Dominguez - Div 2020

import helper_functions as hf
hf.lineprint("Loading libraries...")
import numpy as np
import matplotlib.pyplot as plt
import torch
import torchvision
import torchvision.datasets as datasets
from torch import nn
import autoencoder as ac
import global_var as glval
import warnings
import seaborn as sns
import json

from final_autoencoder import train_cnn

hf.lineprint("Loading datasets and parameters...")
warnings.filterwarnings("ignore", category=UserWarning)
sns.set_style('darkgrid')
sns.set_context('talk')
sns.set(font_scale=0.7)
hf.myprint("Completed")
torch.manual_seed(12345678)

try:
    hf.myprint(f"Running on {torch.cuda.get_device_name(0)}")
except Exception:
    hf.myprint("No GPU available")
Beispiel #5
0
def trainConvolutionalAutoencoder(number_of_epochs):
    hf.lineprint("Training Autoencoder...")
    trained_dict = ac.train_cnn_for_assigment(number_of_epochs,
                                              mnist_data=mnist_data,
                                              mnist_test=mnist_test)
    return trained_dict