解决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 相关文章推荐
wxPython中文教程入门实例
Jun 09 Python
基于Python实现的百度贴吧网络爬虫实例
Apr 17 Python
Python中Django框架下的staticfiles使用简介
May 30 Python
Python星号*与**用法分析
Feb 02 Python
PyQt5打开文件对话框QFileDialog实例代码
Feb 07 Python
使用python3+xlrd解析Excel的实例
May 04 Python
python__new__内置静态方法使用解析
Jan 07 Python
Python matplotlib画曲线例题解析
Feb 07 Python
使用 pytorch 创建神经网络拟合sin函数的实现
Feb 24 Python
利用python中的matplotlib打印混淆矩阵实例
Jun 16 Python
区分python中的进程与线程
Aug 13 Python
教你如何用python操作摄像头以及对视频流的处理
Oct 12 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扩展介绍与开发教程
2010/08/19 PHP
简单谈谈php浮点数精确运算
2016/03/10 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
2016/04/22 PHP
yii框架搜索分页modle写法
2016/12/19 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
jQuery 源码分析笔记(4) Ready函数
2011/06/02 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
2013/04/23 Javascript
jqGrid日期格式的判断示例代码(开始日期与结束日期)
2013/11/08 Javascript
优化javascript的执行效率一些方法总结
2013/12/25 Javascript
动态加载js文件简单示例
2016/04/21 Javascript
Jquery中map函数的用法
2016/06/03 Javascript
js中 计算两个日期间的工作日的简单实例
2016/08/08 Javascript
javascript实现动态显示颜色块的报表效果
2017/04/10 Javascript
详解node如何让一个端口同时支持https与http
2017/07/04 Javascript
js实现本地图片文件拖拽效果
2017/07/18 Javascript
mac上配置Android环境变量的方法
2018/07/08 Javascript
this在vue和小程序中的使用详解
2019/01/28 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
python调用java模块SmartXLS和jpype修改excel文件的方法
2015/04/28 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
2018/07/26 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
L*SPACE官网:比基尼、泳装和度假服装
2019/03/18 全球购物
双立人美国官方商店:ZWILLING集团餐具和炊具
2020/05/07 全球购物
C语言编程练习
2012/04/02 面试题
室内设计自我鉴定
2013/10/15 职场文书
播音主持女孩的自我评价分享
2013/11/20 职场文书
体育教师自我鉴定
2014/02/12 职场文书
初中高效课堂实施方案
2014/02/26 职场文书
体育专业求职信
2014/07/16 职场文书
学生上课迟到检讨书
2015/01/01 职场文书
Python基础知识之变量的详解
2021/04/14 Python
使用Java去实现超市会员管理系统
2022/03/18 Java/Android
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang
Win11显卡控制面板打开显卡设置方法
2022/04/20 数码科技
Android实现图片九宫格
2022/06/28 Java/Android