日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习:dropout和BN的实现

發布時間:2024/9/15 pytorch 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习:dropout和BN的实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • dropout
  • BN

dropout

dropout可以看成是正則化,也可以看成是ensemble

class Dropout(SubLayer):# self._prob:訓練過程中每個神經元被“留下”的概率def __init__(self, parent, shape, drop_prob=0.5):if drop_prob < 0 or drop_prob >= 1:raise ValueError("(Dropout) Probability of Dropout should be a positive float smaller than 1")SubLayer.__init__(self, parent, shape)# 被“留下”的概率自然是1-被Drop的概率self._prob = tf.constant(1-drop_prob, dtype=tf.float32)self.description = "(Drop prob: {})".format(drop_prob)def _activate(self, x, predict):# 如果是在訓練過程,那么就按照設定的、被“留下”的概率進行Dropoutif not predict:return tf.nn.dropout(x, self._prop) # 如果是在預測過程,那么直接返回輸入值即可return x

BN

簡單地將每層得到的數據進行上述歸一化操作顯然是不可行的、因為這樣會破壞掉每層自身學到的數據特征。為了使得中心化之后不破壞 Layer 本身學到的特征、BN 采取了一個簡單卻十分有效的方法:引入兩個可以學習的“重構參數”以期望能夠從中心化的數據重構出 Layer 本身學到的特征。

class Normalize(SubLayer):"""初始化結構self._eps:記錄增強數值穩定性所用的小值的屬性self._activation:記錄自身的激活函數的屬性,主要是為了兼容圖7.17 A的情況self.tf_rm、self.tf_rv:記錄μ_run、σ_run^2的屬性self.tf_gamma、self.tf_beta:記錄γ、β的屬性self._momentum:記錄動量值m的屬性"""def __init__(self, parent, shape, activation="Identical", eps=1e-8, momentum=0.9):SubLayer.__init__(self, parent, shape)self._eps = epsself._activation = activationself.tf_rm = self.tf_rv = Noneself.tf_gamma = tf.Variable(tf.ones(self.shape[1]), name="norm_scale")self.tf_beta = tf.Variable(tf.zeros(self.shape[1]), name="norm_beta")self._momentum = momentumself.description = "(eps:{}, momentum:{})".format(eps, momentum)def _activate(self, x, predict):if self.tf_rm is None or self.tf_rv is None:shape = x.get_shape()[-1]self.tf_rm = tf.Variable(tf.zeros(shape), trainable=False, name="norm_mean")self.tf_rv = tf.Variable(tf.ones(shape), trainable=False, name="norm_var")if not predict:# tf.nn.moments獲取原始的均值和誤差_sm, _sv = tf.nn.moments(x, list(range(len(x.get_shape())-1)))# 定義操作,方便控制依賴_rm = tf.assign(self.tf_rm, self._momentum*self.tf_rm + (1-self._momentum)*_sm)_rv = tf.assign(self.tf_rv, self._momentum*self.tf_rv + (1-self._momentum)*_sv)with tf.control_dependencies([_rm, _rv]):# 按照算法描述,momentum版本應該必須使用動量更新后的均值和誤差 # _norm = tf.nn.batch_normalization(x, _sm, _sv, self.tf_beta, self.tf_gamma, self._eps)_norm = tf.nn.batch_normalization(x, self.tf_rm, self.tf_rv, self.tf_beta, self.tf_gamma, self._eps)else:_norm = tf.nn.batch_normalization(x, self.tf_rm, self.tf_rv, self.tf_beta, self.tf_gamma, self._eps)# 如果指定了激活函數、就再用相應激活函數作用在BN結果上以得到最終結果# 這里只定義了ReLU和Sigmoid兩種,如有需要可以很方便地進行拓展if self._activation == "ReLU":return tf.nn.relu(_norm)if self._activation == "Sigmoid":return tf.nn.sigmoid(_norm)return _norm

總結

以上是生活随笔為你收集整理的深度学习:dropout和BN的实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 肉嫁高柳家在线看 | 美日韩视频 | 免费日韩视频 | 国产在线日韩 | 久草福利免费 | 亚洲精品一二三四 | 大肉大捧一进一出好爽动态图 | 女人脱下裤子让男人捅 | 欧美jjzz | 日本少妇大战黑人 | 日本不卡视频一区二区 | 欧美少妇激情 | 女人十八毛片嫩草av | 国产精品视频成人 | 夜夜操网站 | 人妻丰满熟妇av无码久久洗澡 | 国产精品视频在线免费观看 | 欧美性aaa | 成人中文字幕在线 | 黄色福利社 | 国产精品免 | 久久香蕉影院 | 91蜜桃婷婷狠狠久久综合9色 | 欧美一道本 | 女人下面喷水视频 | 色网站免费| 精品国产欧美一区二区 | 一级特黄aa大片欧美 | 中文字幕亚洲高清 | 欧美成人午夜 | 国产伊人自拍 | 国产精品片 | 亚洲视频综合网 | 女同一区 | 国产精品免费看久久久无码 | 免费看欧美黑人毛片 | 超碰影院在线 | 蜜臀一区| 美女干b视频| 香蕉视频最新网址 | 国产女人爽到高潮a毛片 | 秋霞影院午夜丰满少妇在线视频 | 亚洲日本韩国在线 | 中文字幕在线免费观看 | 免费观看亚洲 | 国产精品丝袜黑色高跟鞋 | 538国产精品一区二区 | 国产精品精品久久久久久 | 欧亚av | 久操视频在线观看免费 | 熟妇高潮喷沈阳45熟妇高潮喷 | 69成人免费视频 | 日韩一级片网站 | 午夜看黄神器 | 久久精品国产亚洲AV成人雅虎 | 亚洲观看黄色网 | 亚洲国产毛片aaaaa无费看 | 亚洲高清成人 | 最新中文字幕在线观看 | 91香蕉视频官网 | 国产一级爽片 | 五月婷婷丁香六月 | 国产精品美女www爽爽爽视频 | 超碰五月| 请用你的手指扰乱我吧 | 色一情一乱一乱一区91av | 国产福利观看 | 欧美精品久久久久性色 | 91大神一区二区 | 朝桐光av在线一区二区三区 | 星空大象mv高清在线观看免费 | jzzijzzij亚洲成熟少妇在线观看 久久久精品人妻一区二区三区 | 国产女人18毛片水18精品 | 欧美四区| 激情综合网五月激情 | 日本成人一区 | 午夜影院免费观看 | 屁股夹体温计调教play | 免费在线播放毛片 | 精品裸体舞一区二区三区 | 影音av资源 | 一级片免费网站 | 久久99视频精品 | 欧美色图日韩 | 另类小说一区二区 | 可以免费看的av | 国模大尺度视频 | 性一交一乱一区二区洋洋av | 91一区二区三区四区 | 午夜在线精品 | 久草网在线观看 | 国产免费999 | 亚洲毛片精品 | 女女爱爱视频 | 精品国产亚洲av麻豆 | 欧美国产精品一区 | 91gao| 春色校园激情 | 国产精品久久久久久久久借妻 |