iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python深度学习pytorch神经网络Dropout应用详解解
  • 238
分享到

Python深度学习pytorch神经网络Dropout应用详解解

2024-04-02 19:04:59 238人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录扰动的鲁棒性实践中的dropout简洁实现扰动的鲁棒性 在之前我们讨论权重衰减(L2​正则化)时看到的那样,参数的范数也代表了一种有用的简单性度量。简单性的另一个有用

扰动的鲁棒性

在之前我们讨论权重衰减(L2​正则化)时看到的那样,参数的范数也代表了一种有用的简单性度量。简单性的另一个有用角度是平滑性,即函数不应该对其输入的微笑变化敏感。例如,当我们对图像进行分类时,我们预计向像素添加一些随机噪声应该是基本无影响的。

dropout在正向传播过程中,计算每一内部层同时注入噪声,这已经成为训练神经网络的标准技术。这种方法之所以被称为dropout,因为我们从表面上看是在训练过程中丢弃(drop out)一些神经元。在整个训练过程的每一次迭代中,dropout包括在计算下一层之前将当前层中的一些节点置零。

那么关键的挑战就是如何注入这种噪声,一种想法是以一种无偏的方式注入噪声。这样在固定住其他层时,每一层的期望值等于没有噪音时的值。

在这里插入图片描述

实践中的dropout

之前多层感知机是带有一个隐藏层和5个隐藏单元的。当我们将dropout应用到隐藏层时,以 p的概率将隐藏单元置为零时,结果可以看作是一个只包含原始神经元子集的网络。右图中,删除了  h2​和  h5​。因此,输出的计算不再依赖于 h2​或  h5​,并且它们各自的梯度在执行反向传播时也会消失。这样,输出层的计算不能过度依赖于 h1​,…,h5​的任何一个元素。

在这里插入图片描述

通常,我们在测试时仅用dropout。给定一个训练好的模型和一个新的样本,我们不会丢弃任何节点,因此不需要标准化。

简洁实现

对于高级api,我们所需要做的就是在每个全连接层之后添加一个Dropout层,将丢弃概率作为唯一的参数传递给它的构造函数。在训练过程中,Dropout层将根据指定的丢弃概率随机丢弃上一层的输出(相当于下一层的输入)。当不处于训练模式时,Dropout层仅在测试时传递数据。


net = nn.Sequential(nn.Flatten(),
					nn.Linear(784, 256),
					nn.ReLU(),
					# 在第一个全连接层之后添加一个dropout层
					nn.Dropout(dropout1),
					nn.Linear(256, 256),
					nn.ReLU(),
					# 在第二个全连接层之后添加一个dropout层
					nn.Dropout(dropout2),
					nn.Linear(256, 10))

def init_weights(m):
	if type(m) == nn.Linear:
		nn.init.nORMal_(m.weight, std=0.01)

net.apply(init_weights)

接下来,我们对模型进行训练和测试。


trainer = torch.optim.SGD(net.parameters(), lr=lr)
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, trainer)

在这里插入图片描述

以上就是python深度学习PyTorch神经网络Dropout应用详解解的详细内容,更多关于pytorch神经网络Dropout应用的资料请关注编程网其它相关文章!

--结束END--

本文标题: Python深度学习pytorch神经网络Dropout应用详解解

