解决tensorboard调用Web显示时出现的No dashboards are active for the current data set错误
第一次用Tensorflow的TensorBoard,到打开网页显示TensorBoard这一步出现了问题,提示No dashboards are active for the current data set的tensorboard,也就是TensorBoard没有找到events文件:
去百度了非常多的论坛和帖子,要么是TF1老版本Filesave指令,要么就报错不成功,后来经过多次实验终于成功,下面是正确操作过程。
代码部分
代码直接用的是Keras官方演示TensorBroad的demo:
import tensorflow as tf
import datetime
data_mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = data_mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
def create_model():
return tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(512, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
])
model = create_model()
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
log_dir = "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1) # tensorboard_callback回调可确保创建和存储日志
model.fit(x=x_train, y=y_train, epochs=5, validation_data=(x_test, y_test), callbacks=[tensorboard_callback])
上面代码实现了一个简单的前向传播层,并且将数据保存,通过添加 tf.keras.callback.TensorBoard 回调可确保创建和存储日志.另外,在每个时期启用 histogram_freq=1 的直方图计算功能(默认情况下处于关闭状态)。注意其中的log_dir部分,这里存储了路径,下面要用到。
PS:代码参考https://tensorflow.google.cn/tensorboard/get_started?
LOG目录
最关键的一部来了:你要准确找到TensorBoard的日志存储目录。以上代码的存储默认在了你的Py工程文件根目录下,例如下图
但是这并不是指令要写的目录,指令要写的目录还要再下一级到fit目录,这个fit目录就是上面py代码中的log_dir = “logs/fit/” +部分,名称是可以任意修改的,只要目录和py中一致即可:
这才是CMD指令需要的目录!
CMD指令
网上给的指令格式可谓是五花八门,很多现在都会报错,目前正确写法:
tensorboard --logdir=fit文件夹路径
将“fit文件夹路径”替换成你的路径即可,例如按照上图的话应该写为:(直接打开在CMD后,在窗口中复制粘贴即可。不需要所谓的管理员权限,也不需要先CD到目录在复制指令。)
tensorboard --logdir=D:\boyLen\py\Pylearn1\logs\fit\
回车,等待成功会显示:
此时不要动CMD,打开浏览器地址输入:(不一定要用Chrome;360Chorme、EDGE、手机端Safri等都可以正常使用,但360Chrome注意注意模式不要是兼容模式,应该是极速模式。)
http://localhost:6006/
打开该网页后就可以正常显示了,如图:
我的版本:Tensorflow2.2.0;python3.7;Win10 1903;