TensorFlow2 Python深度学习 - 使用Dropout层解决过拟合问题

锋哥原创的TensorFlow2 Python深度学习视频教程:

https://www.bilibili.com/video/BV1X5xVz6E4w/

课程介绍

​

本课程主要讲解基于TensorFlow2的Python深度学习知识,包括深度学习概述,TensorFlow2框架入门知识,以及卷积神经网络(CNN),循环神经网络(RNN),生成对抗网络(GAN),模型保存与加载等。

TensorFlow2 Python深度学习 - 使用Dropout层解决过拟合问题

之前的Fashion MINIST示例,我们会发现一个问题,训练数据准确率效果挺好,但是到了测试验证准确率就相对变差。这个其实就是过拟合了,原因就是训练过来的模型过于复杂。

我们在之前学习机器学习的时候,学过过拟合和欠拟合。

简单总结:

过拟合是模型过于复杂,导致训练数据表现好,但是测试数据表现就差。

欠拟合是模型过于简单,导致训练数据和测试数据表现都不好。

在神经网络里面,欠拟合问题很好解决,我们只需要增加层,增加每层的神经元,以及增加轮训训练次数即可。

解决过拟合的话,我们也有多种解决方案,适当的减少层,降低神经元数,以及我们今天要介绍的,使用Dropout丢弃层。

只需要在全连接之前,加一个Dropout丢弃层即可。

Dropout丢弃层是一种神经网络正则化技术,通过在训练阶段随机丢弃部分神经元,防止模型过拟合并提升泛化能力。

复制代码
layers.Dropout(0.5),  # 添加Dropout层来防止过拟合 随机丢弃50%的节点

我们重新运行测试,发现训练数据和验证数据效果都好很多了。

相关推荐
沧海一笑-dj10 小时前
【Python】Python学习笔记-模块与包
python·pip·模块·包·python包·python模块·包与模块
小蒋观天下10 小时前
雷击与浪涌防护:前端SPD选型、接地网误区,接地不当反而引入干扰
深度学习·算法·机器学习
echome88810 小时前
Python 异常处理:try、else、finally 的正确搭配
开发语言·前端·python·异常处理·编程技巧
云和数据.ChenGuang10 小时前
Python 单继承与多继承深度剖析:从 MRO 到实战取舍
开发语言·人工智能·python·langchain
威哥爱编程10 小时前
Python 智能体开发实战 02:你的 AI 助教说话像换了个模型?九成的 system prompt 都写错了
python·agent
威哥爱编程10 小时前
Python 智能体开发实战 01:装了三遍环境还在报错?虚拟环境和 DeepSeek 一次配到位
python·agent
小咕聊编程11 小时前
基于Python的豆瓣电影数据可视化系统构建分析
开发语言·python·信息可视化
小小张说故事12 小时前
Python 的 dict 为什么查询是 O(1)?拆开哈希表、扰动函数与扩容阈值
python
MarkHD13 小时前
超分辨率与图像放大:从ESRGAN的纹理重建到UltimateSDUpscale的4K分块实战
人工智能·深度学习·计算机视觉
像风一样的男人@13 小时前
python --基于scp的文件传输助手
开发语言·python