TensorFlow绘制loss/accuracy曲线的实例

接下来我将详细讲解“TensorFlow绘制loss/accuracy曲线的实例”的完整攻略,包含两条示例说明。

示例1:绘制loss曲线

在TensorFlow中,绘制loss曲线非常简单,我们只需要定义一个损失函数,然后使用TensorFlow的tf.summary模块记录每个epoch的损失值,最后使用TensorBoard绘制出loss曲线即可。

这里提供一个简单的例子来演示如何绘制loss曲线。

import tensorflow as tf
import numpy as np

# 定义输入数据
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3

# 定义模型
Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
biases = tf.Variable(tf.zeros([1]))
y_pred = Weights * x_data + biases

# 定义损失函数,并使用tf.summary记录每个epoch的损失值
loss = tf.reduce_mean(tf.square(y_pred - y_data))
tf.summary.scalar('loss', loss)

# 训练模型
train_op = tf.train.GradientDescentOptimizer(0.5).minimize(loss)

# 启动TensorFlow会话
with tf.Session() as sess:
    # 将tf.summary合并后的数据写入日志文件
    summary_op = tf.summary.merge_all()
    summary_writer = tf.summary.FileWriter('logs', sess.graph)

    sess.run(tf.global_variables_initializer())
    for step in range(201):
        sess.run(train_op)
        if step % 20 == 0:
            # 记录每个epoch的损失值
            summary_str = sess.run(summary_op)
            summary_writer.add_summary(summary_str, step)

上述代码中,我们定义了一个简单的线性回归模型,使用梯度下降优化器来训练模型,同时使用tf.summary模块记录每个epoch的损失值,并将记录的数据写入到日志文件中。我们可以通过运行以下命令启动TensorBoard来查看绘制出的loss曲线:

tensorboard --logdir=logs

然后在浏览器中打开http://localhost:6006,即可看到绘制出的loss曲线。

示例2:绘制accuracy曲线

同样地,我们可以利用TensorFlow的tf.summary模块来记录每个epoch的准确率,并使用TensorBoard绘制出准确率曲线。

以下是一个简单的分类模型来演示如何绘制accuracy曲线:

import tensorflow as tf
import numpy as np

# 定义输入数据
x_train = np.random.rand(100, 4)
y_train = np.eye(3)[np.random.randint(0, 3, (100,))]

# 定义模型
inputs = tf.placeholder(tf.float32, shape=[None, 4], name='inputs')
labels = tf.placeholder(tf.float32, shape=[None, 3], name='labels')
W = tf.Variable(tf.zeros([4, 3]), name='weights')
b = tf.Variable(tf.zeros([3]), name='biases')
y_logit = tf.matmul(inputs, W) + b
y_pred = tf.nn.softmax(y_logit)

# 定义损失函数,并使用tf.summary记录每个epoch的损失值和准确率
loss = tf.reduce_mean(-tf.reduce_sum(labels * tf.log(y_pred), reduction_indices=[1]))
accuracy = tf.reduce_mean(tf.cast(tf.equal(tf.argmax(y_pred, 1), tf.argmax(labels, 1)), tf.float32))
tf.summary.scalar('loss', loss)
tf.summary.scalar('accuracy', accuracy)

# 训练模型
train_op = tf.train.GradientDescentOptimizer(0.5).minimize(loss)

# 启动TensorFlow会话
with tf.Session() as sess:
    # 将tf.summary合并后的数据写入日志文件
    summary_op = tf.summary.merge_all()
    summary_writer = tf.summary.FileWriter('logs', sess.graph)

    sess.run(tf.global_variables_initializer())
    for step in range(201):
        sess.run(train_op, feed_dict={inputs: x_train, labels: y_train})
        if step % 20 == 0:
            # 记录每个epoch的损失值和准确率
            summary_str = sess.run(summary_op, feed_dict={inputs: x_train, labels: y_train})
            summary_writer.add_summary(summary_str, step)

