深度學習筆記(一)

2021-09-24 23:31:39 字數 1543 閱讀 6140

在mxnet中,ndarray是乙個類,也是儲存和交換資料的主要工具。ndarray和numpy的多維陣列非常類似,ndarray提供gpu計算和自動求梯度等更多功能。

首先,從mxnet中匯入ndarray模組。

使用shape屬性獲取ndarray例項的形狀,也可以通過size屬性得到ndarray例項中的元素的總數。

下面使用reshape函式把行向量x的形狀改為(3,4),並記住x

使用zeros()建立零矩陣,使用ones來建立元素都為1的矩陣,除此之外,可以指定各個元素的值。

有時候,我們需要隨即生成ndarray中每個元素的值。下面我們建立乙個形狀(3,4)的ndarray。它的每個元素都隨機取樣於均值為0,標準差為1的正態分佈

使用sum(),可以對矩陣元素進行求和。

在深度學習中,我們經常需要對函式求梯度(gradient)。

為了求有關變數x的梯度,我們需要先呼叫attach_grad函式來申請儲存梯度所需要的記憶體

x.attach_grad(

)

下面定義有關變數x的函式。為了減少計算和記憶體開銷,預設條件下mxnet不會記錄用於求梯度的計算。

呼叫record函式來要求mxnet記錄與求梯度有關的記錄。

對函式y = 2xtx求關於列向量x的梯度

from mxnet import autograd,nd

x = nd.arange(4)

.reshape((4

,1))

#4行1列

x.attach_grad(

)#開闢記憶體

with autograd.record():

y =2*nd.dot(x.t,x)

#y是乙個標量

y.backward(

)#自動求梯度

assert

(x.grad-

4*x)

.norm(

).asscalar()==

0#求正規化,用asscalar轉換成標量,判斷是否為0

x.grad

關於y = 2xtx 求梯度,為y = 4x,結果如下

本文,介紹了mxnet的基本使用,比如建立零矩陣,單位矩陣,一些矩陣的基礎加法,乘法,由於基礎,這裡沒有列出,最後學習了一些自動求梯度的方法。

深度學習筆記(一)

深度學習筆記 一 logistic分類 深度學習筆記 二 簡單神經網路,後向傳播演算法及實現 深度學習筆記 三 啟用函式和損失函式 深度學習筆記 優化方法總結 bgd,sgd,momentum,adagrad,rmsprop,adam 深度學習筆記 四 迴圈神經網路的概念,結構和 注釋 深度學習筆記...

深度學習筆記(一)

1 對於多通道的影象採用多個卷積核,最終輸出的feature map是每個卷積核輸出的feature map所對應的座標處的值相加。2 卷積層引數的計算 輸入影象32 32 3,有6個卷積核,尺寸為5 5 3,每個卷積核輸出對應乙個特徵平面,一共6個特徵平面。即輸出特徵平面的個數和卷積核的個數相對應...

深度學習筆記(一)什麼是深度學習

從簡單的經驗中獲取知識,不需要人類去設計 規範知識,因為層次化的簡單概念可以讓計算機去學習,從而形成複雜的概念,如果用一張圖來表示就是一層一層,所以叫深度學習。ibm深藍 1997年 知識基礎 knowledge base 用公式來表述現實世界,現在還沒有成功案例。機器學習 machine lear...