多輸入多輸出 | MATLAB實現BiTCN(雙向時間卷積神經網絡)多輸入多輸出預測
目錄
- 多輸入多輸出 | MATLAB實現BiTCN(雙向時間卷積神經網絡)多輸入多輸出預測
- 預測效果
- 基本介紹
- 程序設計
- 參考資料
預測效果
基本介紹
Matlab實現BiTCN雙向時間卷積神經網絡多輸入多輸出預測
1.data為數據集,10個輸入特征,3個輸出變量。
2.main.m為主程序文件,其余為函數文件,無需運行,運行環境Matlab2021b及以上。
3.命令窗口輸出MBE、MAE、MAPE、RMSE和R2,可在下載區獲取數據和程序內容。
程序設計
- 完整源碼和數據獲取方式:私信博主回復MATLAB實現BiTCN(雙向時間卷積神經網絡)多輸入多輸出預測;
% 連接卷積層到殘差塊lgraph = connectLayers(lgraph, outputName, "conv1_" + i);% 創建 TCN反向支路flip網絡結構Fliplayers = [FlipLayer("flip_" + i) % 反向翻轉convolution1dLayer(1, numFilters, Name = "convSkip_"+i); % 反向殘差連接convolution1dLayer(filterSize, numFilters, DilationFactor = dilationFactor, Padding = "causal", Name="conv2_" + i) % 一維卷積層layerNormalizationLayer % 層歸一化spatialDropoutLayer(dropoutFactor) % 空間丟棄層convolution1dLayer(filterSize, numFilters, DilationFactor = dilationFactor, Padding = "causal") % 一維卷積層layerNormalizationLayer % 層歸一化reluLayer % 激活層spatialDropoutLayer(dropoutFactor, Name="drop" + i) % 空間丟棄層];% 添加 flip 網絡結構到網絡lgraph = addLayers(lgraph, Fliplayers);% 連接 flip 卷積層到殘差塊lgraph = connectLayers(lgraph, outputName, "flip_" + i);lgraph = connectLayers(lgraph, "drop" + i, "add_" + i + "/in3");lgraph = connectLayers(lgraph, "convSkip_"+i, "add_" + i + "/in4");% 殘差連接 -- 首層if i == 1% 建立殘差卷積層% Include convolution in first skip connection.layer = convolution1dLayer(1,numFilters,Name="convSkip");lgraph = addLayers(lgraph,layer);lgraph = connectLayers(lgraph,outputName,"convSkip");lgraph = connectLayers(lgraph,"convSkip","add_" + i + "/in2");elselgraph = connectLayers(lgraph,outputName,"add_" + i + "/in2");end% Update layer output name.outputName = "add_" + i;
end
參考資料
[1] https://blog.csdn.net/kjm13182345320/article/details/128247182
[2] https://blog.csdn.net/kjm13182345320/article/details/126043107