欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

正則化DropPath/drop_path用法示例(Python實(shí)現(xiàn))

 更新時間:2022年04月14日 08:28:49   作者:風(fēng)巽·劍染春水  
DropPath 類似于Dropout,不同的是 Drop將深度學(xué)習(xí)模型中的多分支結(jié)構(gòu)隨機(jī)"失效",而Dropout是對神經(jīng)元隨機(jī)"失效"這篇文章主要給大家介紹了關(guān)于正則化DropPath/drop_path用法的相關(guān)資料,需要的朋友可以參考下

DropPath/drop_path 是一種正則化手段,其效果是將深度學(xué)習(xí)模型中的多分支結(jié)構(gòu)隨機(jī)”刪除“,python中實(shí)現(xiàn)如下所示:

def drop_path(x, drop_prob: float = 0., training: bool = False):
    if drop_prob == 0. or not training:
        return x
    keep_prob = 1 - drop_prob
    shape = (x.shape[0],) + (1,) * (x.ndim - 1)  
    random_tensor = keep_prob + torch.rand(shape, dtype=x.dtype, device=x.device)
    random_tensor.floor_()  # binarize
    output = x.div(keep_prob) * random_tensor
    return output


class DropPath(nn.Module):
    def __init__(self, drop_prob=None):
        super(DropPath, self).__init__()
        self.drop_prob = drop_prob

    def forward(self, x):
        return drop_path(x, self.drop_prob, self.training)

調(diào)用如下:

self.drop_path = DropPath(drop_prob) if drop_prob > 0. else nn.Identity()

x = x + self.drop_path(self.token_mixer(self.norm1(x)))
x = x + self.drop_path(self.mlp(self.norm2(x)))

看起來似乎有點(diǎn)迷茫,這怎么就隨機(jī)刪除了分支呢

實(shí)驗(yàn)如下:

import torch

drop_prob = 0.2
keep_prob = 1 - drop_prob
x = torch.randn(4, 3, 2, 2)
shape = (x.shape[0],) + (1,) * (x.ndim - 1)
random_tensor = keep_prob + torch.rand(shape, dtype=x.dtype, device=x.device)
random_tensor.floor_()
output = x.div(keep_prob) * random_tensor

輸出:

x.size():[4,3,2,2]
x:
tensor([[[[ 1.3833, -0.3703],
          [-0.4608,  0.6955]],
         [[ 0.8306,  0.6882],
          [ 2.2375,  1.6158]],
         [[-0.7108,  1.0498],
          [ 0.6783,  1.5673]]],

        [[[-0.0258, -1.7539],
          [-2.0789, -0.9648]],
         [[ 0.8598,  0.9351],
          [-0.3405,  0.0070]],
         [[ 0.3069, -1.5878],
          [-1.1333, -0.5932]]],

        [[[ 1.0379,  0.6277],
          [ 0.0153, -0.4764]],
         [[ 1.0115, -0.0271],
          [ 1.6610, -0.2410]],
         [[ 0.0681, -2.0821],
          [ 0.6137,  0.1157]]],

        [[[ 0.5350, -2.8424],
          [ 0.6648, -1.6652]],
         [[ 0.0122,  0.3389],
          [-1.1071, -0.6179]],
         [[-0.1843, -1.3026],
          [-0.3247,  0.3710]]]])

random_tensor.size():[4, 1, 1, 1]
random_tensor:
tensor([[[[0.]]],
        [[[1.]]],
        [[[1.]]],
        [[[1.]]]])
output.size():[4,3,2,2]
output:
tensor([[[[ 0.0000, -0.0000],
          [-0.0000,  0.0000]],
         [[ 0.0000,  0.0000],
          [ 0.0000,  0.0000]],
         [[-0.0000,  0.0000],
          [ 0.0000,  0.0000]]],

        [[[-0.0322, -2.1924],
          [-2.5986, -1.2060]],
         [[ 1.0748,  1.1689],
          [-0.4256,  0.0088]],
         [[ 0.3836, -1.9848],
          [-1.4166, -0.7415]]],

        [[[ 1.2974,  0.7846],
          [ 0.0192, -0.5955]],
         [[ 1.2644, -0.0339],
          [ 2.0762, -0.3012]],
         [[ 0.0851, -2.6027],
          [ 0.7671,  0.1446]]],

        [[[ 0.6687, -3.5530],
          [ 0.8310, -2.0815]],
         [[ 0.0152,  0.4236],
          [-1.3839, -0.7723]],
         [[-0.2303, -1.6282],
          [-0.4059,  0.4638]]]])