本文链接: https://www.lsjlt.com/news/137769.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python深度学习pytorch神经网络Dropout应用详解解
    目录扰动的鲁棒性实践中的dropout简洁实现扰动的鲁棒性 在之前我们讨论权重衰减(L2​正则化)时看到的那样,参数的范数也代表了一种有用的简单性度量。简单性的另一个有用...
    99+
    2022-11-12
  • Python Pytorch深度学习之神经网络
    目录一、简介二、神经网络训练过程2、通过调用net.parameters()返回模型可训练的参数3、迭代整个输入4、调用反向传播5、计算损失值6、反向传播梯度7、更新神经网络参数总结...
    99+
    2022-11-12
  • Python深度学习pytorch神经网络汇聚层理解
    目录最大汇聚层和平均汇聚层填充和步幅多个通道我们的机器学习任务通常会跟全局图像的问题有关(例如,“图像是否包含一只猫呢?”),所以我们最后一层的神经元应该对整个输入的全局敏感。通过逐...
    99+
    2022-11-12
  • Python深度学习pytorch神经网络图像卷积运算详解
    目录互相关运算卷积层特征映射由于卷积神经网络的设计是用于探索图像数据,本节我们将以图像为例。 互相关运算 严格来说,卷积层是个错误的叫法,因为它所表达的运算其实是互相关运算(cros...
    99+
    2022-11-12
  • Python深度学习pytorch卷积神经网络LeNet
    目录LeNet模型训练不变性 在本节中,我们将介绍LeNet,它是最早发布的卷积神经网络之一。这个模型是由AT&T贝尔实验室的研究院Yann LeCun在1989年提出的(并...
    99+
    2022-11-12
  • Python深度学习理解pytorch神经网络批量归一化
    目录训练深层网络为什么要批量归一化层呢?批量归一化层全连接层卷积层预测过程中的批量归一化使用批量归一化层的LeNet简明实现争议训练深层神经网络是十分困难的,特别是在较短的实践内使他...
    99+
    2022-11-12
  • Python深度学习pytorch神经网络块的网络之VGG
    目录VGG块VGG网络训练模型与芯片设计中工程师从放置晶体管到逻辑元件再到逻辑块的过程类似,神经网络结构的设计也逐渐变得更加抽象。研究人员开始从单个神经元的角度思考问题,发展到整个层...
    99+
    2022-11-12
  • Python深度学习pytorch神经网络填充和步幅的理解
    目录填充步幅 上图中,输入的高度和宽度都为3,卷积核的高度和宽度都为2,生成的输出表征的维度为 2 × 2 2\times2 2×2。从上图可看出卷积的输出形状取决于输入形状和卷积核...
    99+
    2022-11-12
  • Python编程pytorch深度卷积神经网络AlexNet详解
    目录 容量控制和预处理读取数据集2012年,AlexNet横空出世。它首次证明了学习到的特征可以超越手工设计的特征。它一举打破了计算机视觉研究的现状。AlexNet使用了8...
    99+
    2022-11-12
  • Pytorch 使用Google Colab训练神经网络深度学习
    目录学习前言什么是Google Colab相关链接利用Colab进行训练一、数据集与预训练权重的上传1、数据集的上传2、预训练权重的上传二、打开Colab并配置环境1、笔记本的创建2...
    99+
    2022-11-10
  • Python深度学习神经网络残差块
    目录ResNet模型训练模型 ResNet沿用VGG完整的KaTeX parse error: Undefined control sequence: \time at posit...
    99+
    2022-11-12
  • Python深度学习pytorch神经网络多输入多输出通道
    目录多输入通道多输出通道 1×1卷积层虽然每个图像具有多个通道和多层卷积层。例如彩色图像具有标准的RGB通道来指示红、绿和蓝。但是到目前为止,我们仅展示了单个输入和单个输出...
    99+
    2022-11-12
  • Pytorch深度学习经典卷积神经网络resnet模块训练
    目录前言一、resnet二、resnet网络结构三、resnet181.导包2.残差模块2.通道数翻倍残差模块3.rensnet18模块4.数据测试5.损失函数,优化器6.加载数据集...
    99+
    2022-11-11
  • Python深度学习神经网络基本原理
    目录神经网络梯度下降法神经网络 梯度下降法 在详细了解梯度下降的算法之前,我们先看看相关的一些概念。     1. 步长(Learning rate):步长决定了在梯度下降迭...
    99+
    2022-11-12
  • Python深度学习pytorch神经网络多层感知机简洁实现
    我们可以通过高级API更简洁地实现多层感知机。 import torch from torch import nn from d2l import torch as d2l ...
    99+
    2022-11-12
  • Python深度学习之实现卷积神经网络
    目录一、卷积神经网络二、网络架构三、卷积四、卷积层五、在Keras中构建卷积层六、池化层七、全连接层八、Python实现卷积神经网络九、总结一、卷积神经网络 Yann LeCun 和...
    99+
    2022-11-12
  • Python深度学习TensorFlow神经网络基础概括
    目录一、基础理论1、TensorFlow2、TensorFlow过程1、构建图阶段2、执行图阶段(会话)二、TensorFlow实例(执行加法)1、构造静态图1-1、创建数据(张量)...
    99+
    2022-11-12
  • Pytorch深度学习经典卷积神经网络resnet模块实例分析
    这篇文章主要介绍“Pytorch深度学习经典卷积神经网络resnet模块实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Pytorch深度学习经典卷积神经网络resnet模块实例分析”文章能帮...
    99+
    2023-06-30
  • python神经网络学习利用PyTorch进行回归运算
    目录学习前言PyTorch中的重要基础函数1、class Net(torch.nn.Module)神经网络的构建:2、optimizer优化器3、loss损失函数定义4、训练过程全部...
    99+
    2022-11-10
  • python深度学习TensorFlow神经网络模型的保存和读取
    之前的笔记里实现了softmax回归分类、简单的含有一个隐层的神经网络、卷积神经网络等等,但是这些代码在训练完成之后就直接退出了,并没有将训练得到的模型保存下来方便下次直接使用。为了...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作