无脑入门pytorch系列(五)—— nn.Dropout

news2024/11/23 19:21:28

本系列教程适用于没有任何pytorch的同学(简单的python语法还是要的),从代码的表层出发挖掘代码的深层含义,理解具体的意思和内涵。pytorch的很多函数看着非常简单,但是其中包含了很多内容,不了解其中的意思就只能【看懂代码】,无法【理解代码】。

这里写目录标题

  • 官方定义
  • demo
  • Dropout的位置

官方定义

Dropout是一种常用的正则化方法,通过随机将部分神经元的输出置为0来减少过拟合

Dropout在训练时随机讲某些张量的值设为0,从而减少模型对训练数据的依赖程序,提高泛化能力;同时在测试时需要关闭Dropout,具体来说,如果处于model.eval模式时,并不会使用Dropout。

官方的文档如下,torch.nn.Dropout:

image-20230822160620479

demo

下面是一个官方文档给出的例子:

import torch
import torch.nn as nn

m = nn.Dropout(p=0.2)
input = torch.randn(20, 16)
output = m(input)

print(input[0])
print(output[0])

输出的结果:

image-20230822162625044

我们会发现:

  1. 有一部分的值变为了0,这些值大约占据总数的0.2。
  2. 其它非0参数都除以0.8,使得值变大了。比如:0.3514 / 0.8 = 0.4392-1.0317 / 0.8 = -1.2896

Dropout的位置

一般来说,我们在实现的神级网络中这么定义:

self.dropout = nn.Dropout(0.3)

但是具体在哪里使用是个问题。

一般来说,Dropout使用位置是在隐藏层之间的节点上,具体来说,就是在全连接层之间放置Dropout来避免过拟合:

import torch
import torch.nn as nn

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.fc1 = nn.Linear(in_features, hidden_size)
        self.dropout = nn.Dropout(dropout_prob)
        self.fc2 = nn.Linear(hidden_size, out_features)
    
    def forward(self, x):
        x = self.fc1(x)
        x = self.dropout(x)
        x = torch.relu(x)
        x = self.fc2(x)
        return x

比如上面得这个例子,dropout被放置在fc1和fc2之间。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Seaborn数据可视化(三)

1.绘制直方图 使用displot()绘制直方图。 import seaborn as sns import numpy as np import matplotlib.pyplot as plt# 生成随机数据 np.random.seed(0) data np.random.randn(1000)# 使用displot绘制直方图 sns.displot(data, bins10, kdeTrue)# 展示图形 plt.show() 结…

山西电力市场日前价格预测【2023-08-23】

日前价格预测 预测明日(2023-08-23)山西电力市场全天平均日前电价为327.31元/MWh。其中,最高日前电价为363.47元/MWh,预计出现在19: 45。最低日前电价为283.86元/MWh,预计出现在03: 30。 价差方向预测 1: 实…

mysql Left Join on条件 where条件的用法区别

数据准备 SELECT t1.id,t1.name,t2.local FROM t1 LEFT JOIN t2 ON t1.idt2.id; 执行结果 SELECT t1.id,t1.name,t2.local FROM t1 LEFT JOIN t2 ON t1.idt2.id and t2.localbeijing; SELECT t1.id,t1.name,t2.local FROM t1 LEFT JOIN t2 ON t1.idt2.id where t2.localbeijing…

微服务之光:探索代码质量的新维度

在当今的软件开发领域,微服务架构已经成为了一种主流的设计模式。但随着其带来的灵活性和可扩展性,也带来了一系列的挑战,尤其是在代码质量管理方面。本文将深入探讨如何在微服务架构中确保代码的质量,并提供一些实践策略和工具。…

Docker容器与虚拟化技术:Docker consul 实现服务注册与发现

目录 一、理论 1.Docker consul 二、实验 1.consul部署 2. consul-template部署 三、总结 一、理论 1.Docker consul (1)服务注册与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性&…

系统架构设计师之缓存技术:Redis与Memcache能力比较

系统架构设计师之缓存技术:Redis与Memcache能力比较

中国算力大会丨看看中兴新支点国产系统如何提升算力

近日,由工业和信息化部、宁夏回族自治区人民政府共同主办的2023中国算力(基础设施)大会在宁夏银川拉开帷幕,为期三天的“算力中国”创新成果展精彩亮相。中兴新支点国产操作系统的亮相,引起现场众多嘉宾前来了解。 “中…

Android类加载机制

