Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何改进我的CNN?高常数验证误差

如何改进我的CNN?高常数验证误差
EN

Stack Overflow用户
提问于 2019-07-16 07:57:17
回答 1查看 440关注 0票数 4

我正在研究一个问题,根据奶牛的图像来预测奶牛有多胖。我使用CNN来估计介于0-5之间的值(我拥有的数据集,只包含2.25到4之间的值),我使用的是4层CNN层和3层隐藏层。

我实际上有两个问题: 1/我得到0.05的训练误差,但3-5周期后,验证误差保持在0.33左右。2/我的神经网络预测的值在2.9到3.3之间,与数据集范围相比太窄了。这正常吗?

我该如何改进我的模型?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
model = tf.keras.models.Sequential([
    tf.keras.layers.Conv2D(16, (3,3), activation='relu', input_shape=(512, 424,1)),
    tf.keras.layers.MaxPooling2D(2, 2),
    tf.keras.layers.Conv2D(32, (3,3), activation='relu'),
    tf.keras.layers.MaxPooling2D(2, 2),
    tf.keras.layers.Conv2D(32, (3,3), activation='relu'),
    tf.keras.layers.MaxPooling2D(2, 2),
    tf.keras.layers.Conv2D(64, (3,3), activation='relu'),
    tf.keras.layers.MaxPooling2D(2,2),
    tf.keras.layers.Flatten(input_shape=(512, 424)),
    tf.keras.layers.Dense(256, activation=tf.nn.relu),
    tf.keras.layers.Dense(128, activation=tf.nn.relu),
    tf.keras.layers.Dense(64, activation=tf.nn.relu),
    tf.keras.layers.Dense(1, activation='linear')
])

学习曲线:

预测:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-04 01:22:20

这似乎是过度适应的情况。你可以的

  1. Shuffle Data,通过在cnn_model.fit中使用shuffle=True。代码如下: history = cnn_model.fit(x = X_train_reshaped, y = y_train, batch_size = 512, epochs = epochs, callbacks=[callback], verbose = 1, validation_data = (X_test_reshaped, y_test), validation_steps = 10, steps_per_epoch=steps_per_epoch, shuffle = True)
  2. 使用Early Stopping。代码如下所示 callback = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=15)
  3. 使用正规化。正则化代码如下所示(您也可以尝试l1正则化或l1_l2正则化):

from tensorflow.keras.regularizers import l2

Regularizer = l2(0.001)

cnn_model.add(Conv2D(64,3, 3, input_shape = (28,28,1), activation='relu', data_format='channels_last', activity_regularizer=Regularizer, kernel_regularizer=Regularizer))

cnn_model.add(Dense(units = 10, activation = 'sigmoid', activity_regularizer=Regularizer, kernel_regularizer=Regularizer))

  1. 您可以尝试使用BatchNormalization
  2. 使用ImageDataGenerator执行图像数据增强。有关这方面的更多信息,请参考此链接
  3. 如果像素不是Normalized,用255除以像素值也有帮助。
  4. 最后,如果仍然没有变化,您可以尝试使用Pre-Trained Models,如ResNetVGG Net等。
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57061266

