我已经建立了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?