入力、出力がともにベクトルの2入力、2出力の深層学習を行う方法について
Show older comments
clear
%すべて同じ行数の縦ベクトルが入ったCSVファイル
input1ds=signalDatastore("input1.csv")
input2ds=signalDatastore("input2.csv")
output1ds=signalDatastore("output1.csv")
output2ds=signalDatastore("output2.csv")
%データストアを結合
ds=combine(input1ds,input2ds,output1ds,output2ds)
net=dlnetwork
% ニューラルネットワークの定義
layers1 = [
featureInputLayer(1)
fullyConnectedLayer(10) % 10ユニットの全結合層
tanhLayer
fullyConnectedLayer(10) % 10ユニットの全結合層
tanhLayer
fullyConnectedLayer(1) % 1ユニットの全結合層
];
layers2 = [
featureInputLayer(1)
fullyConnectedLayer(10) % 10ユニットの全結合層
tanhLayer
fullyConnectedLayer(10) % 10ユニットの全結合層
tanhLayer
fullyConnectedLayer(1) % 1ユニットの全結合層
];
net=addLayers(net,layers1)
net=addLayers(net,layers2)
net.plot
% オプションの設定
options = trainingOptions('sgdm', ... % 最適化アルゴリズム
'MaxEpochs', 500, ... % 最大エポック数
'MiniBatchSize', 2^3, ... % ミニバッチサイズ
'Verbose', true... % 進行状況の表示
);
% ニューラルネットワークのトレーニング
customLossFunction = @(Y, T) customloss(Y, T);
net = trainnet(ds,net,customLossFunction,options) % x,tは縦ベクトル
2入力2出力のネットワークに対応させるために、入出力の訓練データを4列のシャッフル可能なデータストアで用意できましたが、
次を使用中のエラー: trainnet (行 46)
Error forming mini-batch for network input "input". Data interpreted with format "BC". To specify a different format, use the InputDataFormats option.
エラー: parallel_learn_test (行 51)
net = trainnet(ds,net,customLossFunction,options) % x,tは縦ベクトル
原因:
データストアのバッチ次元は、形式のバッチ次元 (1) と一致しなければなりません。
というようにミニバッチ次元があっていない旨のエラーが出ます。ミニバッチ次元を指定する方法を教えていただけませんか。
Answers (0)
Categories
Find more on Deep Learning Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!