解决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通过函数属性实现全局变量的方法
May 16 Python
Python 搭建Web站点之Web服务器网关接口
Nov 06 Python
tensorflow使用神经网络实现mnist分类
Sep 08 Python
Python读取excel指定列生成指定sql脚本的方法
Nov 28 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
Dec 10 Python
对python多线程中Lock()与RLock()锁详解
Jan 11 Python
Python用字典构建多级菜单功能
Jul 11 Python
python3.6+selenium实现操作Frame中的页面元素
Jul 16 Python
Python中的延迟绑定原理详解
Oct 11 Python
python 爬虫爬取京东ps4售卖情况
Dec 18 Python
Jupyter Notebook 远程访问配置详解
Jan 11 Python
python 学习GCN图卷积神经网络
May 11 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
新的一年,新的期待:DC在2020年的四部动画电影
2020/01/01 欧美动漫
thinkphp自带验证码全面解析
2016/09/18 PHP
在laravel中实现将查询的对象转换为多维数组的函数
2019/10/21 PHP
jQuery Ajax 实例全解析
2011/04/20 Javascript
用javascript作一个通用向导说明
2011/08/30 Javascript
node在两个div之间移动,用ztree实现
2013/03/06 Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
js replace替换所有匹配的字符串
2014/02/13 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
jquery图片滚动放大代码分享(2)
2015/08/28 Javascript
论Bootstrap3和Foundation5网格系统的异同
2016/05/16 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
2016/09/04 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
使用store来优化React组件的方法
2017/10/23 Javascript
详解vue配置后台接口方式
2019/03/29 Javascript
Vue路由模块化配置的完整步骤
2019/08/14 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
深入解析Python中的集合类型操作符
2015/08/19 Python
Python通过调用有道翻译api实现翻译功能示例
2018/07/19 Python
pygame实现简易飞机大战
2018/09/11 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
2019/08/02 Python
Python尾递归优化实现代码及原理详解
2020/10/09 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
python中lower函数实现方法及用法讲解
2020/12/23 Python
基于canvas使用贝塞尔曲线平滑拟合折线段的方法
2018/01/10 HTML / CSS
一套带网友答案的.NET笔试题
2016/12/06 面试题
物业管理求职自荐信
2013/09/25 职场文书
公司前台辞职报告
2014/01/19 职场文书
优秀乡村医生事迹材料
2014/05/28 职场文书
暑假安全教育广播稿
2014/09/10 职场文书
干部作风建设工作总结
2014/10/29 职场文书
孟佩杰观后感
2015/06/17 职场文书
如何写好一份优秀的工作总结?
2019/06/21 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL
vue @ ~ 相对路径 路径别名设置方式
2022/06/05 Vue.js