work on lab7
s449288-evaluation/pipeline/head This commit looks good Details
s449288-training/pipeline/head This commit looks good Details

This commit is contained in:
Kacper 2022-05-06 19:38:48 +02:00
parent 3e4bc7479b
commit fcd9be7cc7
2 changed files with 14 additions and 18 deletions

View File

@ -4,32 +4,30 @@ from keras.models import save_model
import pandas as pd import pandas as pd
import numpy as np import numpy as np
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
import sys
from sacred import Experiment from sacred import Experiment
from sacred.observers import FileStorageObserver from sacred.observers import FileStorageObserver
from sacred.observers import MongoObserver from sacred.observers import MongoObserver
# Stworzenie obiektu klasy Experiment do śledzenia przebiegu regresji narzędziem Sacred # Stworzenie obiektu klasy Experiment do śledzenia przebiegu regresji narzędziem Sacred
ex = Experiment() ex = Experiment(save_git_info=False)
# Dodanie obserwatora FileObserver # Dodanie obserwatora FileObserver
ex.observers.append(FileStorageObserver('runs')) ex.observers.append(FileStorageObserver('runs'))
#Dodanie obserwatora Mongo #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 # Przykładowa modyfikowalna z Sacred konfiguracja wybranych parametrów treningu
@ex.config @ex.config
def config(): def config():
epochs = 100
units = 1 units = 1
learning_rate = 0.1 learning_rate = 0.1
# Reszta kodu wrzucona do udekorowanej funkcji train do wywołania przez Sacred, żeby coś było capture'owane # Reszta kodu wrzucona do udekorowanej funkcji train do wywołania przez Sacred, żeby coś było capture'owane
@ex.capture @ex.capture
def train(units, learning_rate, _run): def train(epochs, units, learning_rate, _run):
# Pobranie przykładowego argumentu trenowania z poziomu Jenkinsa
EPOCHS_NUM = int(sys.argv[1])
# Wczytanie danych # Wczytanie danych
data_train = pd.read_csv('lego_sets_clean_train.csv') data_train = pd.read_csv('lego_sets_clean_train.csv')
@ -61,7 +59,7 @@ def train(units, learning_rate, _run):
history = model.fit( history = model.fit(
train_piece_counts, train_piece_counts,
train_prices, train_prices,
epochs=EPOCHS_NUM, epochs=epochs,
verbose=0, verbose=0,
validation_split=0.2 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 # Zapis modelu do pliku standardowo poprzez metodę kerasa i poprzez metodę obiektu Experiment z Sacred
model.save('lego_reg_model') 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 = pd.DataFrame(history.history)
hist['epoch'] = history.epoch hist['epoch'] = history.epoch
_run.log_scalar('final.training.loss', hist['loss'].iloc[-1]) _run.log_scalar('final.training.loss', hist['loss'].iloc[-1])

View File

@ -4,32 +4,30 @@ from keras.models import save_model
import pandas as pd import pandas as pd
import numpy as np import numpy as np
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
import sys
from sacred import Experiment from sacred import Experiment
from sacred.observers import FileStorageObserver from sacred.observers import FileStorageObserver
from sacred.observers import MongoObserver from sacred.observers import MongoObserver
# Stworzenie obiektu klasy Experiment do śledzenia przebiegu regresji narzędziem Sacred # Stworzenie obiektu klasy Experiment do śledzenia przebiegu regresji narzędziem Sacred
ex = Experiment() ex = Experiment(save_git_info=False)
# Dodanie obserwatora FileObserver # Dodanie obserwatora FileObserver
ex.observers.append(FileStorageObserver('runs')) ex.observers.append(FileStorageObserver('runs'))
#Dodanie obserwatora Mongo #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 # Przykładowa modyfikowalna z Sacred konfiguracja wybranych parametrów treningu
@ex.config @ex.config
def config(): def config():
epochs = 100
units = 1 units = 1
learning_rate = 0.1 learning_rate = 0.1
# Reszta kodu wrzucona do udekorowanej funkcji train do wywołania przez Sacred, żeby coś było capture'owane # Reszta kodu wrzucona do udekorowanej funkcji train do wywołania przez Sacred, żeby coś było capture'owane
@ex.capture @ex.capture
def train(units, learning_rate, _run): def train(epochs, units, learning_rate, _run):
# Pobranie przykładowego argumentu trenowania z poziomu Jenkinsa
EPOCHS_NUM = int(sys.argv[1])
# Wczytanie danych # Wczytanie danych
data_train = pd.read_csv('lego_sets_clean_train.csv') data_train = pd.read_csv('lego_sets_clean_train.csv')
@ -61,7 +59,7 @@ def train(units, learning_rate, _run):
history = model.fit( history = model.fit(
train_piece_counts, train_piece_counts,
train_prices, train_prices,
epochs=EPOCHS_NUM, epochs=epochs,
verbose=0, verbose=0,
validation_split=0.2 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 # Zapis modelu do pliku standardowo poprzez metodę kerasa i poprzez metodę obiektu Experiment z Sacred
model.save('lego_reg_model') 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 = pd.DataFrame(history.history)
hist['epoch'] = history.epoch hist['epoch'] = history.epoch
_run.log_scalar('final.training.loss', hist['loss'].iloc[-1]) _run.log_scalar('final.training.loss', hist['loss'].iloc[-1])