解决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 StringIO模块实现在内存缓冲区中读写数据
Apr 08 Python
在Apache服务器上同时运行多个Django程序的方法
Jul 22 Python
python学习必备知识汇总
Sep 08 Python
python实现定时提取实时日志程序
Jun 22 Python
python  Django中的apps.py的目的是什么
Oct 15 Python
检测python爬虫时是否代理ip伪装成功的方法
Jul 12 Python
python代码打印100-999之间的回文数示例
Nov 24 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
Dec 12 Python
使用Tensorflow实现可视化中间层和卷积层
Jan 24 Python
Python中文分词库jieba,pkusegwg性能准确度比较
Feb 11 Python
对python中arange()和linspace()的区别说明
May 03 Python
python基于openpyxl生成excel文件
Dec 23 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 define的第二个参数使用方法
2013/11/04 PHP
tp5(thinkPHP5)操作mongoDB数据库的方法
2018/01/20 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
2020/12/29 PHP
javascript函数库-集合框架
2007/04/27 Javascript
深入理解JavaScript系列(2) 揭秘命名函数表达式
2012/01/15 Javascript
html组件不可输入(只读)同时任何组件都有效
2013/04/01 Javascript
jQuery实现表格行上移下移和置顶的方法
2015/05/22 Javascript
跟我学习javascript的基本类型和引用类型
2015/11/16 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
2015/11/20 Javascript
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
2016/08/29 Javascript
Vue中fragment.js使用方法详解
2017/03/09 Javascript
angularjs $http实现form表单提交示例
2017/06/09 Javascript
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
Python MD5文件生成码
2009/01/12 Python
用Python实现QQ游戏大家来找茬辅助工具
2014/09/14 Python
python实现多线程暴力破解登陆路由器功能代码分享
2015/01/04 Python
使用Python操作Elasticsearch数据索引的教程
2015/04/08 Python
python文件操作之目录遍历实例分析
2015/05/20 Python
python获取各操作系统硬件信息的方法
2015/06/03 Python
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
Python实现新浪博客备份的方法
2016/04/27 Python
Pycharm新手教程(只需要看这篇就够了)
2019/06/18 Python
python使用celery实现异步任务执行的例子
2019/08/28 Python
Python箱型图绘制与特征值获取过程解析
2019/10/22 Python
Python datetime模块使用方法小结
2020/06/18 Python
美国排名第一的在线葡萄酒商店:Wine.com
2016/09/07 全球购物
新大陆软件面试题
2016/11/24 面试题
文秘专业大学生求职信
2013/11/10 职场文书
电气技术员岗位职责
2013/11/19 职场文书
社区八一活动方案
2014/02/03 职场文书
程序员求职信
2014/04/16 职场文书
董存瑞观后感
2015/06/11 职场文书
超级礼物观后感
2015/06/15 职场文书
校园之声广播稿
2015/08/18 职场文书