13 丢弃法dropout【李沐动手学深度学习v2笔记】


1. 丢弃法

在层之间加入随机噪音

加入噪音的一些规则

加入噪音后不要改变期望

使用丢弃法

推理中的丢弃法

总结


2. 代码实现

4.6. 暂退法(Dropouticon-default.png?t=N7T8https://zh.d2l.ai/chapter_multilayer-perceptrons/dropout.html

2.1 Dropout

import torch from torch import nn from d2l import torch as d2l def dropout_layer(X, dropout): assert 0 <= dropout <= 1 # 在本情况中,所有元素都被丢弃 if dropout == 1: return torch.zeros_like(X) # 在本情况中,所有元素都被保留 if dropout == 0: return X mask = (torch.rand(X.shape) > dropout).float() return mask * X / (1.0 - dropout)

2.2 测试dropout_layer函数

X= torch.arange(16, dtype = torch.float32).reshape((2, 8)) print(X) print(dropout_layer(X, 0.)) print(dropout_layer(X, 0.5)) print(dropout_layer(X, 1.))

2.3 定义模型参数

num_inputs, num_outputs, num_hiddens1, num_hiddens2 = 784, 10, 256, 256

2.4 定义模型

dropout1, dropout2 = 0.2, 0.5 class Net(nn.Module): def __init__(self, num_inputs, num_outputs, num_hiddens1, num_hiddens2, is_training = True): super(Net, self).__init__() self.num_inputs = num_inputs self.training = is_training self.lin1 = nn.Linear(num_inputs, num_hiddens1) self.lin2 = nn.Linear(num_hiddens1, num_hiddens2) self.lin3 = nn.Linear(num_hiddens2, num_outputs) self.relu = nn.ReLU() def forward(self, X): H1 = self.relu(self.lin1(X.reshape((-1, self.num_inputs)))) # 只有在训练模型时才使用dropout if self.training == True: # 在第一个全连接层之后添加一个dropout层 H1 = dropout_layer(H1, dropout1) H2 = self.relu(self.lin2(H1)) if self.training == True: # 在第二个全连接层之后添加一个dropout层 H2 = dropout_layer(H2, dropout2) out = self.lin3(H2) return out net = Net(num_inputs, num_outputs, num_hiddens1, num_hiddens2)

2.5 训练和测试

num_epochs, lr, batch_size = 10, 0.5, 256 loss = nn.CrossEntropyLoss(reduction='none') train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size) trainer = torch.optim.SGD(net.parameters(), lr=lr) d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, trainer)

3. 简洁实现

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);

4. 小结

 13 丢弃法dropout【李沐动手学深度学习v2笔记】icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/685141275

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/270652.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频压缩会影响画质吗?正确答案在这里!

在当今数字时代&#xff0c;我们生活在一个高清、甚至是4K视频的世界中。随之而来的是巨大的视频文件大小&#xff0c;这在存储、传输和分享方面都带来了一些挑战。为了解决这一问题&#xff0c;许多人转向视频压缩&#xff0c;以便更有效地管理和共享视频内容。 然而&#xf…

报表生成器FastReport .Net用户指南:表达式(下)

在上一篇文章《报表生成器FastReport .Net用户指南&#xff1a;表达式&#xff08;上&#xff09;》中&#xff0c;我们已经介绍了表达式中的表达式编辑器、引用报告对象、使用 .Net 函数、数据元素参考这四部分&#xff0c;接下来让我们继续介绍表达式中的&#xff1a;引用数据…

【word】引用文献如何标注右上角

一、在Word文档中引用文献并标注在右上角的具体步骤如下 1、将光标移动到需要添加文献标注的位置&#xff1a; 2、在文档上方的工具栏中选择“引用”选项&#xff1a; 3、点击“插入脚注”或“插入尾注”&#xff1a; ①如果选择的是脚注&#xff0c;则脚注区域会出现在本页的…

RabbitMQ使用SpringAMQP

简介 绝对的简单&#xff0c;绝对的易懂&#xff0c;方便初学者&#xff0c;更加利于理解和上手使用&#xff08;代码可直接复制粘贴进行使用&#xff09; 如有其它问题&#xff0c;大家可以留言或私聊。 主要为了给大家展示各个代码使用 如果需要更加完整的文档&#xff0…

Android使用Sensor.TYPE_STEP_COUNTER计步器传感器进行步数统计

1、首先&#xff0c;申请权限 必须声明 ACTIVITY_RECOGNITION 权限&#xff0c;以便您的应用在运行 Android 10 (API 级别 29) 或更高版本的设备上使用此传感器。 Manifest.xml也记得声明 if (Build.VERSION.SDK_INT > Build.VERSION_CODES.P) {Log.d(TAG, "[权限]&quo…

虚拟化之CPU

一 cpu 1 如何查看内核版本&#xff1a;uname -r 2 如何查看操作系统的发行版本&#xff1a;cat /etc/redhat-release 3 计算机系统子的系统 cpu处理器memory内存storage存储network 网络Display显示 4 进程模式 用户模式&#xff08;user mode&#xff09;主要处理I/O的模…

CTP-API开发系列之四:接口对接准备

