使用autograd可實現深度學習模型,但其抽象程度較低,如果用其來實現深度學習模型,則需要編寫的**量極大。在這種情況下,torch.nn應運而生,其是專門為深度學習而設計的模組。torch.nn的核心資料結構是module
,它是乙個抽象概念,既可以表示神經網路中的某個層(layer),也可以表示乙個包含很多層的神經網路。在實際使用中,最常見的做法是繼承nn.module
,撰寫自己的網路/層。
全連線層的實現非常簡單,其**量不超過10行,但需注意以下幾點:
可見利用module實現的全連線層,比利用function
實現的更為簡單,因其不再需要寫反向傳播函式。
module能夠自動檢測到自己的parameter
,並將其作為學習引數。除了parameter
之外,module還包含子module
,主module能夠遞迴查詢子module
中的parameter
。下面再來看看稍微複雜一點的網路,多層感知機。
3 4 神經網路工具箱nn
前面我們使用過autograd和tensor實現過機器學習。但對於大型網路,autograd太過於底層和繁雜。所以我們使用nn工具箱。在nn工具箱裡有兩個重要模組 nn.module,nn.functional nn.module是nn的乙個核心資料結構,它可以是網路的某個層,也可以是包含多層的神經...
matlab神經網路工具箱
1 聚類 2 輸入輸出得擬合關係 3 模式識別和分類 4 動態時間序列 下面我們分別來看一下這些神經網路工具箱得使用 這是乙個簡單的對輸入輸出資料進行擬合得工具箱,使用具有隱藏層得神經網路結構。在本文中選取樣例,13 256得矩陣,表示256個人得13項身體指標樣本資料。在進行了前面比較簡單的選擇之...
MATLAB神經網路工具箱函式
說明 本文件中所列出的函式適用於matlab5.3以上版本,為了簡明起見,只列出了函式名,若需要進一步的說明,請參閱matlab的幫助文件。1.網路建立函式 newp 建立感知器網路 newlind 設計一線性層 newlin 建立一線性層 newff 建立一前饋bp網路 newcf 建立一多層前饋...