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