random_tensor作為是否保留分支的直接置0項(xiàng),若drop_path的概率設(shè)為0.2,random_tensor中的數(shù)有0.2的概率為0,而output中被保留概率為0.8。

結(jié)合drop_path的調(diào)用,若x為輸入的張量,其通道為[B,C,H,W],那么drop_path的含義為在一個Batch_size中,隨機(jī)有drop_prob的樣本,不經(jīng)過主干,而直接由分支進(jìn)行恒等映射。

總結(jié)

到此這篇關(guān)于正則化DropPath/drop_path用法(Python實(shí)現(xiàn))的文章就介紹到這了,更多相關(guān)正則化DropPath/drop_path內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python創(chuàng)建和使用字典實(shí)例詳解

    python創(chuàng)建和使用字典實(shí)例詳解

    字典是python中唯一內(nèi)建的映射類型。字典中的值并沒有特殊的順序,但是都存儲在一個特定的鍵(key)里。
    2013-11-11
  • python中的lambda表達(dá)式用法詳解

    python中的lambda表達(dá)式用法詳解

    這篇文章主要介紹了python中的lambda表達(dá)式用法,詳細(xì)分析了lambda函數(shù)的功能、定義、使用方法與相關(guān)技巧,需要的朋友可以參考下
    2016-06-06
  • python網(wǎng)絡(luò)應(yīng)用開發(fā)知識點(diǎn)淺析

    python網(wǎng)絡(luò)應(yīng)用開發(fā)知識點(diǎn)淺析

    在本篇內(nèi)容中小編給學(xué)習(xí)python的朋友們整理了關(guān)于網(wǎng)絡(luò)應(yīng)用開發(fā)的相關(guān)知識點(diǎn)以及實(shí)例內(nèi)容,需要的朋友們參考下。
    2019-05-05
  • Python隨手筆記之標(biāo)準(zhǔn)類型內(nèi)建函數(shù)

    Python隨手筆記之標(biāo)準(zhǔn)類型內(nèi)建函數(shù)

    Python提供了一些內(nèi)建函數(shù)用于基本對象類型:cmp(),repr(),str(),type()和等同于repr()的(' ')操作符,本文給大家分享Python隨手筆記之標(biāo)準(zhǔn)類型內(nèi)建函數(shù),對python內(nèi)建函數(shù)相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • Python selenium文件上傳下載功能代碼實(shí)例

    Python selenium文件上傳下載功能代碼實(shí)例

    這篇文章主要介紹了Python selenium文件上傳下載功能代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Python匿名函數(shù)詳情

    Python匿名函數(shù)詳情

    這篇文章主要介紹了Python匿名函數(shù),在python中,除了一般使用def定義的函數(shù)外,還有一種使用lambda定義的匿名函數(shù),這種函數(shù)可以用在任何普通函數(shù)可以使用的地方,但在定義時被嚴(yán)格限定為單一表達(dá)式,下面來看詳細(xì)內(nèi)容吧
    2021-11-11
  • 簡單了解Django應(yīng)用app及分布式路由

    簡單了解Django應(yīng)用app及分布式路由

    這篇文章主要介紹了簡單了解Django應(yīng)用app及分布式路由,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • Python正則表達(dá)式高效處理文本數(shù)據(jù)的秘訣輕松掌握

    Python正則表達(dá)式高效處理文本數(shù)據(jù)的秘訣輕松掌握

    當(dāng)談到文本處理和搜索時,正則表達(dá)式是Python中一個強(qiáng)大且不可或缺的工具,正則表達(dá)式是一種用于搜索、匹配和處理文本的模式描述語言,可以在大量文本數(shù)據(jù)中快速而靈活地查找、識別和提取所需的信息,
    2023-11-11
  • python皮爾遜相關(guān)性數(shù)據(jù)分析分析及實(shí)例代碼

    python皮爾遜相關(guān)性數(shù)據(jù)分析分析及實(shí)例代碼

    這篇文章主要為大家介紹了python皮爾遜相關(guān)性分析及實(shí)例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • pyqt5、qtdesigner安裝和環(huán)境設(shè)置教程

    pyqt5、qtdesigner安裝和環(huán)境設(shè)置教程

    這篇文章主要介紹了pyqt5、qtdesigner安裝和環(huán)境設(shè)置方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09

最新評論