解决keras,val_categorical_accuracy:,0.0000e+00问题


Posted in Python onJuly 02, 2020

问题描述:

在利用神经网络进行分类和识别的时候,使用了keras这个封装层次比较高的框架,backend使用的是tensorflow-cpu。

在交叉验证的时候,出现 val_categorical_accuracy: 0.0000e+00的问题。

问题分析:

首先,弄清楚,训练集、验证集、测试集的区别,验证集是从训练集中提前拿出一部分的数据集。在keras中,一般都是使用这种方式来指定验证集占训练集和的总大小。

validation_split=0.2

比如,经典的数据集MNIST,共有60000个训练集,就会

Train on 48000 samples, validate on 12000 samples

我自己学习使用的数据集比较小

训练数据集样本数: 498 ,标签个数 498

Train on 398 samples, validate on 100 samples

基本上符合4:1(0.2)的分配

出现 val_categorical_accuracy: 0.0000e+00的问题,我这边的原因主要是,样本本身是有规律的,导致分配的验证集的标签可能在训练集中可能就没有。

(PS:我实际看了下,498个样本共10个标签,后100个验证集占据了基本上后面3个标签(实际上,这三个标签占了103个样本),也就是前面的训练集基本上就没有后面的标签,整体占据前面7个标签)

问题解决:

把最初始的训练集打乱,当然,标签也要跟着移动。

index = [i for i in range(len(x_train))]
np.random.shuffle(index)
x_train = x_train[index]
y_train = y_train[index]
 
model.fit(x_train, y_train, batch_size=32, epochs=10, validation_split=0.2, verbose=1)

同样的问题表现,可能有不同的原因,解决方法也不尽相同,这里只是和大家分享我自己的问题解决过程。

补充知识:keras中自定义验证集的性能评估

如下所示:

def AUC(y_true,y_pred):
not_y_pred=np.logical_not(y_pred)
y_int1=y_true*y_pred
y_int0=np.logical_not(y_true)*not_y_pred
TP=np.sum(y_pred*y_int1)
FP=np.sum(y_pred)-TP
TN=np.sum(not_y_pred*y_int0)
FN=np.sum(not_y_pred)-TN
TPR=np.float(TP)/(TP+FN)
FPR=np.float(FP)/(FP+TN)
return((1+TPR-FPR)/2)

以上这篇解决keras,val_categorical_accuracy:,0.0000e+00问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python采用requests库模拟登录和抓取数据的简单示例
Jul 05 Python
使用Python的Tornado框架实现一个简单的WebQQ机器人
Apr 24 Python
python对json的相关操作实例详解
Jan 04 Python
用xpath获取指定标签下的所有text的实例
Jan 02 Python
Python图像处理之颜色的定义与使用分析
Jan 03 Python
python爬取酷狗音乐排行榜
Feb 20 Python
Python OOP类中的几种函数或方法总结
Feb 22 Python
django框架model orM使用字典作为参数,保存数据的方法分析
Jun 24 Python
python实现坦克大战
Apr 24 Python
DRF框架API版本管理实现方法解析
Aug 21 Python
Python 实现键盘鼠标按键模拟
Nov 18 Python
用pushplus+python监控亚马逊到货动态推送微信
Jan 29 Python
如何基于Python爬取隐秘的角落评论
Jul 02 #Python
keras中epoch,batch,loss,val_loss用法说明
Jul 02 #Python
Python使用tkinter实现摇骰子小游戏功能的代码
Jul 02 #Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
Jul 02 #Python
python脚本和网页有何区别
Jul 02 #Python
keras:model.compile损失函数的用法
Jul 01 #Python
win10安装python3.6的常见问题
Jul 01 #Python
You might like
用php实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
php把session写入数据库示例
2014/02/26 PHP
php显示指定目录下子目录的方法
2015/03/20 PHP
PHP定时执行任务的3种方法详解
2015/12/21 PHP
js下用层来实现select的title提示属性
2010/02/23 Javascript
网络之美 JavaScript中Get和Set访问器的实现代码
2010/09/19 Javascript
关于jQuery UI 使用心得及技巧
2012/10/10 Javascript
Javascript/Jquery——简单定时器的多种实现方法
2013/07/03 Javascript
json字符串之间的相互转换示例代码
2014/08/21 Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
2016/07/25 Javascript
nodejs微信公众号支付开发
2016/09/19 NodeJs
基于JavaScript实现焦点图轮播效果
2017/03/27 Javascript
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
Vue侧滑菜单组件——DrawerLayout
2017/12/18 Javascript
jQuery实现常见的隐藏与展示列表效果示例
2018/06/04 jQuery
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
2019/07/06 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
vue实现简易图片左右旋转,上一张,下一张组件案例
2020/07/31 Javascript
Openlayers测量距离与面积的实现方法
2020/09/25 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
python实现的分析并统计nginx日志数据功能示例
2019/12/21 Python
Python短信轰炸的代码
2020/03/25 Python
CSS3 3D立方体效果示例-transform也不过如此
2016/12/05 HTML / CSS
基于CSS3实现的几个小loading效果
2018/09/27 HTML / CSS
CSS3 仿微信聊天小气泡实例代码
2017/04/05 HTML / CSS
上海方立数码笔试题
2013/10/18 面试题
外贸销售员求职的自我评价
2013/11/23 职场文书
优秀毕业自我鉴定
2014/02/15 职场文书
人事行政专员岗位职责
2014/07/23 职场文书
酒店员工辞职信范文
2015/02/28 职场文书
2015年信贷员工作总结
2015/04/28 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
Win11无法安装更新补丁KB3045316怎么办 附KB3045316补丁修复教程
2022/08/14 数码科技