1.在keras搭建的神经网络中使用tensorboard
主要看需要导入tensorboard,并在model.fit()的callbacks中设置参数,很多代码都是根据epoch的次数来绘制loss值和acc值的,想根据batch(即迭代次数绘制loss值和acc值,只需要更改update_freq的参数为"batch"),tensboard其他常用参数可参考 神经网络学习小记录43——Keras中Tensorboard的使用,我的设置如下:
from keras.callbacks import TensorBoard
model.fit(X_train, Y_train,
batch_size=batch_size, nb_epoch=nb_epoch,
verbose=1,
validation_data=(X_test, Y_test),
callbacks=[history,model_checkpoint,TensorBoard(log_dir=r"./mytensotboard",
histogram_freq=1,update_freq="batch",)])
根据迭代次数绘制的loss值变化如下图:
2.tensorboard在游览器中显示
最好使用Google游览器,其他游览器可能不能显示,在cmd窗口输入:tensorboard --logdir 保存的log路径 --host=127.0.0.1,我在cmd窗口输入如下
tensorboard --logdir E:\jupyter_notebook\U_net_rural_road_extraction\mytensotboard --host=127.0.0.1
最后附上使用minst数据集实验的全部代码,其中losshistory类似乎只能根据epoch记录loss和acc的值,可以去掉:
from __future__ import print_function
import numpy as np
np.random.seed(1337) # for reproducibility
import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation
from keras.optimizers import SGD, Adam, RMSprop
from keras.utils import np_utils
import matplotlib.pyplot as plt
from keras.callbacks import ModelCheckpoint
from keras.callbacks import TensorBoard
# %matplotlib inline
#写一个LossHistory类,保存loss和acc
class LossHistory(keras.callbacks.Callback):
def on_train_begin(self, logs={
}):
self.losses = {
'batch':[], 'epoch'