From 464ada76f26cd8dd52cbbfc074a7abfdbbc640fa Mon Sep 17 00:00:00 2001 From: Kacper Dudzic Date: Thu, 5 May 2022 22:41:58 +0200 Subject: [PATCH] Delete 'simple_regression_lab7.py' --- simple_regression_lab7.py | 89 --------------------------------------- 1 file changed, 89 deletions(-) delete mode 100644 simple_regression_lab7.py diff --git a/simple_regression_lab7.py b/simple_regression_lab7.py deleted file mode 100644 index 33c6e4f..0000000 --- a/simple_regression_lab7.py +++ /dev/null @@ -1,89 +0,0 @@ -import tensorflow as tf -from keras import layers -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() - -# 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')) - -# Przykładowa modyfikowalna z Sacred konfiguracja wybranych parametrów treningu -@ex.config -def config(): - 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]) - - # Wczytanie danych - data_train = pd.read_csv('lego_sets_clean_train.csv') - data_test = pd.read_csv('lego_sets_clean_test.csv') - - # Wydzielenie zbiorów dla predykcji ceny zestawu na podstawie liczby klocków, którą zawiera - train_piece_counts = np.array(data_train['piece_count']) - train_prices = np.array(data_train['list_price']) - test_piece_counts = np.array(data_test['piece_count']) - test_prices = np.array(data_test['list_price']) - - # Normalizacja - normalizer = layers.Normalization(input_shape=[1, ], axis=None) - normalizer.adapt(train_piece_counts) - - # Inicjalizacja - model = tf.keras.Sequential([ - normalizer, - layers.Dense(units=units) - ]) - - # Kompilacja - model.compile( - optimizer=tf.optimizers.Adam(learning_rate=learning_rate), - loss='mean_absolute_error' - ) - - # Trening - history = model.fit( - train_piece_counts, - train_prices, - epochs=EPOCHS_NUM, - verbose=0, - validation_split=0.2 - ) - - # Wykonanie predykcji na danych ze zbioru testującego - y_pred = model.predict(test_piece_counts) - - # Zapis predykcji do pliku - results = pd.DataFrame( - {'test_set_piece_count': test_piece_counts.tolist(), 'predicted_price': [round(a[0], 2) for a in y_pred.tolist()]}) - results.to_csv('lego_reg_results.csv', index=False, header=True) - - # 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') - - # Przykładowo zwracamy coś w charakterze wyników, żeby było widoczne w plikach zapisanych przez obserwator - hist = pd.DataFrame(history.history) - hist['epoch'] = history.epoch - _run.info["train_results"] = str(hist.tail()) - return hist.tail() - -@ex.automain -def main(units, learning_rate): - print(train()) \ No newline at end of file