Как мне вывести, как выглядит функция стоимости после моего регуляризатора для моего собственного анализа?
Конечно, вы можете добиться этого, получив вывод (yourlayer.output
) слоя, который вы хотите просмотреть, и распечатать его (см. здесь). Однако есть лучшие способы визуализировать эти вещи.
Встречайте Tensorboard.
Это мощный инструмент визуализации, который позволяет отслеживать и визуализировать ваши метрики, выходные данные, архитектуру, инициализацию ядра и т. д. Хорошая новость заключается в том, что уже существует Обратный вызов Tensorboard Keras, который вы можете использовать для этой цели; вам просто нужно импортировать его. Чтобы использовать его, просто передайте экземпляр обратного вызова вашему методу fit
, примерно так:
from keras.callbacks import TensorBoard
#indicate folder to save, plus other options
tensorboard = TensorBoard(log_dir='./logs/run1', histogram_freq=1,
write_graph=True, write_images=False)
#save it in your callback list
callbacks_list = [tensorboard]
#then pass to fit as callback, remember to use validation_data also
model.fit(X, Y, callbacks=callbacks_list, epochs=64,
validation_data=(X_test, Y_test), shuffle=True)
После этого запустите сервер Tensorboard (он работает локально на вашем компьютере), выполнив:
tensorboard --logdir=logs/run1
Например, вот как выглядят мои ядра на двух разных моделях, которые я тестировал (чтобы сравнить их, вам нужно сохранить отдельные прогоны, а затем вместо этого запустить Tensorboard в родительском каталоге). Это на вкладке «Гистограммы» на моем втором слое:
Модель слева я инициализировал с помощью kernel_initializer='random_uniform'
, поэтому ее форма соответствует равномерному распределению. Модель справа справа я инициализировал с помощью kernel_initializer='normal'
, поэтому она выглядит как распределение Гаусса на протяжении всех моих эпох (около 30).
Таким образом, вы могли бы визуализировать, как «выглядят» ваши ядра и слои, более интерактивным и понятным способом, чем вывод на печать. Это лишь одна из замечательных функций Tensorboard, которая может помочь вам быстрее и лучше разрабатывать модели глубокого обучения.
Конечно, для обратного вызова Tensorboard и для Tensorboard в целом есть больше вариантов, поэтому я предлагаю вам внимательно прочитать предоставленные ссылки, если вы решите попробовать это. Для получения дополнительной информации вы можете проверить это и тоже это вопросы.
Редактировать: Итак, вы комментируете, что хотите знать, как аналитически "выглядит" ваш урегулированный убыток. Давайте помнить, что, добавляя регуляризатор к функции потерь, мы, по сути, расширяем функцию потерь, чтобы включить в нее некоторый «штраф» или предпочтение. Итак, если вы используете cross_entropy
в качестве функции потерь и добавляете регуляризатор l2
(то есть евклидову норму) с весом 0,01, вся ваша функция потерь будет выглядеть примерно так:
person
DarkCygnus
schedule
02.02.2018