在上述代码中,我们定义了一个简单的三分类模型,使用交叉熵损失函数来训练模型,并使用tf.summary模块记录每个epoch的损失值和准确率,并将记录的数据写入到日志文件中。我们可以通过运行以下命令启动TensorBoard来查看绘制出的accuracy曲线:

tensorboard --logdir=logs

然后在浏览器中打开http://localhost:6006,即可看到绘制出的accuracy曲线。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:TensorFlow绘制loss/accuracy曲线的实例 - Python技术站

(0)
上一篇 2023年5月17日
下一篇 2023年5月17日

相关文章

  • [机器学习]AttributeError: module ‘tensorflow’ has no attribute ‘ConfigProto’ 报错解决方法

    在代码:    config=tf.ConfigProto()     sess=tf.compat.v1.Session(config=config)  执行过程中会报错   config=tf.ConfigProto()AttributeError: module ‘tensorflow’ has no attribute ‘ConfigProto’ 问…

    tensorflow 2023年4月8日
    00
  • 10 tensorflow在循环体中用tf.print输出节点内容

    i=tf.constant(0,dtype=tf.int32) batch_len=tf.constant(10,dtype=tf.int32) loop_cond = lambda a,b: tf.less(a,batch_len) #yy=tf.Print(batch_len,[batch_len],”batch_len:”) yy=tf.constan…

    2023年4月8日
    00
  • tensorflow实现对图片的读取的示例代码

    以下是详细的“tensorflow实现对图片的读取的示例代码”的攻略: 示例一:使用tf.data.Dataset读取图片 步骤一:导入相关库 首先,需要导入TensorFlow和其他必要的库: import tensorflow as tf import numpy as np import matplotlib.pyplot as plt 步骤二:准备数…

    tensorflow 2023年5月17日
    00
  • tensorflow2.0 squeeze出错

    用tf.keras写了自定义层,但在调用自定义层的时候总是报错,找了好久才发现问题所在,所以记下此问题。 问题代码 u=tf.squeeze(tf.expand_dims(tf.expand_dims(inputs,axis=1),axis=3)@self.kernel,axis=3) 其中inputs的第一维为None,这里的代码为自定义的前向传播。我是想…

    2023年4月8日
    00
  • 编写Python脚本把sqlAlchemy对象转换成dict的教程

    下面是编写Python脚本把sqlAlchemy对象转换成dict的详细教程。 1. 安装必要的依赖 在进行脚本编写之前,我们需要先安装必要的依赖: sqlAlchemy: 用于操作数据库 Marshmallow: 用于序列化和反序列化 你可以通过pip安装这两个依赖: pip install sqlalchemy marshmallow 2. 定义sqlA…

    tensorflow 2023年5月18日
    00
  • tensorflow基础–LeNet-5测试模型遇到TypeError: Failed to convert object of type to Tensor

    最近在看《TensorFlow 实战Google深度学习框架第二版》这本书,测试LeNet-5这个模型时遇到了TypeError: Failed to convert object of type <class ‘list’> to Tensor的报错,由于书作者没有给出测试的代码,所以根据前面第五章给出的mnist测试代码修改了测试的代码。至于…

    tensorflow 2023年4月6日
    00
  • tensorflow安装问题:ImportError:DLL load failed找不到指定模块

      初步接触图像识别,通过pip下载了需要用到的包,tensorflow有CPU版和GPU版的,因为GPU版的需要配置cuda和cudnn,比较麻烦,所以先拿CPU版的开刀,但是在安装后进行测试时,出现了找不到指定模块的错误,我下载的是tensorflow2.2版本,网上给的教程有调低版本这一方法,如使用tensorflow1.15。但我down下来的测试用…

    2023年4月6日
    00
  • 使用清华开源镜像安装tensorflow

    安装tensorflow时,如果使用直接安装速度相对较慢,采取清华大学的镜像会提高速度。GPU版本安装方法:pip install tensorflow-gpu==1.8 -i https://pypi.tuna.tsinghua.edu.cn/simple或 pip install tensorflow==1.8 -i https://pypi.tuna.…

    tensorflow 2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部