解决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 splitlines使用技巧
Sep 06 Python
Python3基础之基本运算符概述
Aug 13 Python
结合Python的SimpleHTTPServer源码来解析socket通信
Jun 27 Python
解决nohup重定向python输出到文件不成功的问题
May 11 Python
Python多继承原理与用法示例
Aug 23 Python
Python求两点之间的直线距离(2种实现方法)
Jul 07 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
Jul 19 Python
pytorch+lstm实现的pos示例
Jan 14 Python
详解python datetime模块
Aug 17 Python
如何在Anaconda中打开python自带idle
Sep 21 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
Feb 22 Python
Opencv实现二维直方图的计算及绘制
Jul 21 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
apache rewrite_module模块使用教程
2008/01/10 PHP
解决laravel5.4下的group by报错的问题
2019/10/16 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
2008/11/06 Javascript
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
jQuery 处理表单元素的代码
2010/02/15 Javascript
批量实现面向对象的实例代码
2013/07/01 Javascript
Nodejs初级阶段之express
2015/11/23 NodeJs
微信小程序 条件渲染详解
2016/10/09 Javascript
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
React优化子组件render的使用
2019/05/12 Javascript
javascript实现函数柯里化与反柯里化过程解析
2019/10/08 Javascript
js实现消灭星星(web简易版)
2020/03/24 Javascript
JavaScript实现京东快递单号查询
2020/11/30 Javascript
python中偏函数partial用法实例分析
2015/07/08 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
Django 生成登陆验证码代码分享
2017/12/12 Python
浅谈Python NLP入门教程
2017/12/25 Python
Python中将两个或多个list合成一个list的方法小结
2019/05/12 Python
python 字典 setdefault()和get()方法比较详解
2019/08/07 Python
django项目登录中使用图片验证码的实现方法
2019/08/15 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
Python如何爬取51cto数据并存入MySQL
2020/08/25 Python
使用Html5实现异步上传文件,支持跨域,带有上传进度条
2016/09/17 HTML / CSS
新加坡航空官方网站:Singapore Airlines
2016/10/13 全球购物
MYSQL相比于其他数据库有哪些特点
2013/07/19 面试题
急诊科护士自我鉴定
2013/10/14 职场文书
酒店实习个人鉴定
2013/12/07 职场文书
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
安全生产标语
2014/06/06 职场文书
法定代表人身份证明书(含说明)
2014/10/02 职场文书
2014五年级班主任工作总结
2014/12/05 职场文书
迟到检讨书
2015/01/26 职场文书
教师个人年度总结
2015/02/11 职场文书
入党培养人考察意见
2015/06/08 职场文书
上级领导检查欢迎词
2015/09/30 职场文书