PyTorch 中的 dropout Dropout2d Dropout3d

PyTorch 中的 dropout

1. Pytoch 说明文档官网 PyTorch documentation 链接

1.1. torch.nn 中的 dropout

1.1.1. torch.nn.Dropout (Python class, in Dropout)

将输入的每个数值按(伯努利分布)概率赋值为0。即部分数值赋值为0。

import torch 
import torch.nn as nn
import torch.nn.functional as F
def run1nn():
	input_ = torch.randn(4, 2)
	m = nn.Dropout(p=0.5)
	# m = nn.AlphaDropout(p=0.5)
	output = m(input_)
	print("input_ = \n", input_)
	print("output = \n", output)

输出如下(部分数值赋值为0):

input_ = 
 tensor([[-1.1293, -1.2553],
        [-0.7586,  0.3034],
        [ 1.6672, -0.6755],
        [-1.8980,  1.1677]])
output =  # 部分数值赋值为0。 
 tensor([[-0.0000, -0.0000],
        [-1.5172,  0.6068],
        [ 0.0000, -0.0000], 
        [-3.7961,  0.0000]])
1.1.2. torch.nn.AlphaDropout (Python class, in AlphaDropout)

当输入数据满足均值为 0 的正太分布时,在将部分数值按(伯努利分布)概率赋值为0的同时,保持输出数据的概率分布与输入数据的概率分一致。即先将部分数值赋值为0,再调整所有数值的值来保证分布不变。

def run1nn():
	input_ = torch.randn(4, 2)
	# m = nn.Dropout(p=0.5)
	m = nn.AlphaDropout(p=0.5)
	output = m(input_)
	print("input_ = \n", input_)
	print("output = \n", output)

输出如下(先将部分数值赋值为0,再调整所有数值的值来保证分布不变):

input_ = 
 tensor([[-3.1806,  0.2888],
        
  • 17
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值