如何使用Keras的Tensorboard回调?如何使用Keras的Tensorboard回调?(H

2019-05-12 19:14发布

我已经建立了Keras神经网络。 我会通过Tensorboard其可视化的数据,因此,我利用:

keras.callbacks.TensorBoard(log_dir='/Graph', histogram_freq=0,
                            write_graph=True, write_images=True)

作为解释keras.io 。 当我运行的回调,我得到<keras.callbacks.TensorBoard at 0x7f9abb3898>但我不我的文件夹“图形”获得的任何文件。 有什么错我是如何用这个回调?

Answer 1:

keras.callbacks.TensorBoard(log_dir='./Graph', histogram_freq=0,  
          write_graph=True, write_images=True)

该行创建了一个回调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使用的培训,并将输出文件运行。

如果你想以可视化训练过程中创建的文件,在你的终端上运行

tensorboard --logdir path_to_current_dir/Graph 

希望这可以帮助 !



Answer 2:

这是你如何使用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])


Answer 3:

更改

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)

并设置模型

tbCallback.set_model(model)

在终端运行

tensorboard  --logdir Graph/


Answer 4:

如果您正在使用Keras库的工作,并希望使用tensorboard来打印你的准确度和其他变量的图形,然后下面是需要遵循的步骤。

步骤1:初始化keras回调库通过以下命令导入tensorboard

from keras.callbacks import TensorBoard

第2步:之前“model.fit()”命令,在程序中包含下面的命令。

tensor_board = TensorBoard(log_dir='./Graph', histogram_freq=0, write_graph=True, write_images=True)

注意:使用 “./graph”。 这将产生在当前工作目录下的文件夹图形,避免使用“/图”。

步骤3:在包括“model.fit()”回调Tensorboard样品在下面给出。

model.fit(X_train,y_train, batch_size=batch_size, epochs=nb_epoch, verbose=1, validation_split=0.2,callbacks=[tensor_board])

第4步:运行你的代码,并检查您的图形文件夹中是否有你的工作目录。 如果上面的代码正常工作,您必须在您的工作目录“图”文件夹中。

第5步:在您的工作目录打开终端,然后键入以下命令。

tensorboard --logdir ./Graph

第6步:现在打开你的网页浏览器并在下面输入地址。

http://localhost:6006

进入后,Tensorbaord页面打开,你可以看到你的不同变量的曲线图。



Answer 5:

下面是一些代码:

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



Answer 6:

你写log_dir='/Graph'你的意思是./Graph呢? 您发送到/home/user/Graph的时刻。



Answer 7:

你应该看看Losswise( https://losswise.com ),它有Keras一个插件,更容易比Tensorboard使用,并且有一些不错的额外的功能。 随着Losswise你只用from losswise.libs import LosswiseKerasCallback然后callback = LosswiseKerasCallback(tag='my fancy convnet 1')你是好去(见https://docs.losswise.com/#keras-插件 )。



Answer 8:

有几件事情。

首先,并不是/Graph ,但./Graph

其次,当您使用TensorBoard回调,总是通过验证数据,因为没有它,就无法启动。

第三,如果你想使用除了标摘要任何东西,那么你应该只使用fit方法,因为fit_generator将无法正常工作。 或者,你可以重写回调一起工作fit_generator

要添加回调,只是将其添加到model.fit(..., callbacks=your_list_of_callbacks)



Answer 9:

创建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回调到合适的呼叫:

history = model.fit(X_train, y_train, epochs=200, callbacks=[tb])

当运行模式,如果你得到的Keras错误

“你必须养活值占位符张量”

尝试通过做正在重置模型创建前Keras会议:

import keras.backend as K
K.clear_session()


文章来源: How do I use the Tensorboard callback of Keras?