解决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设计模式编程之工厂方法模式的使用
Mar 02 Python
python绘制简单折线图代码示例
Dec 19 Python
python 编码规范整理
May 05 Python
python递归实现快速排序
Aug 18 Python
Python3解释器知识点总结
Feb 19 Python
python 处理微信对账单数据的实例代码
Jul 19 Python
对Python中一维向量和一维向量转置相乘的方法详解
Aug 26 Python
详解python破解zip文件密码的方法
Jan 13 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
Mar 10 Python
基于python实现简单C/S模式代码实例
Sep 14 Python
教你使用Pandas直接核算Excel中快递费用
May 12 Python
解决Python字典查找报Keyerror的问题
May 26 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
PHP5 安装方法
2007/01/15 PHP
yii中widget的用法
2014/12/03 PHP
PHP实现的简单组词算法示例
2018/04/10 PHP
jQuery 开天辟地入门篇一
2009/12/09 Javascript
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
2009/12/28 Javascript
二叉树先序遍历的非递归算法具体实现
2014/01/09 Javascript
jQuery中:image选择器用法实例
2015/01/03 Javascript
js实现鼠标感应图片展示的方法
2015/02/27 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
2015/03/04 Javascript
Javascript简写条件语句(推荐)
2016/06/12 Javascript
Bootstrap3 Grid system原理及应用详解
2016/09/30 Javascript
VueJs与ReactJS和AngularJS的异同点
2016/12/12 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
2017/10/19 Javascript
webpack下实现动态引入文件方法
2018/02/22 Javascript
js提取中文拼音首字母的封装工具类
2018/03/12 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
2019/03/07 Javascript
vue el-table实现行内编辑功能
2019/12/11 Javascript
JQuery实现折叠式菜单的详细代码
2020/06/03 jQuery
[01:29]2014DOTA2展望TI 剑指西雅图DK战队专访
2014/06/30 DOTA
用Python的SimPy库简化复杂的编程模型的介绍
2015/04/13 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
2020/10/19 Python
Ubuntu20下的Django安装的方法步骤
2021/01/24 Python
python中最小二乘法详细讲解
2021/02/19 Python
Agoda香港:全球特价酒店预订
2017/05/07 全球购物
Bulk Powders意大利:运动补充在线商店
2019/02/09 全球购物
巴西手表购物网站:eclock
2019/03/19 全球购物
你对IPv6了解程度
2016/02/09 面试题
自动化系在校本科生求职信
2013/10/23 职场文书
函授毕业自我鉴定
2013/12/19 职场文书
实习生岗位职责
2014/04/12 职场文书
白岩松演讲
2014/05/21 职场文书
消防安全承诺书
2014/05/22 职场文书
中药学自荐信
2014/06/15 职场文书
总经理检讨书
2014/09/15 职场文书
教师党员批评与自我批评
2014/10/15 职场文书