keras使用Tensorboard

tensorboard可視化 夠震撼,但是 使用tf來生成log,有點麻煩。

那就是用tf的高層封裝 Keras來生成log,進而啟動tensorboard。

 

只需要 引入 tensorBoard

from keras.callbacks import TensorBoard,

然後在fit的時候,添加 callbacks=[TensorBoard(log_dir='./log_dir')]  就可以了。

然後 使用Tensorboard --logdir log_path --port 8999,

然後再chrome中 填入相應地址即可(tensorboard啟動后,會給出訪問地址)

 

代碼如下:

 

import keras
from tflearn.layers.core import fully_connected
from keras.datasets import mnist
from keras.layers import Input, Dense
from keras.models import Model

num_classes = 10
img_rows, img_cols = 28, 28
 
# 通过Keras封装好的API加载MNIST数据。
(trainX, trainY), (testX, testY) = mnist.load_data()
trainX = trainX.reshape(trainX.shape[0], img_rows * img_cols)
testX = testX.reshape(testX.shape[0], img_rows * img_cols)

trainX = trainX.astype('float32')
testX = testX.astype('float32')
trainX /= 255.0
testX /= 255.0

trainY = keras.utils.to_categorical(trainY, num_classes)
testY = keras.utils.to_categorical(testY, num_classes)

 

# 定义两个输入。
input1 = Input(shape=(784,), name = "input1")
input2 = Input(shape=(10,), name = "input2")

# 定义第一个输出。
x = Dense(1, activation='relu')(input1)
output1 = Dense(10, activation='softmax', name = "output1")(x)

# 定义第二个输出。
y = keras.layers.concatenate([x, input2])
output2 = Dense(10, activation='softmax', name = "output2")(y)

model = Model(inputs=[input1, input2], outputs=[output1, output2])

# 定义损失函数、优化函数和评测方法。
model.compile(loss=keras.losses.categorical_crossentropy,
              optimizer=keras.optimizers.SGD(),
              loss_weights = [1, 0.1],
              metrics=['accuracy'])

 

from keras.callbacks import TensorBoard

model.fit([trainX, trainY], [trainY, trainY],
          batch_size=128,
          epochs=20,
          validation_data=([testX, testY], [testY, testY]),callbacks=[TensorBoard(log_dir='./log_dir')])

 

圖示如下:

keras使用Tensorboard