解决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求众数问题实例
Sep 26 Python
Python通过递归遍历出集合中所有元素的方法
Feb 25 Python
使用pandas对矢量化数据进行替换处理的方法
Apr 11 Python
使用pandas实现csv/excel sheet互相转换的方法
Dec 10 Python
创建Django项目图文实例详解
Jun 06 Python
django 中的聚合函数,分组函数,F 查询,Q查询
Jul 25 Python
python判断链表是否有环的实例代码
Jan 31 Python
python+Selenium自动化测试——输入,点击操作
Mar 06 Python
解决django框架model中外键不落实到数据库问题
May 20 Python
Python 字符串池化的前提
Jul 03 Python
Python子进程subpocess原理及用法解析
Jul 16 Python
基于logstash实现日志文件同步elasticsearch
Aug 06 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之第八天
2006/10/09 PHP
php学习之数据类型之间的转换介绍
2011/06/09 PHP
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
PHP采用XML-RPC构造Web Service实例教程
2014/07/16 PHP
php计算给定时间之前的函数用法实例
2015/04/03 PHP
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
orm获取关联表里的属性值
2016/04/17 PHP
深入理解PHP之OpCode原理详解
2016/06/01 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
2019/06/05 PHP
javascript 获取图片颜色
2009/04/05 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
javascript将浮点数转换成整数的三个方法
2014/06/23 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
2015/09/22 Javascript
JS模拟实现Select效果代码
2015/09/24 Javascript
jQuery+css实现炫目的动态块漂移效果
2016/01/28 Javascript
vue自定义移动端touch事件之点击、滑动、长按事件
2018/07/10 Javascript
Vue 菜单栏点击切换单个class(高亮)的方法
2018/08/22 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
2018/12/24 Javascript
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
python3使用urllib示例取googletranslate(谷歌翻译)
2014/01/23 Python
Python将图片批量从png格式转换至WebP格式
2020/08/22 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
python print 按逗号或空格分隔的方法
2018/05/02 Python
Scrapy框架实现的登录网站操作示例
2020/02/06 Python
5分钟弄清楚html5的drag and drop(小结)
2019/04/10 HTML / CSS
预订全球最佳旅行体验:Viator
2018/03/30 全球购物
上海雨人软件技术开发有限公司测试题
2015/07/14 面试题
写自荐信要注意什么
2013/12/26 职场文书
销售演讲稿范文
2014/01/08 职场文书
初婚未育证明
2014/01/15 职场文书
《欢乐的泼水节》教学反思
2014/04/22 职场文书
12岁生日演讲稿
2014/05/14 职场文书
计算机系统管理员求职信
2014/06/20 职场文书
毕业生就业推荐表导师评语
2014/12/31 职场文书
投标承诺函范文
2015/01/21 职场文书