解决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 文件操作api(文件操作函数)
Aug 28 Python
对Python 文件夹遍历和文件查找的实例讲解
Apr 26 Python
python安装twisted的问题解析
Aug 21 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
Nov 07 Python
在PyCharm中批量查找及替换的方法
Jan 20 Python
Django 日志配置按日期滚动的方法
Jan 31 Python
PyCharm更改字体和界面样式的方法步骤
Sep 27 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
Dec 31 Python
Python读写操作csv和excle文件代码实例
Mar 16 Python
python 中的命名空间,你真的了解吗?
Aug 19 Python
通过实例了解python__slots__使用方法
Sep 14 Python
Python使用windows设置定时执行脚本
Nov 12 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
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
php基于dom实现读取图书xml格式数据的方法
2017/02/03 PHP
Laravel事件监听器用法实例分析
2019/03/12 PHP
Javascript 函数对象的多重身份
2009/06/28 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
js 字符串转换成数字的三种方法
2013/03/23 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
浏览器窗口加载和大小改变事件示例
2014/02/27 Javascript
如何减少浏览器的reflow和repaint
2015/02/26 Javascript
jquery插件bxslider用法实例分析
2015/04/16 Javascript
javascript常用的方法分享
2015/07/01 Javascript
BootStrap表单验证实例代码
2017/01/13 Javascript
Angular.js自定义指令学习笔记实例
2017/02/24 Javascript
JS实现禁止高频率连续点击的方法【基于ES6语法】
2017/04/25 Javascript
微信小程序实现登录页云层漂浮的动画效果
2017/05/05 Javascript
为什么我们要做三份 Webpack 配置文件
2017/09/18 Javascript
ztree实现左边动态生成树右边为内容详情功能
2017/11/03 Javascript
详解Chai.js断言库API中文文档
2018/01/31 Javascript
微信小程序模板消息推送的两种实现方式
2019/08/27 Javascript
Vue 实例中使用$refs的注意事项
2021/01/29 Vue.js
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
[03:01]完美世界DOTA2联赛PWL S2 集锦第二期
2020/12/03 DOTA
利用Python和OpenCV库将URL转换为OpenCV格式的方法
2015/03/27 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
python 实现12bit灰度图像映射到8bit显示的方法
2019/07/08 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
2019/11/19 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
Django 允许局域网中的机器访问你的主机操作
2020/05/13 Python
HTML5之SVG 2D入门1—SVG(可缩放矢量图形)概述
2013/01/30 HTML / CSS
Linux文件系统类型
2012/02/15 面试题
教师推荐信范文
2013/11/24 职场文书
会走路的树教学反思
2014/02/20 职场文书
学前教育专业求职信
2014/09/02 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
MySQL root密码的重置方法
2021/04/21 MySQL
python pygame 开发五子棋双人对弈
2022/05/02 Python