Przegląd TensorBoard
TensorBoard to środowisko wizualizacji tensorflow do zrozumienia i kontroli przepływu algorytmu uczenia maszynowego.
Oceny modelu uczenia maszynowego można dokonać za pomocą wielu wskaźników, takich jak utrata, dokładność, wykres modelu i wiele innych. Wydajność algorytmu uczenia maszynowego zależy od wyboru modelu i hiperparametrów wprowadzonych do algorytmu. Eksperymenty przeprowadza się poprzez zmianę wartości tych parametrów.
Modele do głębokiego uczenia się są jak czarna skrzynka, trudno jest znaleźć w niej przetwarzanie. Ważne jest, aby uzyskać wgląd w budowę modelu. Za pomocą wizualizacji możesz wiedzieć, które parametry zmodyfikować o ile, aby uzyskać poprawę wydajności modelu. Tak więc TensorBoard jest ważnym narzędziem do wizualizacji każdej epoki podczas fazy szkolenia modelu.
Instalacja
Aby zainstalować tablicę tensorboard przy użyciu pip, uruchom następujące polecenie:
pip install tensorboard
Alternatywnie można go zainstalować za pomocą polecenia conda,
Conda install tensorboard
Stosowanie
Korzystanie z tensorboardu z modelem Keras:
Keras to biblioteka typu open source do modeli głębokiego uczenia się. Jest to biblioteka wysokiego poziomu, którą można uruchomić na górze tensorflow, theano itp.
Aby zainstalować tensorflow i bibliotekę Keras za pomocą pip:
pip install tensorflow pip install Keras
Weźmy prosty przykład klasyfikacji za pomocą zestawu danych MNIST. MNIST to angielski zestaw danych numerycznych, który zawiera obrazy liczb od 0 do 9. Jest dostępny z biblioteką Keras.
- Zaimportuj bibliotekę tensorflow, ponieważ będziemy używać Keras z backendem tensorflow.
import tensorflow as tf
- Najpierw załaduj zestaw danych MNIST z Keras do zestawu danych szkoleniowych i testowych.
mnist = tf.keras.datasets.mnist
- Model sekwencyjny jest tworzony przy użyciu,
tf.keras.models.Sequential
- Do trenowania używa się modelu Model.fit (). Dzienniki można tworzyć i przechowywać za pomocą,
tf.keras.callback.TensorBoard
- Aby włączyć obliczanie histogramu,
histogram_freq=1.
Domyślnie jest wyłączone.
Kod wyżej omówionej klasyfikacji zestawu danych MNIST jest następujący:
# Simple NN to classify handwritten digits from MNIST dataset
import tensorflow as tf
import datetime
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data() x_train, x_test = x_train / 255.0, x_test / 255.0
def create_model(): return tf.keras.models.Sequential(( tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(512, activation='relu'), tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
))
model = create_model() model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=('accuracy'))
log_dir="logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)
model.fit(x=x_train, y=y_train, epochs=5, validation_data=(x_test, y_test),
callbacks=(tensorboard_callback))
Aby uruchomić tensorboard na lokalnym serwerze, przejdź do katalogu, w którym jest zainstalowany tensorflow, a następnie uruchom następującą komendę:
tensorboard --logdir=/path/to/logs/files
-
Skalary
Skalary pokazują zmiany z każdą epoką. Powyższy rysunek pokazuje wykres dokładności i utraty po każdej epoce. Epoch_acc i epoch_loss to dokładność i utrata treningu. Natomiast epoch_val_acc i epoch_val_loss to dokładność i utrata danych sprawdzania poprawności.
Jaśniejsze pomarańczowe linie pokazują dokładną dokładność lub utratę, a ciemniejsza przedstawia wygładzone wartości. Wygładzanie pomaga w wizualizacji ogólnego trendu w danych.
-
Wykresy
Strona Wykres pomaga w wizualizacji wykresu modelu. Pomaga to sprawdzić, czy model jest poprawnie zbudowany, czy nie.
Aby zwizualizować wykres, musimy utworzyć sesję, a następnie obiekt FileWriter TensorFLow. Aby utworzyć obiekt piszący, musimy podać ścieżkę, w której znajduje się podsumowanie, i argument argument sess.graph.
writer = tf.summary.FileWriter(STORE_PATH, sess.graph)
tf.placeholder () i tf.Variable () są używane dla symboli zastępczych i zmiennych w kodzie tensorflow.
To pokazuje graficzną wizualizację zbudowanego przez nas modelu. Wszystkie zaokrąglone prostokąty to przestrzenie nazw. A owale pokazują operacje matematyczne.
Stałe są wyświetlane jako małe kółka. Aby zmniejszyć bałagan na wykresie, tensorboard wprowadza pewne uproszczenia, stosując kropkowane owale lub zaokrąglone prostokąty z kropkowanymi liniami. Są to węzły połączone z wieloma innymi węzłami lub wszystkimi węzłami. Są one więc przechowywane w postaci kropkowanej na wykresie, a ich szczegóły można zobaczyć w prawym górnym rogu. W prawym górnym rogu znajduje się powiązanie z gradientami, zjazdami lub węzłami inicjującymi.
Aby poznać liczbę tensorów wchodzących i wychodzących z każdego węzła, możesz zobaczyć krawędzie na wykresie. Krawędzie wykresu opisują liczbę tensorów przepływających na wykresie. Pomaga to w identyfikacji wymiarów wejściowych i wyjściowych z każdego węzła. Pomaga to w debugowaniu dowolnego problemu.
-
Rozkłady i histogramy
Pokazuje to rozkład tensora w czasie, a także widzimy wagi i odchylenia. Pokazuje postęp wejść i wyjść w czasie dla każdej epoki. Istnieją dwie opcje wyświetlania:
Przesunięcie i nakładka.
Widok histogramów przesunięcia będzie wyglądał następująco:
Widok histogramu nakładki to:
Strona Dystrybucja pokazuje rozkłady statystyczne. Wykres pokazuje średnią i odchylenia standardowe.
Korzyści
- TensorBoard pomaga w wizualizacji uczenia się, pisząc podsumowania modelu, takie jak skalary, histogramy lub obrazy. To z kolei pomaga poprawić dokładność modelu i ułatwia debugowanie.
- Głębokie uczenie się przetwarzania jest kwestią czarnej skrzynki, a tensorboard pomaga zrozumieć przetwarzanie zachodzące w czarnej skrzynce za pomocą wykresów i histogramów.
Wniosek - TensorBoard
TensorBoards zapewnia wizualizację szkolonego modelu głębokich zarobków i pomaga w ich zrozumieniu. Można go używać zarówno z TensorFlow, jak i Keras. Zapewnia głównie wizualizację zachowania skalarów, metryk za pomocą histogramów i wykresu modelowego jako całości.
Polecane artykuły
To jest przewodnik po TensorBoard. Tutaj omawiamy instalację i użytkowanie Tensboard przy użyciu go z modelem Keras z korzyściami. Możesz także zapoznać się z następującymi artykułami, aby dowiedzieć się więcej -
- Wprowadzenie do Tensorflow
- Jak zainstalować TensorFlow
- Co to jest TensorFlow?
- Plac zabaw TensorFlow
- Podstawy Tensorflow