tensorboard同时显示训练数据和测试数据的曲线

学着用tensorboard在一个模型里面有训练模型和测试模型的损失函数曲线对比,上网找了好多,但是还都是一个曲线,即自己画的是这样的

但是想要的是这样的:

到底应该怎么样呢?

简单操作:

tensorboard --logdir=run1:"/home/.../summary",run2:"/home/.../summary" 
其实只要在终端同时运行几个events即可,events就是summary生成的那个东西,

然后注意了,还有个骚操作:

注意,左上角的ignore outliers in chart scaling 没点时是上图,如果点了,就是下面的图了

最后附上我的代码,可以自己耍一下。

# -*- coding: utf-8 -*-
"""
Created on Tue May 29 09:17:55 2018
@author: 618
"""
 
import tensorflow as tf
import numpy as np
 
trX = np.linspace(-1, 1, 100)
trY = trX + np.random.randn(*trX.shape)*0.33
 
teX = np.linspace(2, 3, 100)
teY = teX
 
X = tf.placeholder(tf.float32, [100,], name="input_x")
Y = tf.placeholder(tf.float32, [100,], name="output_y")
X1 = tf.placeholder(tf.float32, [100,], name="input_x1")
Y1 = tf.placeholder(tf.float32, [100,], name="output_y1")
 
def model(X, w):
    return tf.multiply(X, w)
 
w = tf.Variable(0.1, name='weights')
 
with tf.name_scope("cost"):
    y_model = model(X, w)
    cost = tf.reduce_mean(tf.square(Y - y_model))
tf.summary.scalar('loss', cost)
 
with tf.name_scope("train"):
    train_op = tf.train.AdamOptimizer(0.01).minimize(cost)
 
with tf.name_scope("test_cost"):
    y_model = model(X, w)
    test_cost = tf.reduce_mean(tf.square(Y - y_model))
tf.summary.scalar('test_loss', test_cost)
 
merged = tf.summary.merge_all()
with tf.Session() as sess:
    tf.global_variables_initializer().run()
    summary_writer = tf.summary.FileWriter('./log/train', sess.graph)
    summary_writer1 = tf.summary.FileWriter('./log/test')
    for i in range(1000):
        feed_dict = {}
        if i % 100 == 0:
            print(sess.run(cost, feed_dict={X: trX, Y: trY}))
            print(sess.run(test_cost, feed_dict={X: teX, Y: teY}))
            summary, _ = sess.run([merged, test_cost], feed_dict={X: teX, Y: teY})
            summary_writer1.add_summary(summary, i)
        else:
            summary, _ =sess.run([merged, train_op], feed_dict={X: trX, Y: trY})
            summary_writer.add_summary(summary,i)
    print(sess.run(w))
    summary_writer.close()
    summary_writer1.close()
 


 
 
 

 

TensorBoard同时展示训练曲线测试曲线,是监控模型训练性能泛化能力的重要手段。为此,你可以在记录scalar值时使用不同的标签区分训练测试数据。以下是详细步骤代码示例: 参考资源链接:[tensorboard实现同时显示训练曲线测试曲线](https://wenku.youkuaiyun.com/doc/645cd8b195996c03ac3f8705?spm=1055.2569.3001.10343) 1. 首先确保TensorFlow库已安装。如果没有安装,可以通过pip安装:`pip install tensorflow`。 2. 在训练模型的代码中,需要引入TensorBoard的summary功能,并在每轮迭代时记录训练损失测试损失。 3. 使用`tf.summary.scalar`记录标量值,并使用不同的标签区分训练测试数据。例如:`tf.summary.scalar('train_loss', train_loss, step=epoch)``tf.summary.scalar('test_loss', test_loss, step=epoch)`。 4. 在TensorFlow的会话中,每次迭代调用summary操作,并将结果写入事件文件。 5. 启动TensorBoard并指定事件文件所在的目录:`tensorboard --logdir=path_to_your_event_files`。 6. 在浏览器中打开TensorBoard提供的URL地址,即可同时查看训练测试曲线。 通过这种方式,你可以直观地比较训练过程中的模型表现与测试集上的表现,及时调整模型参数训练策略。 为了进一步提升你对TensorBoard使用的深度理解实战技能,建议深入学习《tensorboard实现同时显示训练曲线测试曲线》这篇资源。它不仅讲解了如何同时展示这两种曲线,还可能包含更多实用的技巧最佳实践,帮助你在机器学习项目中更有效地进行模型监控分析。 参考资源链接:[tensorboard实现同时显示训练曲线测试曲线](https://wenku.youkuaiyun.com/doc/645cd8b195996c03ac3f8705?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值