コード例 #1
0
def runBestLNNAutoencoder():
    hf.lineprint("Processing Liner Autoencoder...")
コード例 #2
0
def runBestCNNAutoencoder():
    hf.lineprint("Processing Convolutional Autoencoder...")
    print(train_cnn(3, mnist_data, mnist_test))
コード例 #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()
コード例 #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")
コード例 #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