強化学習をやろうとしています。関数 'getSampleTime' (タイプ'double' の入力引数) が未定義です。の解決法を教えてください。
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
太雅 藤森
am 14 Okt. 2021
Bearbeitet: Toshinobu Shintai
am 14 Okt. 2021
MATLAB/Simulinkを用いて強化学習をやろうとしています。
Simulinkの診断ビューアーに以下のようなエラーメッセージが出てきたのですが、どのように対処したらよいのでしょうか。
'rl.simulink.blocks.AgentWrapper' の 'getSampleTime' メソッドを呼び出すときに MATLAB System ブロック 'PI_D/agent/AgentWrapper' エラーが発生しました。エラーは '
'C:\Program Files\MATLAB\R2021b\toolbox\rl\rl\simulink\+rl\+simulink\+blocks\AgentWrapper.m' at line 214 'C:\Program Files\MATLAB\R2021b\toolbox\simulink\ui\studio\config\m\+SLStudio\StartPauseContinue.p' at line 0 'C:\Program Files\MATLAB\R2021b\toolbox\simulink\ui\studio\config\m\+SLStudio\ToolBars.p' at line 0' からスローされました。
原因: 関数 'getSampleTime' (タイプ'double' の入力引数) が未定義です。
コンポーネント:Simulink | カテゴリ:Block エラー
またMATLAB の方のコードは以下の通りです。こちらはエラーは出ませんでした。
obsDim = [2 1];
obsInfo = rlNumericSpec(obsDim,"LowerLimit",-1*ones(2,1),"UpperLimit",ones(2,1))
actDim = {[0;0]};
k = 0;
for m = -1 : 0.01 : 1
for n = -1 : 0.01 : 1
k = k+1;
actDim{1,k} = [m;n];
end
end
actInfo = rlFiniteSetSpec(actDim)
obspath = [imageInputLayer([2 1],"Normalization","none","Name","obs");
fullyConnectedLayer(20,"Name","hiddenobs");
reluLayer("Name","reluobs");
fullyConnectedLayer(20,"Name","fcobs")];
actpath = [imageInputLayer([2 1],"Normalization","none","Name","act");
fullyConnectedLayer(20,"Name","hiddenact");
reluLayer("Name","reluact");
fullyConnectedLayer(20,"Name","fcact")];
joinedpath = [additionLayer(2,"Name","add");
reluLayer("Name","relu");
fullyConnectedLayer(1,"Name","fc")];
net = layerGraph(obspath)
net = addLayers(net,actpath);
net = addLayers(net,joinedpath);
plot(net)
net = connectLayers(net,"fcobs","add/in1");
net = connectLayers(net,"fcact","add/in2");
plot(net)
critic = rlQValueRepresentation(net,obsInfo,actInfo,"Observation","obs","Action","act");
agent = rlDQNAgent(critic);
env = rlSimulinkEnv("PI_D","PI_D/agent",obsInfo,actInfo);
よろしくお願いいたします。
0 Kommentare
Akzeptierte Antwort
Toshinobu Shintai
am 14 Okt. 2021
Bearbeitet: Toshinobu Shintai
am 14 Okt. 2021
おそらくですが、DQNのエージェントにサンプル時間が指定されていないのが理由ではないでしょうか。
以下のコード
agent = rlDQNAgent(critic);
を、
agentOptions = rlDQNAgentOptions('SampleTime', 0.01);
agent = rlDQNAgent(critic, agentOptions);
としてみて、エラーは無くなりませんでしょうか。
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu インストールとライセンスの紹介 finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!