解决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中isnumeric()方法的使用简介
May 19 Python
全面理解Python中self的用法
Jun 04 Python
python实现中文转换url编码的方法
Jun 14 Python
python组合无重复三位数的实例
Nov 13 Python
django-初始配置(纯手写)详解
Jul 30 Python
Django中的静态文件管理过程解析
Aug 01 Python
详解基于python-django框架的支付宝支付案例
Sep 23 Python
Python3 翻转二叉树的实现
Sep 30 Python
如何基于python操作excel并获取内容
Dec 24 Python
Django跨域资源共享问题(推荐)
Mar 09 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
May 11 Python
Python requests上传文件实现步骤
Sep 15 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
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
php分页示例分享
2014/04/30 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
2014/06/30 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
2007/04/21 Javascript
jQuery的live()方法对hover事件的处理示例
2014/02/27 Javascript
js的toLowerCase方法用法实例
2015/01/27 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
2015/12/07 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
2016/05/24 Javascript
基于JS实现省市联动效果代码分享
2016/06/06 Javascript
浅谈sass在vue注意的地方
2017/08/10 Javascript
vue+iview写个弹框的示例代码
2017/12/05 Javascript
JavaScript中Object基础内部方法图
2018/02/05 Javascript
Vue官方推荐AJAX组件axios.js使用方法详解与API
2018/10/09 Javascript
为什么说JavaScript预解释是一种毫无节操的机制详析
2018/11/18 Javascript
浅谈Vue为什么不能检测数组变动
2019/10/14 Javascript
微信小程序实现通讯录列表展开收起
2020/11/18 Javascript
vant时间控件使用方法详解
2020/12/24 Javascript
pycharm远程调试openstack代码
2017/11/21 Python
Python设计模式之状态模式原理与用法详解
2019/01/15 Python
浅谈Python批处理文件夹中的txt文件
2019/03/11 Python
Python实现Mysql数据统计及numpy统计函数
2019/07/15 Python
如何基于Python实现自动扫雷
2020/01/06 Python
使用python接受tgam的脑波数据实例
2020/04/09 Python
CSS3色彩模式有哪些?CSS3 HSL色彩模式的定义
2016/04/26 HTML / CSS
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
西部世纪面试题
2014/12/05 面试题
剪枝的学问教学反思
2014/02/07 职场文书
平安工地建设方案
2014/05/06 职场文书
政府个人对照检查材料
2014/08/28 职场文书
机械工程及自动化专业求职信
2014/09/03 职场文书
2014年重阳节活动策划方案书
2014/09/16 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
JavaScript实现队列结构过程
2021/12/06 Javascript
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL
SQL SERVER中的流程控制语句
2022/05/25 SQL Server