Я построил нейронную сеть с Керасом. Я бы визуализировал его данные с помощью Tensorboard, поэтому я использовал:
keras.callbacks.TensorBoard(log_dir='/Graph', histogram_freq=0,
write_graph=True, write_images=True)
как объяснено в keras.io . Когда я запускаю обратный вызов, я получаю <keras.callbacks.TensorBoard at 0x7f9abb3898>
, но не получаю ни одного файла в моей папке «График». Что-то не так в том, как я использовал этот обратный вызов?
keras
tensorboard
Симона
источник
источник
histogram_freq
на1
. «histogram_freq: частота (в эпохах) для вычисления гистограмм активации для слоев модели. Если установлено значение 0, гистограммы не будут вычисляться».Ответы:
keras.callbacks.TensorBoard(log_dir='./Graph', histogram_freq=0, write_graph=True, write_images=True)
Эта строка создает объект Callback Tensorboard, вы должны захватить этот объект и передать его
fit
функции вашей модели.tbCallBack = keras.callbacks.TensorBoard(log_dir='./Graph', histogram_freq=0, write_graph=True, write_images=True) ... model.fit(...inputs and parameters..., callbacks=[tbCallBack])
Таким образом, вы передали свой объект обратного вызова функции. Он будет запущен во время обучения и выведет файлы, которые можно использовать с тензорной таблицей.
Если вы хотите визуализировать файлы, созданные во время обучения, запустите в своем терминале
Надеюсь это поможет !
источник
Вот как вы используете обратный вызов TensorBoard :
from keras.callbacks import TensorBoard tensorboard = TensorBoard(log_dir='./logs', histogram_freq=0, write_graph=True, write_images=False) # define model model.fit(X_train, Y_train, batch_size=batch_size, epochs=nb_epoch, validation_data=(X_test, Y_test), shuffle=True, callbacks=[tensorboard])
источник
histogram_freq=0
он устанавливается, если тензорборд не записывает гистограммуtf.summary.histogram
- в противном случаеhistogram_freq
НЕ равен 0!+ Изменить
keras.callbacks.TensorBoard(log_dir='/Graph', histogram_freq=0, write_graph=True, write_images=True)
к
tbCallBack = keras.callbacks.TensorBoard(log_dir='Graph', histogram_freq=0, write_graph=True, write_images=True)
и установите свою модель
Запустите в своем терминале
источник
AttributeError: 'TensorBoard' object has no attribute 'set_model'
.Если вы работаете с библиотекой Keras и хотите использовать тензорную плату для печати графиков точности и других переменных, то ниже приведены шаги, которые необходимо выполнить.
Шаг 1: Инициализируйте библиотеку обратного вызова keras для импорта тензорной доски, используя команду ниже
from keras.callbacks import TensorBoard
Шаг 2: Включите приведенную ниже команду в вашу программу непосредственно перед командой «model.fit ()».
tensor_board = TensorBoard(log_dir='./Graph', histogram_freq=0, write_graph=True, write_images=True)
Примечание: используйте "./graph". Он создаст папку графика в вашем текущем рабочем каталоге, избегайте использования «/ graph».
Шаг 3: Включите обратный вызов Tensorboard в "model.fit ()". Пример приведен ниже.
model.fit(X_train,y_train, batch_size=batch_size, epochs=nb_epoch, verbose=1, validation_split=0.2,callbacks=[tensor_board])
Шаг 4: Запустите свой код и проверьте, есть ли папка с графиком в вашем рабочем каталоге. если приведенные выше коды работают правильно, у вас будет папка «График» в вашем рабочем каталоге.
Шаг 5: Откройте Терминал в вашем рабочем каталоге и введите команду ниже.
Шаг 6: Теперь откройте свой веб-браузер и введите адрес ниже.
http://localhost:6006
После входа откроется страница Tensorbaord, на которой вы сможете увидеть свои графики различных переменных.
источник
histogram_freq=0
он устанавливается, если тензорборд не записывает гистограммуtf.summary.histogram
- в противном случаеhistogram_freq
НЕ равен 0!Вот код:
K.set_learning_phase(1) K.set_image_data_format('channels_last') tb_callback = keras.callbacks.TensorBoard( log_dir=log_path, histogram_freq=2, write_graph=True ) tb_callback.set_model(model) callbacks = [] callbacks.append(tb_callback) # Train net: history = model.fit( [x_train], [y_train, y_train_c], batch_size=int(hype_space['batch_size']), epochs=EPOCHS, shuffle=True, verbose=1, callbacks=callbacks, validation_data=([x_test], [y_test, y_test_coarse]) ).history # Test net: K.set_learning_phase(0) score = model.evaluate([x_test], [y_test, y_test_coarse], verbose=0)
По сути,
histogram_freq=2
это самый важный параметр, который нужно настроить при вызове этого обратного вызова: он устанавливает интервал эпох для вызова обратного вызова с целью создания меньшего количества файлов на дисках.Итак, вот пример визуализации эволюции значений для последней свертки на протяжении обучения, когда-то увиденной в TensorBoard, на вкладке «гистограммы» (и я обнаружил, что вкладка «распределения» содержит очень похожие диаграммы, но перевернутые в сторону):
Если вы хотите увидеть полный пример в контексте, вы можете обратиться к этому проекту с открытым исходным кодом: https://github.com/Vooban/Hyperopt-Keras-CNN-CIFAR-100
источник
Если вы используете google-colab, простая визуализация графика будет:
import tensorboardcolab as tb tbc = tb.TensorBoardColab() tensorboard = tb.TensorBoardColabCallback(tbc) history = model.fit(x_train,# Features y_train, # Target vector batch_size=batch_size, # Number of observations per batch epochs=epochs, # Number of epochs callbacks=[early_stopping, tensorboard], # Early stopping verbose=1, # Print description after each epoch validation_split=0.2, #used for validation set every each epoch validation_data=(x_test, y_test)) # Test data-set to evaluate the model in the end of training
источник
Создайте обратный вызов Tensorboard:
from keras.callbacks import TensorBoard from datetime import datetime logDir = "./Graph/" + datetime.now().strftime("%Y%m%d-%H%M%S") + "/" tb = TensorBoard(log_dir=logDir, histogram_freq=2, write_graph=True, write_images=True, write_grads=True)
Передайте обратный вызов Tensorboard в вызов fit:
history = model.fit(X_train, y_train, epochs=200, callbacks=[tb])
При запуске модели, если вы получаете ошибку Keras
попробуйте сбросить сеанс Keras перед созданием модели, выполнив:
import keras.backend as K K.clear_session()
источник
You must feed a value for placeholder tensor
. Есть идеи, почему?Вы написали
log_dir='/Graph'
, вы имели ввиду./Graph
вместо этого? Вы его сейчас отправили/home/user/Graph
.источник
/Graph
создавать папку в домашнем каталоге пользователя, а не просто использовать ее/Graph
напрямую?Вы должны проверить Losswise ( https://losswise.com ), у него есть плагин для Keras, который проще в использовании, чем Tensorboard, и есть несколько приятных дополнительных функций. С Losswise вы бы просто использовали,
from losswise.libs import LosswiseKerasCallback
и тогдаcallback = LosswiseKerasCallback(tag='my fancy convnet 1')
все готово (см. Https://docs.losswise.com/#keras-plugin ).источник
Есть несколько вещей.
Во-первых, не
/Graph
но./Graph
Во-вторых, когда вы используете обратный вызов TensorBoard, всегда передавайте данные проверки, потому что без него он не запустится.
В-третьих, если вы хотите использовать что-либо, кроме скалярных сводок, вам следует использовать только этот
fit
метод, потому чтоfit_generator
он не будет работать. Или вы можете переписать обратный вызов для работы сfit_generator
.Чтобы добавить обратные вызовы, просто добавьте его в
model.fit(..., callbacks=your_list_of_callbacks)
источник