CTP-API开发系列之四&#xff1a;接口对接准备 CTP-API开发系列之四&#xff1a;接口对接准备CTP-API文件清单CTP-API通用规则命名规则Spi与Api CTP-API通讯模式开发语言选择 CTP-API开发系列之四&#xff1a;接口对接准备 CTP-API文件清单 文件名说明ThostFtdcTraderApi.h交…

微前端之什么是微前端

什么是微前端 微前端分类 基于路由的微前端&#xff1a;组件化微前端&#xff1a;iframe嵌入式微前端&#xff1a; 优点缺点 动态加载/懒加载微前端&#xff1a;微应用容器化方案&#xff1a; 微前端解决方案 single-spa阿里巴巴 Cloud Alfaiframe 方案Web ComponentsModule Fe…

kafka消费端消息去重方案

背景 我们在日常工作中&#xff0c;消费kafka消息是一个最常见的操作&#xff0c;不过由于kafka队列中经常包含重复的消息&#xff0c;并且消息量巨大&#xff0c;所以我们消费端总是需要先把消息进行去重后在消费&#xff0c;以减少消费端的压力&#xff0c;那么日常中我们一…

Android视角看鸿蒙第一课(工程目录)

Android视角看鸿蒙第一课&#xff08;工程目录&#xff09; 导读 鸿蒙马上就来了&#xff0c;这个工作很有可能落到Android开发的头上&#xff0c;既是机遇也是挑战&#xff0c;希望能跟上时代的浪潮&#xff0c;迫不得已开始学习鸿蒙开发&#xff0c;顺带分享记录下 我的学…

四、神经网络语言模型(NNLM)

神经网络&#xff08;Neural Network&#xff0c;NN&#xff09;主要由输入层、隐藏层、输出层构成&#xff0c;输入层的的节点数等于待处理数据中输入变量的个数&#xff08;每一个变量代表了一个特征&#xff09;&#xff0c;输出层的节点数等于与每个输入变量关联的输出的数…

docker mysql主从复制

新建主服务器容器实例3301 mysql 主 3301 docker run -p 3301:3306 --name mysql-master \ -v /mydata/mysql-master/log:/var/log/mysql \ -v /mydata/mysql-master/data:/var/lib/mysql \ -v /mydata/mysql-master/conf:/etc/mysql \ -v /home/mysql/mysql-files:/var/lib/…

微信小程序开发学习笔记《18》uni-app框架-网络请求与轮播图

微信小程序开发学习笔记《18》uni-app框架-网络请求 博主正在学习微信小程序开发&#xff0c;希望记录自己学习过程同时与广大网友共同学习讨论。建议仔细阅读uni-app对应官方文档 一、下载网络请求包 这个包是以前黑马程序员老师写的一个包&#xff0c;跟着课程学习&#x…

【仿真总结】基于matlab的传递函数计算与绘图

前言 在DC-DC电路控制算法中&#xff0c;PID控制是最常见且实用的&#xff0c;但实现前提有二&#xff0c;一是需要手算电路传递函数&#xff0c;二是需要将实际电路元件数值代入计算&#xff0c;第一步无法避免&#xff0c;但是在进行第二步时&#xff0c;存在大量基础、细致的…

Qt入门(一)Qt概述

Qt是什么&#xff1f; Qt是一个跨平台应用开发框架。 Qt既包括了一系列的Qt库&#xff0c;还包括诸多配套的开发工具如QtCreater&#xff0c;GUI Designer。Qt本身是由C开发的&#xff0c;但是也提供了其他编程语言的接口。 Qt的定位以及同类 学一种技术&#xff0c;最重要的是…

蓝桥杯-Set

目录 HashSet类常用方法 1 add(Object obj)方法 2 size() 方法 3 remove(Object obj)方法 4 contains()方法 5 clear() 方法 例题实战 set 一个不允许出现重复的元素&#xff0c;并且无序的集合&#xff0c;主要有HashSet实现类。 在判断重复元素的时候&#xff0c;Set集…

基于Python实现银行卡识别

在本文中将介绍如何使用Python和深度学习技术来实现银行卡识别功能。银行卡识别是一个在金融、安全等领域具有重要应用的问题&#xff0c;将使用深度学习模型来实现银行卡图像的识别和分类。 目录 引言数据集准备预处理和特征提取模型选择与训练模型评估与性能优化部署与应用 引…

第三百八十六回

文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了Snackbar Widget相关的内容,本章回中将介绍TimePickerDialog Widget.闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 我们在这里说的TimePickerDialog是一种弹出窗口&#xff0c;只不过窗口的内容固定显示…

[Redis]——数据一致性,先操作数据库,还是先更新缓存?

目录 一、操作缓存和数据库时有三个问题需要考虑&#xff1a; 1.删除缓存还是更新缓存&#xff1f; 2.如何保证缓存与数据库的操作同时成功或失效 3.先操作缓存还是先操作数据库&#xff08;多线程并发问题&#xff09; 二、 缓存更新的最佳策略 一、操作缓存和数据库时有…

heic怎么转换成jpg?3个方法帮你一键批量转换

heic怎么转换成jpg&#xff1f;在日常生活中&#xff0c;将HEIC转换为JPG可以为我们带来诸多便利。JPG格式作为一种广泛被接受的图片格式&#xff0c;不仅兼容性更强&#xff0c;还能在各种设备和平台上顺畅显示。这意味着&#xff0c;无论是上传到社交媒体&#xff0c;还是发送…