解决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使用cookielib库示例分享
Mar 03 Python
python多线程用法实例详解
Jan 15 Python
Python 多线程抓取图片效率对比
Feb 27 Python
使用Python进行二进制文件读写的简单方法(推荐)
Sep 12 Python
python基础之入门必看操作
Jul 26 Python
Python语言实现百度语音识别API的使用实例
Dec 13 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
Jun 23 Python
Python实现的读写json文件功能示例
Jun 05 Python
pandas将numpy数组写入到csv的实例
Jul 04 Python
Python基础教程之异常详解
Jan 10 Python
Django Admin中增加导出Excel功能过程解析
Sep 04 Python
如何使用 Python 读取文件和照片的创建日期
Sep 05 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
Sorting Array Values in PHP(数组排序)
2011/09/15 PHP
php中mysql连接和基本操作代码(快速测试使用,简单方便)
2014/04/25 PHP
php中session过期时间设置及session回收机制介绍
2014/05/05 PHP
PHP基于yii框架实现生成ICO图标
2015/11/13 PHP
PHP count()函数讲解
2019/02/03 PHP
用php定义一个数组最简单的方法
2019/10/04 PHP
javascript json 新手入门文档
2009/12/03 Javascript
JavaScript中SQL语句的应用实现
2010/05/04 Javascript
js事件(Event)知识整理
2012/10/11 Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
2014/01/07 Javascript
Jquery使用css方法改变样式实例
2015/05/18 Javascript
jquery代码实现多选、不同分享功能
2015/07/31 Javascript
Vue2.0 UI框架ElementUI使用方法详解
2017/04/14 Javascript
CSS3+JavaScript实现翻页幻灯片效果
2017/06/28 Javascript
JS实现手写parseInt的方法示例
2017/09/24 Javascript
详解swiper在vue中的应用(以3.0为例)
2018/09/20 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
vue cli3.0结合echarts3.0与地图的使用方法示例
2019/03/26 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
Node.js设置定时任务之node-schedule模块的使用详解
2020/04/28 Javascript
ES6函数实现排它两种写法解析
2020/05/13 Javascript
JS数据类型判断的几种常用方法
2020/07/07 Javascript
由浅入深讲解python中的yield与generator
2017/04/05 Python
解决python xx.py文件点击完之后一闪而过的问题
2019/06/24 Python
安装2019Pycharm最新版本的教程详解
2019/10/22 Python
pytorch实现查看当前学习率
2020/06/24 Python
微软巴西官方网站:Microsoft Brasil
2019/09/26 全球购物
致1500米运动员广播稿
2014/02/07 职场文书
分层教学实施方案
2014/03/19 职场文书
公司年终奖分配方案
2014/06/16 职场文书
员工三分钟演讲稿
2014/08/19 职场文书
学习实践科学发展观心得体会
2014/09/10 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
当你找不到方向的时候,不妨读读刘备的一生
2019/08/05 职场文书
php 原生分页
2021/04/01 PHP