Преглед на TensorBoard
TensorBoard е рамка за визуализация на tensorflow за разбиране и проверка на потока на алгоритмите за машинно обучение.
Оценката на модела на машинно обучение може да се извърши чрез много показатели като загуба, точност, графика на модела и много други. Производителността на алгоритъма за машинно обучение зависи от избора на модел и хиперпараметрите, подадени в алгоритъма. Експериментите се извършват чрез промяна на стойностите на тези параметри.
Моделите за дълбоко обучение са като черна кутия, трудно е да се намери обработката, която се извършва вътре в нея. Важно е да добиете представа за изграждането на модела. С помощта на визуализацията можете да знаете кои параметри да промените с какво количество, за да получите подобрението в производителността на модела. Така TensorBoard е важен инструмент за визуализиране на всяка епоха по време на фазата на обучение на модел.
Инсталация
За да инсталирате тензорната дъска с помощта на pip, изпълнете следната команда:
pip install tensorboard
Алтернативно, той може да бъде инсталиран с помощта на команда conda,
Conda install tensorboard
употреба
Използване на тендерборд с модел Keras:
Keras е библиотека с отворен код за модели за задълбочено обучение. Това е библиотека на високо ниво, която може да се изпълнява на върха на tensorflow, theano и т.н.
За да инсталирате библиотеката tensorflow и Keras с помощта на pip:
pip install tensorflow pip install Keras
Нека вземем прост пример за класификация, използвайки набора от данни MNIST. MNIST е английски цифров набор от данни, който съдържа изображения на числа от 0-9. Предлага се с библиотеката на Керас.
- Импортирайте библиотеката tensorflow, тъй като ние ще използваме Keras с tensorflow backkend.
import tensorflow as tf
- Първо заредете MNIST набора от Keras в база данни за обучение и тест.
mnist = tf.keras.datasets.mnist
- Последователният модел е създаден с помощта на,
tf.keras.models.Sequential
- За обучението се използва моделът Model.fit (). Дневниците могат да бъдат създадени и съхранявани с помощта на,
tf.keras.callback.TensorBoard
- За да активирате изчисленията на хистограма,
histogram_freq=1.
Изключено е по подразбиране.
Кодът за по-горе обсъжданата класификация на набора от данни на MNIST е както следва:
# 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))
За да стартирате tensorboard на локалния сървър, отидете на директорията, където е инсталиран tensorflow, и след това изпълнете следната команда:
tensorboard --logdir=/path/to/logs/files
-
Scalars
Скаларите показват промяна с всяка епоха. Горната фигура показва графиката на точност и загуба след всяка епоха. Epoch_acc и epoch_loss са точност на тренировката и загуба на тренировки. Като има предвид, че epoch_val_acc и epoch_val_loss са точността и загубата на валидиращи данни.
По-светлите оранжеви линии показват точност или загуба, а по-тъмните представляват изгладени стойности. Изглаждането помага за визуализиране на общата тенденция в данните.
-
Графики
Страницата Graph ви помага да визуализирате графиката на вашия модел. Това ви помага да проверите дали моделът е изграден правилно или не.
За да визуализираме графиката, трябва да създадем сесия и след това обект TensorFLow FileWriter. За да създадем обекта на писател, трябва да преминем пътя, където се съхранява обобщението, и сесе.граф като аргумент.
writer = tf.summary.FileWriter(STORE_PATH, sess.graph)
tf.placeholder () и tf.Variable () се използва за заместители и променливи в кода tensorflow.
Това показва графичната визуализация на модела, който сме изградили. Всички заоблени правоъгълници са пространства с имена. И овалите показват математическите операции.
Константите са показани като малки кръгове. За да намали претрупването в графиката, тензорът прави някои опростявания, като използва пунктирани овали или заоблени правоъгълници с пунктирани линии. Това са възлите, които са свързани с много други възли или всички възли. Така те се съхраняват като изпъкнати в графиката и техните детайли могат да се видят в горния десен ъгъл. В горния десен ъгъл е осигурена връзка към градиенти, градиентни спускания или възелчета за иницииране.
За да знаете броя на тензорите, влизащи вътре и излизащи от всеки възел, можете да видите ръбовете в графиката. Краищата на графиката описват броя тензори, протичащи в графиката. Това помага при идентифицирането на входните и изходните размери от всеки възел. Това помага при отстраняване на грешки при всеки проблем.
-
Разпределения и хистограми
Това показва разпределението на тензора с времето, както и тежести и отклонения. Това показва напредъка на входовете и изходите във времето за всяка епоха. Има две опции за гледане:
Отместване и наслагване.
Изгледът на изместване на хистограмите ще бъде следният:
Изгледът на Overlay на хистограмата е:
Страницата за разпространение показва статистическите разпределения. Графиката показва средните и стандартните отклонения.
Ползи
- TensorBoard помага за визуализиране на обучението, като пише резюмета на модела като скалари, хистограми или изображения. Това от своя страна помага да се подобри точността на модела и лесното отстраняване на грешки.
- Дълбоката обработка на обучението е нещо с черна кутия, а тензорът помага за разбирането на обработката, която се извършва в черната кутия с помощта на графики и хистограми.
Заключение - TensorBoard
TensorBoards осигурява визуализация на модела за дълбоко печелене, който се обучава и помага за разбирането им. Може да се използва с TensorFlow и Keras и двете. Основно осигурява визуализиране на поведението на скалари, показатели с помощта на хистограми и моделна графика като цяло.
Препоръчителни статии
Това е ръководство за TensorBoard. Тук обсъждаме инсталирането и използването на Tensboard, използвайки го с модел Keras с предимства. Може да разгледате и следните статии, за да научите повече -
- Въведение в Tensorflow
- Как да инсталирате TensorFlow
- Какво е TensorFlow?
- TensorFlow Playground
- Основи на Tensorflow