圆月山庄资源网 Design By www.vgjia.com
在使用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,输出,预测值,真实值
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月02日
2024年11月02日
- 《暗喻幻想》顺风耳作用介绍
- 崔健1985-梦中的倾诉[再版][WAV+CUE]
- 黄子馨《追星Xin的恋人们2》HQ头版限量编号[WAV+CUE]
- 孟庭苇《情人的眼泪》开盘母带[低速原抓WAV+CUE]
- 孙露《谁为我停留HQCD》[低速原抓WAV+CUE][1.1G]
- 孙悦《时光音乐会》纯银CD[低速原抓WAV+CUE][1.1G]
- 任然《渐晚》[FLAC/分轨][72.32MB]
- 英雄联盟新英雄安蓓萨上线了吗 新英雄安蓓萨技能介绍
- 魔兽世界奥杜尔竞速赛什么时候开启 奥杜尔竞速赛开启时间介绍
- 无畏契约CGRS准星代码多少 CGRS准星代码分享一览
- 张靓颖.2012-倾听【少城时代】【WAV+CUE】
- 游鸿明.1999-五月的雪【大宇国际】【WAV+CUE】
- 曹方.2005-遇见我【钛友文化】【WAV+CUE】
- Unity6引擎上线:稳定性提升、CPU性能最高提升4倍
- 人皇Sky今日举行婚礼!电竞传奇步入新篇章