diff --git a/lab7/simple_regression_lab7.py b/lab7/simple_regression_lab7.py index c12eeec..50947a7 100644 --- a/lab7/simple_regression_lab7.py +++ b/lab7/simple_regression_lab7.py @@ -4,32 +4,30 @@ from keras.models import save_model import pandas as pd import numpy as np import matplotlib.pyplot as plt -import sys from sacred import Experiment from sacred.observers import FileStorageObserver from sacred.observers import MongoObserver # Stworzenie obiektu klasy Experiment do śledzenia przebiegu regresji narzędziem Sacred -ex = Experiment() +ex = Experiment(save_git_info=False) # Dodanie obserwatora FileObserver ex.observers.append(FileStorageObserver('runs')) #Dodanie obserwatora Mongo -ex.observers.append(MongoObserver(url='mongodb://mongo_user:mongo_password_IUM_2021@localhost:27017', db_name='sacred')) +#ex.observers.append(MongoObserver(url='mongodb://mongo_user:mongo_password_IUM_2021@localhost:27017', db_name='sacred')) # Przykładowa modyfikowalna z Sacred konfiguracja wybranych parametrów treningu @ex.config def config(): + epochs = 100 units = 1 learning_rate = 0.1 # Reszta kodu wrzucona do udekorowanej funkcji train do wywołania przez Sacred, żeby coś było capture'owane @ex.capture -def train(units, learning_rate, _run): - # Pobranie przykładowego argumentu trenowania z poziomu Jenkinsa - EPOCHS_NUM = int(sys.argv[1]) +def train(epochs, units, learning_rate, _run): # Wczytanie danych data_train = pd.read_csv('lego_sets_clean_train.csv') @@ -61,7 +59,7 @@ def train(units, learning_rate, _run): history = model.fit( train_piece_counts, train_prices, - epochs=EPOCHS_NUM, + epochs=epochs, verbose=0, validation_split=0.2 ) @@ -76,9 +74,9 @@ def train(units, learning_rate, _run): # Zapis modelu do pliku standardowo poprzez metodę kerasa i poprzez metodę obiektu Experiment z Sacred model.save('lego_reg_model') - ex.add_artifact('lego_reg_model_art') + ex.add_artifact('lego_reg_model/saved_model.pb') - # Przykładowo zwracamy coś w charakterze wyników, żeby było widoczne w plikach zapisanych przez obserwator + # Przykładowo zwracamy loss ostatniej epoki w charakterze wyników, żeby było widoczne w plikach zapisanych przez obserwator hist = pd.DataFrame(history.history) hist['epoch'] = history.epoch _run.log_scalar('final.training.loss', hist['loss'].iloc[-1]) diff --git a/simple_regression_lab7.py b/simple_regression_lab7.py index c12eeec..50947a7 100644 --- a/simple_regression_lab7.py +++ b/simple_regression_lab7.py @@ -4,32 +4,30 @@ from keras.models import save_model import pandas as pd import numpy as np import matplotlib.pyplot as plt -import sys from sacred import Experiment from sacred.observers import FileStorageObserver from sacred.observers import MongoObserver # Stworzenie obiektu klasy Experiment do śledzenia przebiegu regresji narzędziem Sacred -ex = Experiment() +ex = Experiment(save_git_info=False) # Dodanie obserwatora FileObserver ex.observers.append(FileStorageObserver('runs')) #Dodanie obserwatora Mongo -ex.observers.append(MongoObserver(url='mongodb://mongo_user:mongo_password_IUM_2021@localhost:27017', db_name='sacred')) +#ex.observers.append(MongoObserver(url='mongodb://mongo_user:mongo_password_IUM_2021@localhost:27017', db_name='sacred')) # Przykładowa modyfikowalna z Sacred konfiguracja wybranych parametrów treningu @ex.config def config(): + epochs = 100 units = 1 learning_rate = 0.1 # Reszta kodu wrzucona do udekorowanej funkcji train do wywołania przez Sacred, żeby coś było capture'owane @ex.capture -def train(units, learning_rate, _run): - # Pobranie przykładowego argumentu trenowania z poziomu Jenkinsa - EPOCHS_NUM = int(sys.argv[1]) +def train(epochs, units, learning_rate, _run): # Wczytanie danych data_train = pd.read_csv('lego_sets_clean_train.csv') @@ -61,7 +59,7 @@ def train(units, learning_rate, _run): history = model.fit( train_piece_counts, train_prices, - epochs=EPOCHS_NUM, + epochs=epochs, verbose=0, validation_split=0.2 ) @@ -76,9 +74,9 @@ def train(units, learning_rate, _run): # Zapis modelu do pliku standardowo poprzez metodę kerasa i poprzez metodę obiektu Experiment z Sacred model.save('lego_reg_model') - ex.add_artifact('lego_reg_model_art') + ex.add_artifact('lego_reg_model/saved_model.pb') - # Przykładowo zwracamy coś w charakterze wyników, żeby było widoczne w plikach zapisanych przez obserwator + # Przykładowo zwracamy loss ostatniej epoki w charakterze wyników, żeby było widoczne w plikach zapisanych przez obserwator hist = pd.DataFrame(history.history) hist['epoch'] = history.epoch _run.log_scalar('final.training.loss', hist['loss'].iloc[-1])