要说Android的类加载机制 ,就离不开 类加载器ClassLoader,它是一个抽象接口 下面这个图还是比较好表达了类加载流程,但如果不看我红色画的线,就会感觉有点乱,需要注意是采用的是双亲委派模式,class加载要先…

​Softing dataFEED OPC Suite——助力数字孪生技术发展

一 行业概览 数字孪生技术是充分利用物理模型、传感器更新、运行历史等数据,集成多学科、多物理量、多尺度、多概率的仿真过程,在虚拟空间中完成映射,从而反映相对应的实体装备的全生命周期过程。数字孪生技术已经应用在众多领域&#xff1a…

[C++] string类常用接口的模拟实现

文章目录 1、前言2、遍历2.1 operator[ ]下标方式2.2 迭代器2.3 范围for2.4 c_str 3、容量相关3.1 size(大小)3.2 capacity(容量)3.3 empty(判空)3.4 clear(清理)3.5 reserve3.6 res…

ZooKeeper各服务器角色介绍

1 Leader Leader服务器是整个ZooKeeper集群工作机制中的核心,其主要工作有以下两个。 事务请求的唯一调度和处理者,保证集群事务处理的顺序性。 集群内部各服务器的调度者。 请求处理链 使用责任链模式来处理每一个客户端请求是ZooKeeper的一大特色。…

如何制作gif动态图片?多图片转gif的简单方法

看到网上各种各样的表情包,自己也想试试,怎么将多张图片进行gif合成(https://www.gif.cn)呢?可以在线生成gif动图的方法,打开浏览器就可以完成gif图片制作,下面是具体步骤。 打开网站&#xff…

亿发智能制造MES系统-实现互联网时代下贵州制造业全流程高效生产

在工业4.0和智能制造的推动下,贵州省制造类企业对于MES系统的建设需求逐年增长,日益认识到智能制造MES系统的重要性。不单是行业的助推器,更是企业走向智能化制造的重要环机。选择适合企业特点的智能制造MES系统,助力贵州省制造业…

Spring6.0官方文档示例:(28)多种方式添加BeanPostProcessor

一、定义三个BeanPostProcessor package cn.edu.pku;import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.stereotype.Component;Component public class MyScannedBeanPostPr…

RHCE——五、Web服务器及内网穿透(实验篇)

Web服务器篇 一、快速搭建网站二、更改网页启动目录三、内网穿透1、准备工作2、搭建网站3、测试:浏览器中输入ip进行测试4、使用花生壳进行内网穿透4.1 注册并登陆4.2 点击添加映射4.3 Linux安装花生壳客户端 5、注意 四、搭建具有身份验证功能网站1、准备工作2、编…

发票的种类

目录 增值税专用发票 增值税普通发票 增值税电子普通发票 机打式发票 定额发票 机动车销售统一发票 增值税专用发票 填写增值税发票时,单位全称、纳税人识别号、统一信用代码必填项且正确无误。专票必须填写,普票可不填写,若填写则必须…

CNN-LSTM选A股牛股(代码+数据+一键可运行)

在当前金融市场中,投资者对于高效的股票推荐系统需求不断增加。为了满足这一需求,我们开发了一款基于人工智能的牛股推荐器V1.0,其技术路线和方法在本文中将得到详细阐述。 全代码和数据关注公众号《三个篱笆三个班》免费提供!一…

CentOS7安装Oracle11g 11.2.0.4

一、安装环境 CentOS Linux release 7.2.1511 (Core) Oracle Database 11g Release 2 (11.2.0.4) 二、安装前准备 2.1 修改主机名 修改/etc/sysconfig/network配置文件中的HOSTNAME变量 [rootxqzt ~]# hostnamectl set-hostname oracledb####永久性修改[rootxqzt ~]#vi /etc/sy…

茶叶病害识别(Python代码,pyTorch框架,深度卷积网络模型,很容易替换为其它模型,带有GUI识别界面)

代码运行要求:Torch库>1.13.1即可 1.茶叶病害数据集(7类病害和1种正常) 1.茶叶病害数据集介绍(这个茶病数据集包含茶叶,显示了茶的7种常见疾病: 红叶斑 藻类叶斑 bird eye spot; 灰枯病; 白点; 炭…

ps怎么布尔运算多个图层合并?

我们经常使用Photoshop制作大型海报类,也可以用ps进行一些简单icon小图标的制作,这些icon图标多数应用在工具按钮上,比较小巧美观。但是对于ps对图形的操作经常会用到布尔运算的使用,今天小编就给大家详细讲解下ps布尔运算多个图层…