From e5cb3a87226eb69c73168ea2992f1cf76516a66e Mon Sep 17 00:00:00 2001 From: s450026 Date: Tue, 26 May 2020 22:06:13 +0200 Subject: [PATCH] fix report --- Podprojekt-CNN-Maksymilian-Kierski.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Podprojekt-CNN-Maksymilian-Kierski.md b/Podprojekt-CNN-Maksymilian-Kierski.md index 4b62ebb..2c2a3e7 100644 --- a/Podprojekt-CNN-Maksymilian-Kierski.md +++ b/Podprojekt-CNN-Maksymilian-Kierski.md @@ -2,7 +2,9 @@ **Autor:** Maksymilian Kierski + **Raportowany okres:** 15.05.2020-26.05.2020 + **Wybrana metoda uczenia:** Splotowe sieci neuronowe (CNN) ## Cel podprojektu @@ -128,9 +130,16 @@ model.add(Flatten()) model.add(Dense(1)) model.add(Activation('sigmoid')) ``` +Następnie zachodzi kompilacja modelu. Używam funkcję straty **binary_crosentropy** , ponieważ mierzymy się z problemem klasyfikacji binarnej. Problem klasyfikacji binarnej jest wtedy, gdy do rozpatrzenia mamy tylko dwa przypadki, w tym zadaniu talerz z jedzeniem(0) oraz bez jedzenia(1). Optymalizator, który użyłem jest to **adam**, a za pomocą **metrics** aktywuje monitorowanie dokładności. +Kilka słów o optymalizatorze **adam** - _Adam_, jest obecnie zalecany przy większości zadań optymalizacyjnych związanych z uczeniem, ponieważ łączy on zalety Adadelty i RMSprop, a zatem lepiej radzi sobie z większością problemów. - +Na sam koniec wywołuję funkcję uczenia, oraz zapisuję model do wykorzystania go w projekcie głównym. +``` +model.fit(X, y, batch_size=32, epochs=10, validation_split=0.1, callbacks=[tenserboard]) + +model.save(relative_path + 'SavedModels/{}.model'.format(NAME)) +``` ## Integracja z projektem Podprojekt wywołujemy naciskając **m** na klawiaturze, kelner wtedy wybiera losowo stolik i do niego idzie zaimplementowanym wcześniej algorytmem A*. Po dotarciu do wybranego miejsca, możemy wywołać funkcje sprawdzającą talerz **use_model_to_predict('img')** @@ -146,4 +155,5 @@ model = tf.keras.models.load_model(relative_path + 'SavedModels/plate-64x2-cnn.m prediction = model.predict([prepare(relative_path + 'TestData/' + name + '.jpg')]) return int(prediction[0][0]) ``` -Funkcja ta konwertuję zdjęcie zadeklarowane do wylosowanego stolika oraz odpowiednio je konwertuję. Następnie ładuję zadeklarowany model przez nas model, który zwraca nam odpowiednią liczbę, która w int() daje 0 lub 1. Odpowiednio 0 to talerz pełny a 1 to pusty. Dzięki czemu funkcją **text_speech()** możemy wyświetlić odpowiednią informacje na ekranie. \ No newline at end of file +Funkcja ta konwertuję zdjęcie zadeklarowane do wylosowanego stolika oraz odpowiednio je konwertuję. Następnie ładuję zadeklarowany model przez nas model, który zwraca nam odpowiednią liczbę, która w int() daje 0 lub 1. Odpowiednio 0 to talerz pełny a 1 to pusty. Dzięki czemu funkcją **text_speech()** możemy wyświetlić odpowiednią informacje na ekranie. + \ No newline at end of file