MATLAB feedforwardnet
函數返回一個神經網絡對象具有documentation中所述的屬性。與前訓練的權重創建一個神經網絡的工作流程如下:
- 加載數據
- 創建網絡
- 配置網絡
- 初始化重量和偏見
- 列車網絡
步驟1,2,3和5與從零開始創建神經網絡時的步驟完全相同。讓我們在一個簡單的例子看:
% 1. Load data
load fisheriris
meas = meas.';
species = species.';
targets = dummyvar(categorical(species));
% 2. Create network
net = feedforwardnet([16, 16]);
% 3. Configure the network
configure(net, meas, targets)
現在,我們有一個神經網絡net
帶有4個輸入(萼片和花瓣長度和寬度),和3個輸出(「setosa」,「雲芝」和「錦葵」 )。我們有兩個隱藏層,每層都有16個節點。權重被存儲在兩個字段net.IW
和net.LW
,其中IW
是我 NPUT 瓦特八分,並LW
是升艾爾瓦特八分:
>> net.IW
ans =
3×1 cell array
[16×4 double]
[]
[]
>> net.LW
ans =
3×3 cell array
[] [] []
[16×16 double] [] []
[] [3×16 double] []
這在第一混淆,但有意義:這兩個單元格陣列中的每一行都對應於我們所擁有的其中一個圖層。
在IW
數組中,我們有輸入和每個圖層之間的權重。顯然,我們只在輸入和第一層之間有權重。這個權重矩陣的形狀是16x4
,因爲我們有4
輸入和16
隱藏單位。
在LW
陣列,我們有重物從各層(各行)到每個層(列)。在我們的例子中,第一層到第二層的權重矩陣爲16x16
,第二層的權重矩陣爲3x16
。理所當然,對嗎?
就這樣,我們知道如何初始化我們從RBM代碼得到的權重:
net.IW{1,1} = weights_input;
net.LW{2,1} = weights_hidden;
有了這一點,你可以用第5步,即在監督方式訓練網絡繼續。
歡迎來到SO。請閱讀這個[how-to-ask](http://stackoverflow.com/help/how-to-ask)並遵循那裏的指導原則,用附加信息來完善您的問題,例如代碼和錯誤消息來描述您的編程問題。 – thewaywewere