MATLAB深度學習之LSTM

2021-10-09 17:02:58 字數 1895 閱讀 7313

matlab深度學習之lstm

深度學習工具箱

net = trainnetwork(sequences,y,layers,options)

clc

clear

%% 訓練深度學習 lstm 網路,進行序列到標籤的分類。

%xtrain 是乙個包含 270 個不同長度序列的單元陣列,具有 12 個與 lpc cepstrum 係數對應的特徵。

%y 是標籤 1,2,...,9 的分類向量。

%xtrain 中的條目是包含 12 行(每個要素一行)和不同數量的列(每個時間步一列)的矩陣。

[xtrain,ytrain] = japanesevowelstraindata;

figure

plot(xtrain')

title("training observation 1")

numfeatures = size(xtrain,1);

legend("feature " + string(1:numfeatures),'location','northeastoutside')

%% 定義 lstm 網路架構。

%將輸入大小指定為 12(輸入資料的要素數)。

%指定 lstm 圖層具有 100 個隱藏單位並輸出序列的最後乙個元素。

%最後,通過包括大小為 9 的完全連線圖層,然後包括軟最大圖層和分類圖層來指定九個類。

inputsize = 12;

numhiddenunits = 100;

numclasses = 9;

layers = [ ...

sequenceinputlayer(inputsize)

lstmlayer(numhiddenunits,'outputmode','last')

fullyconnectedlayer(numclasses)

softmaxlayer

classificationlayer]

%% 指定訓練選項。

%將解算器指定為"adam",將"漸變"指定為 1。

%將小批處理大小設定為 27,將紀元的最大數設定為 70。

%由於小批量小,序列短,cpu 更適合訓練。

%將"執行環境"設定為"cpu"。若要在 gpu 上進行訓練(如果可用),請將"執行環境"設定為"自動"(預設值)

maxepochs = 70;

minibatchsize = 27;

options = trainingoptions('adam', ...

'executionenvironment','cpu', ...

'maxepochs',maxepochs, ...

'minibatchsize',minibatchsize, ...

'gradientthreshold',1, ...

'verbose',false, ...

'plots','training-progress');

%% 使用指定的訓練選項訓練 lstm 網路

net = trainnetwork(xtrain,ytrain,layers,options);

%% 載入測試集,將序列分類

[xtest,ytest] = japanesevowelstestdata;

%% 對測試資料進行分類。將小批處理大小設定為 27。

minibatchsize = 27;

ypred = classify(net,xtest,'minibatchsize',minibatchsize);

%% 計算**的分類精度。

acc = sum(ypred == ytest)./numel(ytest)

深度學習 LSTM的架構及公式

lstm long short term memory networks 長短時記憶模型 傳統的rnns只能解決短期依賴的問題,比如我們想 這句話 the clouds are in the sky 的最後乙個詞 sky 我們不需要更多的資訊,前面的資訊已經足夠了,這種情況下,相關資訊之間的距離非常...

matlab 深度學習環境配置

1 顯示卡驅動 沒有顯示卡驅動用不了顯示卡,所以都有顯示卡驅動,只需更新,一般將顯示卡驅動更新到最新 2 顯示卡 顯示卡決定算力 關於到底是顯示卡決定cuda還是顯示卡驅動決定cuda 3 matlab 深度學習平台,其版本決定cuda的版本 matlab版本與cuda的關係 4 vs matlab...

LSTM學習腳步

入門 colah s blog andrej karpathy blog 18個權重分別使用8個不同的卷積進行生成。實現了多層lstm。首先對每層的h和c進行初始化。對於同乙個時間step的不同層,前一層的h層輸出作為下一層的輸入。寫的挺好,只是沒有訓練方法。首先在第乙個時間序列的每個隱藏層之間傳遞...