解决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基于multiprocessing的多进程创建方法
Jun 04 Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
Jan 20 Python
Python按行读取文件的实现方法【小文件和大文件读取】
Sep 19 Python
python中对数据进行各种排序的方法
Jul 02 Python
Python自动化导出zabbix数据并发邮件脚本
Aug 16 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
Sep 03 Python
python 矢量数据转栅格数据代码实例
Sep 30 Python
为什么说Python可以实现所有的算法
Oct 04 Python
Django 实现xadmin后台菜单改为中文
Nov 15 Python
Django 实现 Websocket 广播、点对点发送消息的代码
Jun 03 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
Jul 01 Python
Django如何批量创建Model
Sep 01 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中strtotime函数使用方法详解
2011/11/27 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
如何使用php绘制在图片上的正余弦曲线
2013/06/08 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
php图像验证码生成代码
2017/06/08 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
模拟jQuery ajax服务器端与客户端通信的代码
2011/03/28 Javascript
js打开新窗口方法整理
2014/02/17 Javascript
Javascript 中创建自定义对象的方法汇总
2014/12/04 Javascript
JavaScript中闭包的写法和作用详解
2016/06/29 Javascript
详谈js模块化规范
2017/07/07 Javascript
详解React native全局变量的使用(跨组件的通信)
2017/09/07 Javascript
Vue页面跳转动画效果的实现方法
2018/09/23 Javascript
vue基于viewer实现的图片查看器功能
2019/04/12 Javascript
vue递归组件实战之简单树形控件实例代码
2019/08/27 Javascript
[54:19]完美世界DOTA2联赛PWL S2 Magma vs PXG 第二场 11.28
2020/12/01 DOTA
python学习手册中的python多态示例代码
2014/01/21 Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
2017/11/23 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
2018/11/06 Python
python assert的用处示例详解
2019/04/01 Python
python微信公众号开发简单流程实现
2020/03/09 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
css3与html5实现响应式导航菜单(导航栏)效果分享
2014/02/12 HTML / CSS
HTML5使用Audio标签实现歌词同步的效果
2016/03/17 HTML / CSS
皇家道尔顿官网:Royal Doulton
2017/12/06 全球购物
线程的基本概念、线程的基本状态以及状态之间的关系
2012/10/26 面试题
毕业论文评语大全
2014/04/29 职场文书
机械专业求职信
2014/05/25 职场文书
学校元旦晚会开场白
2014/12/14 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
活动经费申请报告
2015/05/15 职场文书
银行柜员优质服务心得体会
2016/01/22 职场文书