复制
相关文章
如何根据训练/验证损失曲线诊断我们的CNN
在关于训练神经网路的诸多技巧Tricks(完全总结版)这篇文章中,我们大概描述了大部分所有可能在训练神经网络中使用的技巧,这对如何提升神经网络的准确度是很有效的。
老潘
2023/10/19
2.3K0
如何根据训练/验证损失曲线诊断我们的CNN
问:为什么Keras训练模型得到的训练误差比测试误差高很多?
此外,训练误差是每批训练数据的平均误差。由于你的模型是随着时间而变化的,一个 epoch 中的第一批数据的误差通常比最后一批的要高。另一方面,测试误差是模型在一个 epoch 训练完后计算的,因而误差较小。
种花家的奋斗兔
2020/11/13
7070
CNN:我不是你想的那样
每当我们训练完一个CNN模型进行推理时候,一旦出现人类无法解释的现象就立刻指责CNN垃圾,说这都学不会?其实你可能冤枉它了,而本文试图为它进行辩护。
lujohn3li
2020/11/30
6900
CNN:我不是你想的那样
CNN卷积神经网络的改进(15年最新paper)
回归正题,今天要跟大家分享的是一些 Convolutional Neural Networks(CNN)的工作。大家都知道,CNN 最早提出时,是以一定的人眼生理结构为基础,然后逐渐定下来了一些经典的架构——convolutional 和 pooling 的交替,最后再加上几个 fully-connected layers 用作最后做 prediction 等的输出。然而,如果我们能“反思”经典,深入剖析这些经典架构中的不同 component 的作用,甚至去改进它们,有时候可能有更多的发现。所以,今天分享的内容,便是改进 CNN 的一些工作。
码科智能
2019/05/26
2.5K0
自然常数e的由来(简单通俗易于理解自然常数e)
柏拉图问苏格拉底,什么是爱情。苏格拉底说,这样吧,你去麦田里,不要回头,一直往前走,把你遇到的、最大的那棵麦穗摘下来、拿给我。后面的事,大家都知道了:柏拉图瞻前顾后,总觉得后面还有更好的,结果两手空空、一棵麦穗也没有得到。
全栈程序员站长
2022/11/17
8630
自然常数e的由来(简单通俗易于理解自然常数e)
[验证码识别技术]字符验证码杀手--CNN
字符验证码杀手--CNN 1 abstract  目前随着深度学习,越来越蓬勃的发展,在图像识别和语音识别中也表现出了强大的生产力。对于普通的深度学习爱好者来说,一上来就去跑那边公开的大型数据库,比如ImageNet或者CoCo,可以会觉得这个屠龙之技离生活好遥远。那么本文就是希望将此技术运用到一些普通用户日常就能感知的场景上,让普通用户切实能够体会到深度学习工具的非凡能力。 关键字:深度学习,验证码,破解,识别,CNN 2 验证码概述 很多普通程序员在入门爬虫的时候,基本上都会遇到的环节---“验证码”。
用户1170933
2018/04/02
6.1K0
[验证码识别技术]字符验证码杀手--CNN
CNN识别微博验证码
captcha_trainer 是基于深度学习的图片验证码的解决方案 - 该项目能够秒杀字符粘连重叠/透视变形/模糊/噪声等各种干扰情况,足以解决市面上绝大多数复杂的验证码场景,目前也被用于其他OCR场景。
李玺
2021/11/22
6150
CNN识别微博验证码
代码详解——如何计算横向误差?
在路径跟踪控制的论文中,我们常会看到判断精确性的指标,即横向误差和航向误差,那么横向误差和航向误差如何获得?
路径跟踪快讯
2022/01/25
1.6K0
代码详解——如何计算横向误差?
实时验证码技术可改进生物识别身份验证
实时验证码(Real-TimeCaptcha)使用了一种对人类来说很简单但使用机器学习和图像生成软件欺骗合法用户的攻击者来说却很困难的独特问题,这种身份验证方法可以提高当前靠用户面部视频或图像的生物鉴别技术的安全性。 最近出现了一种新的登录身份验证方法可以提高当前基于用户面部视频或图像的生物识别技术的安全性。这种技术被称为实时验证码(Real-Time Captcha),它使用了一种对人类来说很简单的独特问题——但对于那些可能使用机器学习和图像生成软件欺骗合法用户的攻击者来说却很困难。 实时验证码要求用户在
人工智能快报
2018/04/17
9363
我理解的高可用
最近因为一些私事暂停了之前计划的更新,拖了好久了,我会陆续全部写完,今天优先更新一篇小文吧。SDK相关的系列后续慢慢更新。好了不说废话了,进入下一段废话。 之前一直想写一篇关于高可用的内容,但一直没一个契机,最近被一个真实的案例坑的够惨,关键是发现对于高可用彼此竟然有比较大的理解差异,然后就总结一下自己想象中的高可用,也是自己对高可用的理解,算是分享和交流吧。 血淋淋的案例 首先必须承认这次客户端和后台都有不少问题,典型的坑中坑,一个bug接着一个bug。首先说一下问题的经过吧: 一次游戏的超长时间停机以后
子勰
2018/05/22
7480
代码详解——如何计算航向误差?
PS:我这个人代码存档的习惯不太好,几年前的代码虽然有存档,但是没什么注释,自己看都需要重新读,所以代码详解栏目的代码都是现码(搞这个公众号的初衷也有整理自己代码的目的)。如果后期公开的代码和前期公开的代码功能重复,但是性能更好,一般就是我自己暗搓搓地改了,而且很有可能我不会特别申明,请大家多担待。
路径跟踪快讯
2022/01/25
9320
代码详解——如何计算航向误差?
性能测试如何减少本机误差
在接口测试过程中,某个线程连续两次请求中间都会消耗的时间,线程在收到响应进行第二次请求的时候会消耗一些时间,比如进行结果验证,日志存储,或者进行数据统计等等。
FunTester
2020/02/17
5020
搭建前端监控,如何采集异常数据?
前两篇,我们介绍了为什么前端应该有监控系统,以及搭建前端监控的总体步骤,前端监控的 Why 和 What 想必你已经明白了。接下来我们解决 How 如何实现的问题。
杨成功
2022/09/22
2K0
Tensorflow搭建CNN实现验证码识别
采用三层卷积,filter_size均为5,为避免过拟合,每层卷积后面均接dropout操作,最终将
Awesome_Tang
2019/01/28
8400
Tensorflow搭建CNN实现验证码识别
14种模型设计帮你改进你的卷积神经网络(CNN)
自2011年以来,深度卷积神经网络(CNN)在图像分类的工作中的表现就明显优于人类,它们已经成为在计算机视觉领域的一种标准,如图像分割,对象检测,场景标记,跟踪,文本检测等。 但,想要熟练掌握训练神经网络的能力并不是那么容易。与先前的机器学习思维一样,细节决定成败。但是,训练神经网络有更多的细节需要处理。你的数据和硬件有什么限制?你应该是从何种网络开始?你应该建立多少与卷积层相对的密集层?你的激励函数怎样去设置?即使你使用了最流行的激活函数,你也必须要用常规激活函数。 学习速率是调整神经网络训练最重要的超参
两只橙
2018/04/27
1.7K0
14种模型设计帮你改进你的卷积神经网络(CNN)
【高并发】高并发环境下如何优化Tomcat性能?看完我懂了!
作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:
冰河
2020/10/29
1.1K0
【高并发】高并发环境下如何优化Tomcat性能?看完我懂了!
深度学习:CNN之验证码识别
当想要训练处理图像的深度学习模型时,遇到了大尺寸图像,如果我们直接使用全连接层来无脑叠加,那会造成以下几个问题:
CodeGoat24
2022/04/24
1.5K4
深度学习:CNN之验证码识别
用腾讯云快速进行CNN开发验证
本人非专业开发者,之前也没用过云服务器,所以在实践过程会遇到一些新手才会有的困惑。简单分享一下,给同样困惑的朋友一点借鉴,大神可以略过,谢谢!
桂小忠
2022/04/17
2.4K0
用腾讯云快速进行CNN开发验证
为什么你需要改进训练数据,如何改进?
Andrej Karpathy 在他的 Train AI 演讲中展示了这张胶片,我非常喜欢。这张胶片完美地揭示了深度学习在研究与生产间的区别。通常来说,学术论文的主要精力是放在开发新的、先进的模型上面,在数据集方面一般都是从公开的数据集取一部分使用。而相反,那些我所知道的想用深度学习技术做实际应用的开发者们,他们绝大部分的精力都花在了担心他们的训练数据上面。
AI研习社
2018/07/26
7040
为什么你需要改进训练数据,如何改进?
点击加载更多

相似问题

如何改进CNN模型?

22

如何纠正/改进我的CNN模式?如何处理验证精度冻结问题?

12

要求改进我的CNN学习模式吗?

13

Keras CNN中用于多类图像分类的验证精度常数

10

CNN中的尺寸误差

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文