Mam funkcjonalny model w Keras (Resnet50 z przykładów repo). Trenowałem to z danymi ImageDataGenerator
i flow_from_directory
i zapisałem model do pliku .h5
. Kiedy zadzwonię pod numer model.predict
otrzymam tablicę prawdopodobieństw klasowych. Ale chcę skojarzyć je z etykietami klas (w moim przypadku - nazwami folderów). Jak mogę je zdobyć? Zauważyłem, że mogę używać model.predict_classes
i model.predict_proba
, ale nie mam tych funkcji w modelu funkcjonalnym, tylko w Sekwencyjnym.Pobierz etykiety klas z funkcjonalnego modelu Keras
Odpowiedz
AKTUALIZACJA: Nie dotyczy to nowszych wersji Keras. Proszę użyć argmax()
jak w odpowiedzi od Emilii Apostolovej.
Funkcjonalne modele API mają tylko funkcję predict()
, która dla klasyfikacji zwróci prawdopodobieństwo klas. Następnie można wybrać najbardziej prawdopodobne klasy przy użyciu funkcji użytecznej probas_to_classes()
. Przykład:
y_proba = model.predict(x)
y_classes = keras.np_utils.probas_to_classes(y_proba)
Jest to odpowiednik model.predict_classes(x)
w modelu sekwencyjnym.
Powodem tego jest to, że funkcjonalny interfejs API obsługuje bardziej ogólną klasę zadań, gdzie predict_classes()
nie ma sensu.
Więcej informacji: https://github.com/fchollet/keras/issues/2524
Gdy używa się katalog_zakresu_przepływu, problem polega na interpretacji wyników prawdopodobieństwa. W jaki sposób odwzorować wyniki prawdopodobieństwa i etykiety klas tak, jak katalog_pliku_przepływu tworzy wektory, które nie są znane w poprzednich wersjach.
Możemy słownika, który mapuje etykiety klasy do indeksu wektora predykcji, które otrzymujemy na wyjściu, gdy używamy
generator= train_datagen.flow_from_directory("train", batch_size=batch_size)
label_map = (generator.class_indices)
Zmienna label_map jest słownikiem jak ten
{'class_14': 5, 'class_10': 1, 'class_11': 2, 'class_12': 3, 'class_13': 4, 'class_2': 6, 'class_3': 7, 'class_1': 0, 'class_6': 10, 'class_7': 11, 'class_4': 8, 'class_5': 9, 'class_8': 12, 'class_9': 13}
Następnie można uzyskać zależność między wynikami prawdopodobieństwa a nazwami klas.
Zasadniczo możesz utworzyć ten słownik według tego kodu.
from glob import glob
class_names = glob("*") # Reads all the folders in which images are present
class_names = sorted(class_names) # Sorting them
name_id_map = dict(zip(class_names, range(len(class_names))))
Zmienna name_id_map w powyższym kodu zawiera tego samego słownika jak ten uzyskany z class_indices funkcji flow_from_directory.
Mam nadzieję, że to pomoże!
- 1. Wywołanie stanu LSTM jako modelu funkcjonalnego?
- 2. Korzystanie Keras ImageDataGenerator w modelu regresji
- 3. Jak znaleźć Liczba parametrów modelu keras?
- 4. Twórz prognozy za pomocą wykresu tensorflow z modelu keras
- 5. Pobierz nazwę AssemblyCompanyName z biblioteki klas
- 6. Appengine - Reportlab (Pobierz zdjęcie z modelu)
- 7. Trafność sprawdzania modelu w mocno typowanych językach programowania funkcjonalnego?
- 8. Jak korzystać z modelu tensorflow wyodrębnionego z przeszkolonego modelu kerasów?
- 9. Jak sprawdzić wagi po każdym epoc w modelu Keras
- 10. Uzyskiwanie gradientu danych wyjściowych modelu w.r.t przy użyciu Keras
- 11. Pandy - KeyError: "[] nie w indeksie" podczas szkolenia modelu Keras
- 12. Model maszyny do programowania funkcjonalnego
- 13. Keras | Pierwsze przykładowe rozpoczęcia v3 działa
- 14. TimeDistributed vs. TimeDistributedDense Keras
- 15. Keras Implementacja funkcji utraty niestandardowej, która wymaga wyjścia z warstwy wewnętrznej jako etykiety
- 16. Przenoszenie modelu Entity Framework do biblioteki klas z projektu WWW
- 17. Szyny, pobierz ścieżkę zasobu w modelu
- 18. Laravel pobierz nazwę klasy powiązanego modelu
- 19. Keras, Jak uzyskać wyjście z każdej warstwy?
- 20. Django: Pobierz instancję modelu z formularza bez zapisywania
- 21. Keras + IndexError
- 22. Wielowątkowe modelowanie TensorFlow/Keras
- 23. Uwierzytelnianie testu funkcjonalnego Symfony2
- 24. O programowaniu stylu funkcjonalnego
- 25. Keras model.summary() obiekt na ciąg
- 26. Arkusze kalkulacyjne z językiem programowania funkcjonalnego
- 27. Theano z Keras na Raspberry Pi
- 28. Keras: model.evaluate vs model.predict Różnica dokładności w zadaniu NLP z wieloma klasami
- 29. Tekst etykiety Postfix z dwukropkiem
- 30. Jak przewidzieć obraz wejściowy z wyszkolonym modelem w Keras?
Obecnie kod np.utils.py (patrz https://github.com/fchollet/keras/blob/master/keras/utils/np_utils.py) nie ma metody probas_to_classes. Czy zmienili to na jakąś inną funkcję? Proszę pomóż mi. – noobalert
Mam taki sam problem jak wspomniany @noobalert, nie ma on tej funkcji. –
użyj 'y_classes = y_proba.argmax (axis = -1)' zamiast – Zach