Z Kerasem zbudowałem sieć neuronową. Jego dane wizualizowałbym za pomocą Tensorboard, dlatego wykorzystałem:
keras.callbacks.TensorBoard(log_dir='/Graph', histogram_freq=0,
write_graph=True, write_images=True)
jak wyjaśniono w keras.io . Kiedy uruchamiam wywołanie zwrotne, które otrzymuję <keras.callbacks.TensorBoard at 0x7f9abb3898>
, ale nie otrzymuję żadnego pliku w moim folderze „Graph”. Czy jest coś nie tak w sposobie użycia tego wywołania zwrotnego?
keras
tensorboard
Simone
źródło
źródło
histogram_freq
do1
. "histogram_freq: częstotliwość (w epokach), przy której należy obliczyć histogramy aktywacji dla warstw modelu. Jeśli jest ustawiona na 0, histogramy nie będą obliczane."Odpowiedzi:
Ta linia tworzy obiekt Callback Tensorboard, powinieneś przechwycić ten obiekt i przekazać go
fit
funkcji twojego modelu.W ten sposób przekazałeś funkcję wywołania zwrotnego. Zostanie uruchomiony podczas szkolenia i wygeneruje pliki, których można używać z tensorboard.
Jeśli chcesz zwizualizować pliki utworzone podczas treningu, uruchom w swoim terminalu
Mam nadzieję że to pomoże !
źródło
Oto jak używasz wywołania zwrotnego TensorBoard :
źródło
histogram_freq=0
jest ustawiane, jeśli tensorboard nie rejestruje żadnego histogramu wedługtf.summary.histogram
- w przeciwnym raziehistogram_freq
NIE jest równe 0!Zmiana
do
i ustaw swój model
Uruchom swój terminal
źródło
AttributeError: 'TensorBoard' object has no attribute 'set_model'
.Jeśli pracujesz z biblioteką Keras i chcesz użyć tensorboard do wydrukowania wykresów dokładności i innych zmiennych, poniżej znajdują się kroki, które należy wykonać.
Krok 1: Zainicjuj bibliotekę wywołań zwrotnych keras, aby zaimportować tensorboard za pomocą poniższego polecenia
krok 2: Dołącz poniższą komendę do swojego programu tuż przed komendą "model.fit ()".
Uwaga: użyj „./graph”. Wygeneruje folder wykresów w Twoim bieżącym katalogu roboczym, unikaj używania "/ graph".
krok 3: Uwzględnij wywołanie zwrotne Tensorboard w „model.fit ()”. Przykład znajduje się poniżej.
krok 4: Uruchom kod i sprawdź, czy folder z wykresami znajduje się w katalogu roboczym. jeśli powyższe kody działają poprawnie, w katalogu roboczym będziesz mieć folder „Graph”.
krok 5: Otwórz Terminal w katalogu roboczym i wpisz poniższe polecenie.
Krok 6: Teraz otwórz przeglądarkę internetową i wprowadź poniższy adres.
Po wejściu otworzy się strona Tensorbaord, na której możesz zobaczyć wykresy różnych zmiennych.
źródło
histogram_freq=0
jest ustawiane, jeśli tensorboard nie rejestruje żadnego histogramu wedługtf.summary.histogram
- w przeciwnym raziehistogram_freq
NIE jest równe 0!Oto kod:
Zasadniczo
histogram_freq=2
jest to najważniejszy parametr do dostrojenia podczas wywoływania tego wywołania zwrotnego: ustawia interwał epok do wywołania wywołania zwrotnego, aby wygenerować mniej plików na dyskach.Oto przykładowa wizualizacja ewolucji wartości ostatniego splotu w trakcie treningu, raz widziana w TensorBoard, w zakładce „histogramy” (i znalazłem zakładkę „rozkłady” zawierającą bardzo podobne wykresy, ale odwrócone z boku):
Jeśli chcesz zobaczyć pełny przykład w kontekście, możesz odnieść się do tego projektu open source: https://github.com/Vooban/Hyperopt-Keras-CNN-CIFAR-100
źródło
Jeśli używasz google-colab, prosta wizualizacja wykresu wyglądałaby tak:
źródło
Napisałeś
log_dir='/Graph'
czy miałeś na myśli./Graph
zamiast tego? Wysłałeś to/home/user/Graph
w tej chwili do.źródło
/Graph
tworzyć folder w katalogu domowym użytkownika, zamiast używać go/Graph
bezpośrednio?Powinieneś sprawdzić Losswise ( https://losswise.com ), ma wtyczkę do Keras, która jest łatwiejsza w użyciu niż Tensorboard i ma kilka fajnych dodatkowych funkcji. Z Losswise po prostu użyjesz,
from losswise.libs import LosswiseKerasCallback
a potemcallback = LosswiseKerasCallback(tag='my fancy convnet 1')
i jesteś gotowy (patrz https://docs.losswise.com/#keras-plugin ).źródło
Jest kilka rzeczy.
Po pierwsze,
/Graph
ale./Graph
Po drugie, kiedy używasz wywołania zwrotnego TensorBoard, zawsze przekazuj dane walidacyjne, ponieważ bez tego nie uruchomiłoby się.
Po trzecie, jeśli chcesz używać czegokolwiek poza podsumowaniami skalarnymi, powinieneś używać tylko tej
fit
metody, ponieważfit_generator
nie zadziała. Lub możesz przepisać wywołanie zwrotne do pracyfit_generator
.Aby dodać wywołania zwrotne, po prostu dodaj je do
model.fit(..., callbacks=your_list_of_callbacks)
źródło
Utwórz wywołanie zwrotne Tensorboard:
Przekaż wywołanie zwrotne Tensorboard do połączenia fit:
Jeśli podczas uruchamiania modelu zostanie wyświetlony błąd Keras o wartości
spróbuj zresetować sesję Keras przed utworzeniem modelu, wykonując:
źródło
You must feed a value for placeholder tensor
. Masz jakiś pomysł, dlaczego?