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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mxnet基础到提高(6)--梯度,反馈与标准化(归一化)

發布時間:2025/3/12 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mxnet基础到提高(6)--梯度,反馈与标准化(归一化) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.attach_grad(grad_req=‘write’, stype=None)

附加一個梯度緩存在NDArray上,這樣,回退(反饋)能計算相應的梯度

參數:
grad_req ({‘write’, ‘add’, ‘null’})
‘write’: 梯度將在每次回退時覆蓋。
‘add’: 梯度將在每次回退時增加到已有數據中。
‘null’: 不計算梯度
stype (str, optional) – 梯度存儲類型,默認與NDArray相同

2.grad

返回附加在NDArray中的梯度

3.backward(out_grad=None, retain_graph=False, train_mode=True)

回退,計算NDArray關于其中的變量的梯度

Parameters:
out_grad (NDArray, optional) – 頂部的梯度
retain_graph (bool, optional) – 是否為傳遞到其它相同的圖的回退保留計算圖,默認,計算歷史將被刪除。train_mode (bool, optional) – 是否計算訓練梯度或推理梯度
4.批量標準化(歸一化)BatchNorm

mxnet.ndarray.BatchNorm(data=None, gamma=None, beta=None, moving_mean=None, moving_var=None, eps=_Null, momentum=_Null, fix_gamma=_Null, use_global_stats=_Null, output_mean_var=_Null, axis=_Null, cudnn_off=_Null, out=None, name=None, **kwargs)

通過平均值和方差來標準化(歸一化)數據批,應用gamma尺度以及偏移beta。

假設輸入有多于一個的維度,則標準化在axis為1進行。我們首先計算沿該軸的均值和方差

接著,計算標準化輸出,尺寸與input相同,如下:

均值和var都將輸入作為向量來返回標量。

假設輸入在軸1上具有大小k,那么gamma和beta都具有形狀(k,)。如果output_mean_var設置為true,則同時輸出data_means以及data_var的倒數,這對于向后傳遞是必需的。注意,這兩個輸出的梯度被阻塞。

除了輸入和輸出,這個算子還接受兩個輔助狀態,moving_mean 和moving_var,它們是k長度向量。它們是整個數據集的全局統計信息,它們由以下更新:

moving_mean = moving_mean momentum + data_mean (1 - momentum)
moving_var = moving_var momentum + data_var (1 - momentum)
如果use_global_stats設置為true,則使用moving_mean和moving_var代替data_means和data_var來計算輸出。它經常在推理過程中使用。

參數軸axis指定輸入形狀的哪個軸表示“通道”(分別歸一化組)。默認值為1。指定- 1將通道軸axis設置為輸入形狀中的最后一個項。

gamma 和beta都是可學習的參數。但是如果 fix_gamma為真,則將伽瑪設置為1,其梯度為0。

注意: fix_gamma為True, 不提供稀疏支持,fix_gamma為False,稀疏張量們將回退。

Parameters:
data (NDArray) – 用于批量標準化的輸入數據
gamma (NDArray) – gamma數組
beta (NDArray) – beta數組
moving_mean (NDArray) – 輸入的運行平均值
moving_var (NDArray) – 輸入的運行方差
eps (double, optional, default=0.001) -Epsion以防止DIV 0。當使用CUDNN(通常是1E-5)時,至少必須在CUDNN.H中定義CUDNN_BN_MIN_EPSILON
momentum (float, optional, default=0.9) – 移動平均動量
fix_gamma (boolean, optional, default=1) – 在訓練時固定伽馬
use_global_stats (boolean, optional, default=0) – 是否使用全局移動統計而不是本地批量范數。這將迫使batch-norm變成一個scale換算運算符。
output_mean_var (boolean, optional, default=0) – 輸出平均值和逆STD
axis (int, optional, default=‘1’) – 指定通道的形狀軸
cudnn_off (boolean, optional, default=0) – 如果有效不使用CUDNN操作。
out (NDArray, optional) – 輸出的NDArray控制結果
Returns:
out –函數輸出

Return type:
NDArray or NDArrays列表

總結

以上是生活随笔為你收集整理的mxnet基础到提高(6)--梯度,反馈与标准化(归一化)的全部內容,希望文章能夠幫你解決所遇到的問題。

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