【动手学习pytorch笔记】5.处理过拟合之——Dropout

本文介绍了Dropout在深度学习中的作用,如何在PyTorch中定义并实现Dropout层,以及如何在模型中应用它以防止过拟合。通过实例展示了模型构建过程和不同dropout率的效果。

Dropout

定义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)

mask用来生成 0 或 1 的随机数。

mask * X / (1.0 - dropout) 用来保证期望不发生变化。

测试一下

X= torch.arange(16, dtype = torch.float32).reshape((2, 8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值