解决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魔法方法-属性转换和类的表示详解
Jul 22 Python
Django中的Signal代码详解
Feb 05 Python
python读取各种文件数据方法解析
Dec 29 Python
python将控制台输出保存至文件的方法
Jan 07 Python
python 监听salt job状态,并任务数据推送到redis中的方法
Jan 14 Python
django中使用POST方法获取POST数据
Aug 20 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
Jan 21 Python
pycharm 中mark directory as exclude的用法详解
Feb 14 Python
Django 5种类型Session使用方法解析
Apr 29 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
Jun 02 Python
python+requests接口自动化框架的实现
Aug 31 Python
python连接mongodb数据库操作数据示例
Nov 30 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&mysql 日期操作小记
2012/02/27 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
Laravel 模型关联基础教程详解
2019/09/17 PHP
js中几种去掉字串左右空格的方法
2006/12/25 Javascript
利用jQuery的$.event.fix函数统一浏览器event事件处理
2009/12/21 Javascript
编写Js代码要注意的几条规则
2010/09/10 Javascript
JQuery在页面中添加和除移DOM示例代码
2013/06/24 Javascript
让jQuery Mobile不显示讨厌loading界面的方法
2014/02/19 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
2015/09/11 Javascript
jQuery实现带渐显效果的人物多级关系图代码
2015/10/16 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
js实现移动端微信页面禁止字体放大
2017/02/16 Javascript
如何选择jQuery版本 1.x? 2.x? 3.x?
2017/04/01 jQuery
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
微信小程序中吸底按钮适配iPhone X方案
2017/11/29 Javascript
python 解析html之BeautifulSoup
2009/07/07 Python
python清理子进程机制剖析
2017/11/23 Python
火车票抢票python代码公开揭秘!
2018/03/08 Python
配置python的编程环境之Anaconda + VSCode的教程
2020/03/29 Python
在python中利用pycharm自定义代码块教程(三步搞定)
2020/04/15 Python
基于python实现数组格式参数加密计算
2020/04/21 Python
html5 初试 indexedDB(推荐)
2016/07/21 HTML / CSS
澳大利亚首屈一指的在线购物目的地:Kogan.com
2017/02/02 全球购物
英格兰足协官方商店:England Store
2019/07/12 全球购物
俄罗斯香水和化妆品网上商店:NOTINO.ru
2019/12/17 全球购物
武汉英思工程科技有限公司–ORACLE面试测试题目
2012/04/30 面试题
.NET方向面试题
2014/11/20 面试题
Python面试题:Python是如何进行内存管理的
2014/08/04 面试题
升职自荐信范文
2013/10/05 职场文书
鞋类设计与工艺专业销售求职信
2013/11/01 职场文书
求职信的七个关键技巧
2014/02/05 职场文书
消防安全责任书范本
2014/04/15 职场文书
搞笑婚礼主持词开场白
2015/11/24 职场文书
JVM入门之类加载与字节码技术(类加载与类的加载器)
2021/06/15 Java/Android
python unittest单元测试的步骤分析
2021/08/02 Python
Spring Security中用JWT退出登录时遇到的坑
2021/10/16 Java/Android