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


Posted in Python onJune 15, 2020

直接上代码:

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()

结果:

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

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

补充知识: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 相关文章推荐
python中from module import * 的一个坑
Jul 20 Python
Python正则表达式完全指南
May 25 Python
老生常谈python之鸭子类和多态
Jun 13 Python
django 常用orm操作详解
Sep 13 Python
python+splinter自动刷新抢票功能
Sep 25 Python
python如何使用Redis构建分布式锁
Jan 16 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
Mar 04 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
Mar 14 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
Jun 08 Python
Python如何读写字节数据
Aug 05 Python
python爬虫scrapy框架之增量式爬虫的示例代码
Feb 26 Python
python获取字符串中的email
Mar 31 Python
python中元组的用法整理
Jun 15 #Python
详解Python设计模式之策略模式
Jun 15 #Python
python能做哪方面的工作
Jun 15 #Python
python实现二分类和多分类的ROC曲线教程
Jun 15 #Python
python属于解释型语言么
Jun 15 #Python
python要安装在哪个盘
Jun 15 #Python
python中wheel的用法整理
Jun 15 #Python
You might like
PHP Ajax实现页面无刷新发表评论
2007/01/02 PHP
PHP实现查询两个数组中不同元素的方法
2016/02/23 PHP
php base64 编码与解码实例代码
2017/03/21 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
php框架CodeIgniter主从数据库配置方法分析
2018/05/25 PHP
jquery分页插件AmSetPager(自写)
2013/04/15 Javascript
Javascript执行效率全面总结
2013/11/04 Javascript
JS实现的自定义网页拖动类
2015/11/06 Javascript
jQuery获取单击节点对象的方法
2016/06/02 Javascript
JS获取当前页面名称的简单实例
2016/08/19 Javascript
form表单序列化详解(推荐)
2017/08/15 Javascript
angularjs实现猜数字大小功能
2020/05/20 Javascript
基于vue2实现左滑删除功能
2017/11/28 Javascript
layDate日期控件使用方法详解
2018/11/15 Javascript
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
[46:27]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第一局
2016/03/02 DOTA
python实现模拟按键,自动翻页看u17漫画
2015/03/17 Python
python使用wmi模块获取windows下的系统信息 监控系统
2015/10/27 Python
纯python实现机器学习之kNN算法示例
2018/03/01 Python
基于循环神经网络(RNN)实现影评情感分类
2018/03/26 Python
python生成lmdb格式的文件实例
2018/11/08 Python
Python paramiko模块使用解析(实现ssh)
2019/08/30 Python
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
我能否用void** 指针作为参数, 使函数按引用接受一般指针
2013/02/16 面试题
会计专业自我鉴定
2014/02/10 职场文书
党员评议个人总结
2014/10/20 职场文书
2014社区健康教育工作总结
2014/12/16 职场文书
文明单位申报材料
2014/12/23 职场文书
2015年圣诞节活动总结
2015/03/24 职场文书
2016春节家属慰问信
2015/03/25 职场文书
销售督导岗位职责
2015/04/10 职场文书
2015年技术工作总结范文
2015/04/20 职场文书
运动会通讯稿100字
2015/07/20 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
MySQL系列之八 MySQL服务器变量
2021/07/02 MySQL
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis