fix report
This commit is contained in:
parent
bb5b59fe48
commit
e5cb3a8722
@ -2,7 +2,9 @@
|
|||||||
|
|
||||||
|
|
||||||
**Autor:** Maksymilian Kierski
|
**Autor:** Maksymilian Kierski
|
||||||
|
|
||||||
**Raportowany okres:** 15.05.2020-26.05.2020
|
**Raportowany okres:** 15.05.2020-26.05.2020
|
||||||
|
|
||||||
**Wybrana metoda uczenia:** Splotowe sieci neuronowe (CNN)
|
**Wybrana metoda uczenia:** Splotowe sieci neuronowe (CNN)
|
||||||
|
|
||||||
## Cel podprojektu
|
## Cel podprojektu
|
||||||
@ -128,9 +130,16 @@ model.add(Flatten())
|
|||||||
model.add(Dense(1))
|
model.add(Dense(1))
|
||||||
model.add(Activation('sigmoid'))
|
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
|
## 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')**
|
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')])
|
prediction = model.predict([prepare(relative_path + 'TestData/' + name + '.jpg')])
|
||||||
return int(prediction[0][0])
|
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.
|
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.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user