mirror of
https://github.com/kuhyx/WUT_Computer_Science.git
synced 2026-07-06 22:23:17 +02:00
feat: automatize testing
This commit is contained in:
parent
e09186eb4e
commit
f85f8ee482
Binary file not shown.
@ -4,13 +4,7 @@ from torch import nn
|
|||||||
from torch import optim
|
from torch import optim
|
||||||
from torchvision import datasets, transforms
|
from torchvision import datasets, transforms
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
|
import time
|
||||||
# Global Constants
|
|
||||||
LEARNING_RATE = 0.001
|
|
||||||
BATCH_SIZE = 64
|
|
||||||
NUM_HIDDEN_LAYERS = 2
|
|
||||||
WIDTH = 128
|
|
||||||
OPTIMIZER_TYPE = 'Adam'
|
|
||||||
|
|
||||||
|
|
||||||
def set_hyperparameters():
|
def set_hyperparameters():
|
||||||
@ -203,7 +197,7 @@ def calculate_validation_set_accuracy(training_parameters, epoch):
|
|||||||
val_acc_values.append(validation_accuracy)
|
val_acc_values.append(validation_accuracy)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
def main_part(show_plot=True):
|
||||||
(
|
(
|
||||||
HYPERPARAMETERS,
|
HYPERPARAMETERS,
|
||||||
TRAIN_LOADER,
|
TRAIN_LOADER,
|
||||||
@ -212,32 +206,83 @@ if __name__ == "__main__":
|
|||||||
CRITERION,
|
CRITERION,
|
||||||
OPTIMIZER,
|
OPTIMIZER,
|
||||||
) = initial_configuration()
|
) = initial_configuration()
|
||||||
|
start_time = time.time()
|
||||||
LOADERS = set_loaders(
|
LOADERS = set_loaders(
|
||||||
TRAIN_LOADER, TEST_LOADER)
|
TRAIN_LOADER, TEST_LOADER)
|
||||||
TRAINING_PARAMETERS = set_training_parameters(
|
TRAINING_PARAMETERS = set_training_parameters(
|
||||||
HYPERPARAMETERS, LOADERS, MODEL, CRITERION, OPTIMIZER)
|
HYPERPARAMETERS, LOADERS, MODEL, CRITERION, OPTIMIZER)
|
||||||
training_loop(TRAINING_PARAMETERS)
|
training_loop(TRAINING_PARAMETERS)
|
||||||
|
file = open("results.txt", "a")
|
||||||
|
file.write(
|
||||||
|
"-------------------------------------------------------------------------------------")
|
||||||
|
file.write(
|
||||||
|
f"loss-lr{LEARNING_RATE}-bs{BATCH_SIZE}-hl{NUM_HIDDEN_LAYERS}-w{WIDTH}-{OPTIMIZER_TYPE}")
|
||||||
|
file.write(f"Execution time: {(time.time() - start_time)}")
|
||||||
|
file.write(
|
||||||
|
"-------------------------------------------------------------------------------------")
|
||||||
|
|
||||||
# Plot the loss value for every learning step
|
# Plot the loss value for every learning step
|
||||||
plt.plot(loss_values)
|
plt.plot(loss_values)
|
||||||
plt.xlabel('Learning Step')
|
plt.xlabel('Learning Step')
|
||||||
plt.ylabel('Loss')
|
plt.ylabel('Loss')
|
||||||
plt.title('Loss Value')
|
plt.title('Loss Value')
|
||||||
plt.savefig('loss_value.png')
|
plt.savefig(
|
||||||
plt.show()
|
f'loss-lr{LEARNING_RATE}-bs{BATCH_SIZE}-hl{NUM_HIDDEN_LAYERS}-w{WIDTH}-{OPTIMIZER_TYPE}.png')
|
||||||
|
if show_plot:
|
||||||
|
plt.show()
|
||||||
|
|
||||||
# Plot the accuracy on train set after each epoch
|
# Plot the accuracy on train set after each epoch
|
||||||
plt.plot(train_acc_values)
|
plt.plot(train_acc_values)
|
||||||
plt.xlabel('Epoch')
|
plt.xlabel('Epoch')
|
||||||
plt.ylabel('Train Accuracy')
|
plt.ylabel('Train Accuracy')
|
||||||
plt.title('Accuracy on Train Set')
|
plt.title('Accuracy on Train Set')
|
||||||
plt.savefig('train_accuracy.png')
|
plt.savefig(
|
||||||
plt.show()
|
f'trainAccuracy-lr{LEARNING_RATE}-bs{BATCH_SIZE}-hl{NUM_HIDDEN_LAYERS}-w{WIDTH}-{OPTIMIZER_TYPE}.png')
|
||||||
|
if show_plot:
|
||||||
|
plt.show()
|
||||||
|
|
||||||
# Plot the accuracy on validation set after each epoch
|
# Plot the accuracy on validation set after each epoch
|
||||||
plt.plot(val_acc_values)
|
plt.plot(val_acc_values)
|
||||||
plt.xlabel('Epoch')
|
plt.xlabel('Epoch')
|
||||||
plt.ylabel('Validation Accuracy')
|
plt.ylabel('Validation Accuracy')
|
||||||
plt.title('Accuracy on Validation Set')
|
plt.title('Accuracy on Validation Set')
|
||||||
plt.savefig('validation_accuracy.png')
|
plt.savefig(
|
||||||
plt.show()
|
f'validationAccuracy-lr{LEARNING_RATE}-bs{BATCH_SIZE}-hl{NUM_HIDDEN_LAYERS}-w{WIDTH}-{OPTIMIZER_TYPE}.png')
|
||||||
|
if show_plot:
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
LEARNING_RATE = 0.001
|
||||||
|
BATCH_SIZE = 64
|
||||||
|
NUM_HIDDEN_LAYERS = 2
|
||||||
|
WIDTH = 128
|
||||||
|
OPTIMIZER_TYPE = 'Adam'
|
||||||
|
|
||||||
|
learning_rate_values = [0.1, 0.01, 0.001]
|
||||||
|
for lr in learning_rate_values:
|
||||||
|
LEARNING_RATE = lr
|
||||||
|
main_part(False)
|
||||||
|
LEARNING_RATE = 0.001
|
||||||
|
|
||||||
|
batch_size_values = [64, 128, 256]
|
||||||
|
for bs in batch_size_values:
|
||||||
|
BATCH_SIZE = bs
|
||||||
|
main_part(False)
|
||||||
|
BATCH_SIZE = 64
|
||||||
|
|
||||||
|
hidden_layers_values = [1, 2, 3]
|
||||||
|
for hl in hidden_layers_values:
|
||||||
|
NUM_HIDDEN_LAYERS = hl
|
||||||
|
main_part(False)
|
||||||
|
NUM_HIDDEN_LAYERS = 2
|
||||||
|
|
||||||
|
width_values = [64, 128, 256, 512, 1024]
|
||||||
|
for width in WIDTH:
|
||||||
|
WIDTH = width
|
||||||
|
main_part(False)
|
||||||
|
WIDTH = 128
|
||||||
|
|
||||||
|
for optimizer in ['SGD', 'SGD_Momentum', 'Adam']:
|
||||||
|
OPTIMIZER_TYPE = optimizer
|
||||||
|
main_part(False)
|
||||||
|
|||||||
BIN
lab5/report/EARIN_LAB_5_RUDNICKI_KLISZKO.pdf
Normal file
BIN
lab5/report/EARIN_LAB_5_RUDNICKI_KLISZKO.pdf
Normal file
Binary file not shown.
@ -1,12 +1,19 @@
|
|||||||
\documentclass{article}
|
\documentclass{article}[12pt]
|
||||||
\usepackage{graphicx} % Required for inserting images
|
\usepackage{graphicx} % Required for inserting images
|
||||||
|
\usepackage{listings}
|
||||||
|
\usepackage{hyperref}
|
||||||
|
\usepackage{tabularx}
|
||||||
|
\usepackage{float}
|
||||||
|
\usepackage{subfig}
|
||||||
|
\usepackage[a4paper, total={6in, 8in}]{geometry}
|
||||||
|
|
||||||
\title{EARIN_LAB_5_RUDNICKI_KLISZKO.tex}
|
\title{EARIN Lab 5 Report}
|
||||||
\author{321krzychu }
|
\author{Krzysztof Rudnicki, 307585 \\ Jakub Kliszko, 303866 }
|
||||||
\date{May 2023}
|
\date{\today}
|
||||||
|
|
||||||
\begin{document}
|
\begin{document}
|
||||||
|
|
||||||
|
|
||||||
\maketitle
|
\maketitle
|
||||||
|
|
||||||
\section{Introduction}
|
\section{Introduction}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user