TensorBoard可视化
程序员文章站
2022-04-26 09:39:39
...
tensorboard可以实现在web端显示监听的数据变化。
以mnist手写字识别为例。
下载安装tensorboard
1.直接在pycharm中下载
2.cmd直接pip
监听目录
先到程序的根目录,然后tensorboard --logdir logs,找到网址复制到网页打开,若失败则将网址冒号前改成localhost
在cpu端建立日志summary
current_time = datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
log_dir = 'logs/' + current_time
summary_writer = tf.summary.create_file_writer(log_dir) #创建writer,可以喂数据
喂数据给summary
if step % 100 == 0:#每隔一段时间给train-loss喂数据
print(step, 'loss:', float(loss))
with summary_writer.as_default():
tf.summary.scalar('train-loss', float(loss), step=step) #喂scalar数据给loss,x轴step
# evaluate
if step % 500 == 0:#每隔一段时间给test-acc喂数据
total, total_correct = 0., 0
for _, (x, y) in enumerate(ds_val):
# [b, 28, 28] => [b, 784]
x = tf.reshape(x, (-1, 28*28))
# [b, 784] => [b, 10]
out = network(x)
# [b, 10] => [b]
pred = tf.argmax(out, axis=1)
pred = tf.cast(pred, dtype=tf.int32)
# bool type
correct = tf.equal(pred, y)
# bool tensor => int tensor => numpy
total_correct += tf.reduce_sum(tf.cast(correct, dtype=tf.int32)).numpy()
total += x.shape[0]
print(step, 'Evaluate Acc:', total_correct/total)
# print(x.shape)
val_images = x[:25]
val_images = tf.reshape(val_images, [-1, 28, 28, 1])
with summary_writer.as_default():
tf.summary.scalar('test-acc', float(total_correct/total), step=step)#喂数据
tf.summary.image("val-onebyone-images:", val_images, max_outputs=25, step=step)#喂图片,方式很零散
val_images = tf.reshape(val_images, [-1, 28, 28])
figure = image_grid(val_images)
tf.summary.image('val-images:', plot_to_image(figure), step=step)#人为拼接图片,多张图片以一张传,优先考虑
查看
最上面的图是喂的单张图片,下面是人为组合过后的图片。