在tensorflow下利用plt画论文中loss,acc等曲线图实例

 更新时间:2020年06月15日 14:57:00   作者:路上的病人  
这篇文章主要介绍了在tensorflow下利用plt画论文中loss,acc等曲线图实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

直接上代码:

fig_loss = np.zeros([n_epoch])
fig_acc1 = np.zeros([n_epoch])
fig_acc2= np.zeros([n_epoch])
for epoch in range(n_epoch):
 start_time = time.time()

 #training
 train_loss, train_acc, n_batch = 0, 0, 0
 for x_train_a, y_train_a in minibatches(x_train, y_train, batch_size, shuffle=True):
  _,err,ac=sess.run([train_op,loss,acc], feed_dict={x: x_train_a, y_: y_train_a})
  train_loss += err; train_acc += ac; n_batch += 1

  summary_str = sess.run(merged_summary_op,feed_dict={x: x_train_a, y_: y_train_a})
  summary_writer.add_summary(summary_str, epoch)

 print(" train loss: %f" % (np.sum(train_loss)/ n_batch))
 print(" train acc: %f" % (np.sum(train_acc)/ n_batch))
 fig_loss[epoch] = np.sum(train_loss)/ n_batch
 fig_acc1[epoch] = np.sum(train_acc) / n_batch
 #validation
 val_loss, val_acc, n_batch = 0, 0, 0
 for x_val_a, y_val_a in minibatches(x_val, y_val, batch_size, shuffle=False):
  err, ac = sess.run([loss,acc], feed_dict={x: x_val_a, y_: y_val_a})
  val_loss += err; val_acc += ac; n_batch += 1
 print(" validation loss: %f" % (np.sum(val_loss)/ n_batch))
 print(" validation acc: %f" % (np.sum(val_acc)/ n_batch))
 fig_acc2[epoch] = np.sum(val_acc) / n_batch
# 训练loss图
fig, ax1 = plt.subplots()
lns1 = ax1.plot(np.arange(n_epoch), fig_loss, label="Loss")
ax1.set_xlabel('iteration')
ax1.set_ylabel('training loss')

# 训练和验证两种准确率曲线图放在一张图中
fig2, ax2 = plt.subplots()
ax3 = ax2.twinx()#由ax2图生成ax3图
lns2 = ax2.plot(np.arange(n_epoch), fig_acc1, label="Loss")
lns3 = ax3.plot(np.arange(n_epoch), fig_acc2, label="Loss")

ax2.set_xlabel('iteration')
ax2.set_ylabel('training acc')
ax3.set_ylabel('val acc')
 # 合并图例
lns = lns3 + lns2
labels = ["train acc", "val acc"]
plt.legend(lns, labels, loc=7)

plt.show()

结果:

补充知识:tensorflow2.x实时绘制训练时的损失和准确率

我就废话不多说了,大家还是直接看代码吧!

sgd = SGD(lr=float(model_value[3]), decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])
# validation_split:0~1之间的浮点数,用来指定训练集的一定比例数据作为验证集
history=model.fit(self.x_train, self.y_train, batch_size=self.batch_size, epochs=self.epoch_size, class_weight = 'auto', validation_split=0.1)
# 绘制训练 & 验证的准确率值
plt.plot(history.history['accuracy'])
plt.plot(history.history['val_accuracy'])
plt.title('Model accuracy')
plt.ylabel('Accuracy')
plt.xlabel('Epoch')
plt.legend(['Train', 'Test'], loc='upper left')
plt.show()
 
# 绘制训练 & 验证的损失值
plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])
plt.title('Model loss')
plt.ylabel('Loss')
plt.xlabel('Epoch')
plt.legend(['Train', 'Test'], loc='upper left')
plt.show()
print("savemodel---------------")
model.save(os.path.join(model_value[0],'model3_3.h5'))
#输出损失和精确度
score = model.evaluate(self.x_test, self.y_test, batch_size=self.batch_size)

以上这篇在tensorflow下利用plt画论文中loss,acc等曲线图实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python API 操作Hadoop hdfs详解

    Python API 操作Hadoop hdfs详解

    这篇文章主要介绍了Python API 操作Hadoop hdfs详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python的多元数据类型(上)

    python的多元数据类型(上)

    这篇文章主要为大家详细介绍了python的多元数据类型,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Python面向对象程序设计之继承与多继承用法分析

    Python面向对象程序设计之继承与多继承用法分析

    这篇文章主要介绍了Python面向对象程序设计之继承与多继承用法,结合实例形式分析了Python继承与多继承的简单定义与使用方法,需要的朋友可以参考下
    2018-07-07
  • 详解JavaScript编程中的window与window.screen对象

    详解JavaScript编程中的window与window.screen对象

    这篇文章主要介绍了JavaScript编程中的window与window.screen对象,是JS在浏览器中视图编程的基础,需要的朋友可以参考下
    2015-10-10
  • python判断两个序列的成员是否一样的实例代码

    python判断两个序列的成员是否一样的实例代码

    在本篇文章里小编给大家整理了关于python判断两个序列的成员是否一样的实例代码,需要的朋友们参考下。
    2020-03-03
  • Python pandas如何获取数据的行数和列数

    Python pandas如何获取数据的行数和列数

    这篇文章主要介绍了Python pandas如何获取数据的行数和列数问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python中pygame游戏模块的用法详解

    Python中pygame游戏模块的用法详解

    Pygame是一组用来开发游戏软件的 Python 程序模块,Pygame 在 SDL(Simple DirectMedia Layer) 的基础上开发而成,它提供了诸多操作模块,本文给大家介绍了Python中pygame游戏模块的用法,需要的朋友可以参考下
    2024-01-01
  • PowerBI和Python关于数据分析的对比

    PowerBI和Python关于数据分析的对比

    这篇文章主要介绍了PowerBI和Python关于数据分析的对比,很多经常会用到数据分析的伙伴会问有没有一款便捷好用的工具!肯定有啊,Python的出现和普及,很容易就能改变这些窘境,需要的朋友可以参考下
    2019-07-07
  • Ubuntu下安装卸载python3.8的过程

    Ubuntu下安装卸载python3.8的过程

    这篇文章主要介绍了Ubuntu下python3.8的安装与卸载,本文以在 Ubuntu 16.04 中安装为例,方法同样适用于 Ubuntu 18.04,需要的朋友可以参考下
    2021-09-09
  • 详解Python中__new__和__init__的区别与联系

    详解Python中__new__和__init__的区别与联系

    在Python中,每个对象都有两个特殊的方法:__new__和__init__,本文将详细介绍这两个方法的不同之处以及它们之间的联系,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12

最新评论