欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于dropout

程序员文章站 2022-07-13 10:52:36
...
 def dropout(X, drop_prob):
    #drop_prob是丢弃的概率
        X = X.float()
        assert 0 <= drop_prob <= 1
        keep_prob = 1 - drop_prob
        # 这种情况下把全部元素都丢弃
        if keep_prob == 0:
            return torch.zeros_like(X)
        #小于keep_prob就能实现随机抛弃keep_prob的隐藏单元
        #randn生成的是01之间的数,利用randn随机生成在0-keep_pob这个区间的数就是占keep_prob这么多
        mask = (torch.randn(X.shape) < keep_prob).float()
        #除以keep_prob是为了不改变其输出的期望的。
        return mask * X / keep_prob