解决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在指定目录下查找gif文件的方法
May 04 Python
python+PyQT实现系统桌面时钟
Jun 16 Python
python 图像平移和旋转的实例
Jan 10 Python
浅谈python3.x pool.map()方法的实质
Jan 16 Python
Python 移动光标位置的方法
Jan 20 Python
Python实现爬取马云的微博功能示例
Feb 16 Python
python 函数中的内置函数及用法详解
Jul 02 Python
解决Django中多条件查询的问题
Jul 18 Python
对python中return与yield的区别详解
Mar 12 Python
python多线程和多进程关系详解
Dec 14 Python
如何用tempfile库创建python进程中的临时文件
Jan 28 Python
你需要掌握的20个Python常用技巧
Feb 28 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邮件发送,php发送邮件的类
2011/03/24 PHP
PHP实现XML与数据格式进行转换类实例
2015/07/29 PHP
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
PHP常见加密函数用法示例【crypt与md5】
2019/01/27 PHP
nodejs实用示例 缩址还原
2010/12/28 NodeJs
JavaScript中链式调用之研习
2011/04/07 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
简单讲解AngularJS的Routing路由的定义与使用
2016/03/05 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
AngularJS 所有版本下载地址
2016/09/14 Javascript
Bootstrap CSS组件之输入框组
2016/12/17 Javascript
如何理解Vue的.sync修饰符的使用
2017/08/17 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
python实现的二叉树算法和kmp算法实例
2014/04/25 Python
Python易忽视知识点小结
2015/05/25 Python
在Python中使用gRPC的方法示例
2018/08/08 Python
Django contenttypes 框架详解(小结)
2018/08/13 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
Python ORM编程基础示例
2020/02/02 Python
python通过cython加密代码
2020/12/11 Python
欧洲最大的球衣网上商店:Kitbag
2017/11/11 全球购物
面向对象编程的优势是什么
2015/12/17 面试题
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
思想品德自我评价
2014/02/04 职场文书
税务干部鉴定材料
2014/02/11 职场文书
大学生两会学习心得体会
2014/03/10 职场文书
计算机应用应届生求职信
2014/07/12 职场文书
2014各大专业毕业生自我评价
2014/09/17 职场文书
教学质量月活动总结
2015/05/11 职场文书
MATLAB 如何求取离散点的曲率最大值
2021/04/16 Python
Pytest allure 命令行参数的使用
2021/04/18 Python
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript
java objectUtils 使用可能会出现的问题
2022/02/28 Java/Android