Keras - TensorBoard 不保存日志文件

Keras - TensorBoard does not save the logs file

作为网络的例子,我用了第一个例子here

我想在这个网络上使用 tensorboard。在阅读了关于如何使用 TensorBoard 的 documentation 之后,我将这些命令添加到代码中:

from keras.callbacks import TensorBoard
TensorBoard("Directory path that contains the log files")

输出听起来正确:

Out[3]: <keras.callbacks.TensorBoard at 0x7f14730e79b0>

但是目录里什么都没有...

我做错了什么?

完整代码如下:

import keras
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation
from keras.optimizers import SGD
from keras.callbacks import TensorBoard

# Generate dummy data
import numpy as np
x_train = np.random.random((1000, 20))
y_train = keras.utils.to_categorical(np.random.randint(10, size=(1000, 1)), num_classes=10)
x_test = np.random.random((100, 20))
y_test = keras.utils.to_categorical(np.random.randint(10, size=(100, 1)), num_classes=10)

model = Sequential()
# Dense(64) is a fully-connected layer with 64 hidden units.
# in the first layer, you must specify the expected input data shape:
# here, 20-dimensional vectors.
model.add(Dense(64, activation='relu', input_dim=20))
model.add(Dropout(0.5))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))

sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy',
              optimizer=sgd,
              metrics=['accuracy'])

model.fit(x_train, y_train,
          epochs=20,
          batch_size=128)
score = model.evaluate(x_test, y_test, batch_size=128)
TensorBoard("Directory path that contains the log files") 

您需要将回调传递给model.fit:

tb = TensorBoard('log_dir')
model.fit(x_train, y_train,
          epochs=20,
          batch_size=128,
          callbacks=[tb])