keras输出预测值和真实值方式


Posted in Python onJune 27, 2020

在使用keras搭建神经网络时,有时需要查看一下预测值和真是值的具体数值,然后可以进行一些其他的操作。这几天查阅了很多资料。好像没办法直接access到训练时的数据。所以我们可以通过回调函数,传入新的数据,然后查看预测值和真是值。

参考这篇解决:

https://stackoverflow.com/questions/47079111/create-keras-callback-to-save-model-predictions-and-targets-for-each-batch-durin

我的解决方法是这样的:

from keras.callbacks import Callback
import tensorflow as tf
import numpy as np
class my_callback(Callback):
 def __init__(self,dataGen,showTestDetail=True):
  self.dataGen=dataGen
  self.showTestDetail=showTestDetail
  self.predhis = []
  self.targets = []
 def mape(self,y,predict):
  diff = np.abs(np.array(y) - np.array(predict))
  return np.mean(diff / y)
 def on_epoch_end(self, epoch, logs=None):
  x_test,y_test=next(self.dataGen)
  prediction = self.model.predict(x_test)
  self.predhis.append(prediction)
  #print("Prediction shape: {}".format(prediction.shape))
  #print("Targets shape: {}".format(y_test.shape))
  if self.showTestDetail:
   for index,item in enumerate(prediction):
    print(item,"=====",y_test[index],"====",y_test[index]-item)
  testLoss=self.mape(y_test,prediction)
  print("test loss is :{}".format(testLoss))

画一下知识点,我们在继承的callback中实现 on_epoch_end方法:

x_test,y_test=next(self.dataGen)

这个数据生成方法是这样的

import numpy as np
def shuffleDatas(x,y):

 shuffleIndex=np.arange(len(x))
 np.random.shuffle(shuffleIndex)
 x=x[shuffleIndex]
 y=y[shuffleIndex]
 return x,y
def dataGen(x,y,batchsize=8,shuffle=True):
 assert len(x) == len(y)
 while True:
  if shuffle:
   x,y=shuffleDatas(x,y)
  index=0
  while index+batchsize<len(x):
   yield (x[index:index+batchsize],y[index:index+batchsize])
   index=index+batchsize

使用yield可以减少内存的使用,而且显得很高级。

补充知识:keras从训练到预测,函数的选择:fit,fit_generator, predict,predict_generator

如下所示:

keras输出预测值和真实值方式

留下回调函数和如何通过预处理来建立生成输入的函数这两个问题

以上这篇keras输出预测值和真实值方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python设置检查点简单实现代码
Jul 01 Python
研究Python的ORM框架中的SQLAlchemy库的映射关系
Apr 25 Python
python 文件操作删除某行的实例
Sep 04 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
Dec 19 Python
python2.7读取文件夹下所有文件名称及内容的方法
Feb 24 Python
numpy中以文本的方式存储以及读取数据方法
Jun 04 Python
python简单贪吃蛇开发
Jan 28 Python
python使用opencv对图像mask处理的方法
Jul 05 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
Feb 07 Python
PyTorch 如何检查模型梯度是否可导
Jun 05 Python
python获取对象信息的实例详解
Jul 07 Python
python程序的组织结构详解
Dec 06 Python
使用Keras预训练好的模型进行目标类别预测详解
Jun 27 #Python
浅谈keras 模型用于预测时的注意事项
Jun 27 #Python
python suds访问webservice服务实现
Jun 26 #Python
解析Python 偏函数用法全方位实现
Jun 26 #Python
Python如何优雅删除字符列表空字符及None元素
Jun 25 #Python
使用pytorch实现论文中的unet网络
Jun 24 #Python
python连接mysql有哪些方法
Jun 24 #Python
You might like
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
php $_SERVER windows系统与linux系统下的区别说明
2014/02/14 PHP
php中sprintf与printf函数用法区别解析
2014/02/17 PHP
php提示Failed to write session data错误的解决方法
2014/12/17 PHP
php返回相对时间(如:20分钟前,3天前)的方法
2015/04/14 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
2018/05/23 PHP
JavaScript 组件之旅(三):用 Ant 构建组件
2009/10/28 Javascript
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
javascript去掉前后空格的实例
2013/11/07 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
JavaScript数据结构与算法之集合(Set)
2016/01/29 Javascript
手机图片预览插件photoswipe.js使用总结
2016/08/25 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
vue2.0 datepicker使用方法
2018/02/04 Javascript
vue cli 全面解析
2018/02/28 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
2018/08/30 Javascript
详解vue 数组和对象渲染问题
2018/09/21 Javascript
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
JS对日期操作封装代码实例
2019/11/08 Javascript
使用Python导出Excel图表以及导出为图片的方法
2015/11/07 Python
浅谈python中scipy.misc.logsumexp函数的运用场景
2016/06/23 Python
Python初学时购物车程序练习实例(推荐)
2017/08/08 Python
Python之csv文件从MySQL数据库导入导出的方法
2018/06/21 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
2018/07/02 Python
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
Django Docker容器化部署之Django-Docker本地部署
2019/10/09 Python
python进度条显示-tqmd模块的实现示例
2020/08/23 Python
美国婚礼装饰和活动用品批发供应商:Event Decor Direct
2018/10/12 全球购物
Linux文件系统类型
2012/02/15 面试题
土地转让协议书
2014/04/15 职场文书
励志演讲稿3分钟
2014/08/21 职场文书
2014年驾驶员工作总结
2014/11/18 职场文书
起诉状范本
2015/05/20 职场文书