Python深度学习之模型优化

本文探讨了如何优化深度学习模型,包括残差连接、标准化和深度可分离卷积等高级架构模式,以及超参数优化和模型集成技术。残差连接解决了深度学习中的梯度消失和表示瓶颈问题,批标准化通过动态调整数据均值和方差促进模型优化。深度可分离卷积在减少计算资源的同时保持高精度。此外,超参数优化如简单随机搜索和贝叶斯优化可自动化模型构建过程,而模型集成则通过结合多个模型的预测提升整体性能。
摘要由CSDN通过智能技术生成

Deep Learning with Python

这篇文章是我学习《Deep Learning with Python》(第二版,François Chollet 著) 时写的系列笔记之一。文章的内容是从 Jupyter notebooks 转成 Markdown 的,你可以去 GitHubGitee 找到原始的 .ipynb 笔记本。

你可以去这个网站在线阅读这本书的正版原文(英文)。这本书的作者也给出了配套的 Jupyter notebooks

本文为 第7章 高级的深度学习最佳实践 (Chapter 7. Advanced deep-learning best practices) 的笔记之一。

7.3 Getting the most out of your models

让模型性能发挥到极致

如果你只是想搞出个还不错的模型,无脑随便尝试各种网络架构基本就可以了。但如果你要开发出性能卓越、做到极致的模型,你就需要考虑一下后文给出的技巧。

高级架构模式

想要构架卓越的模型,你应该认识「残差连接」、「标准化」和「深度可分离卷积」这几个常用的“设计模式”。

残差连接

注:这一段是在 7.1 里写的,这里只是复制过来让这一部分更加完整。

残差连接(residual connection) 是一种现在很常用的组件,它解决了大规模深度学习模型梯度消失和表示瓶颈问题。通常,向任何多于 10 层的模型中添加残差连接,都可能会有所帮助。

  • 梯度消失:就是经过的层多了,之前学到的表示变得模糊,甚至完全丢失,导致网络无法训练。
  • 表示瓶颈:堆叠起来层,后一层只能访问到前一层学到的东西。如果某一层太小(激活中能够塞入的信息少)就把信息卡下来,出现瓶颈了。

残差连接是让前面某层的输出作为后面某层的输入(在网络中创造捷径)。前面层的输出并没有与后面层的激活连接在一起,而是与后面层的激活相加(若形状不同,用线性变换将前面层的激活改变成目标形状)。

注:线性变换可以用不带激活的 Dense 层,或着在 CNN 中用不带激活 1×1 卷积。

from keras import layers

x = ...

y = layers.Conv2D(128, 3, activation='relu', padding='same')(x)
y = layers.Conv2D(128, 3, activation='relu', padding='same')(y)
y = layers.MaxPooling2D(2, strides=2)(y)

# 形状不同,要做线性变换:
residual = layers.Conv2D(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值