強化学習をやろうとしています。関数 'getSampleTime' (タイプ'double' の入力引数) が未定義です。の解決法を教えてください。
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
太雅 藤森
el 14 de Oct. de 2021
Editada: Toshinobu Shintai
el 14 de Oct. de 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 comentarios
Respuesta aceptada
Toshinobu Shintai
el 14 de Oct. de 2021
Editada: Toshinobu Shintai
el 14 de Oct. de 2021
おそらくですが、DQNのエージェントにサンプル時間が指定されていないのが理由ではないでしょうか。
以下のコード
agent = rlDQNAgent(critic);
を、
agentOptions = rlDQNAgentOptions('SampleTime', 0.01);
agent = rlDQNAgent(critic, agentOptions);
としてみて、エラーは無くなりませんでしょうか。
0 comentarios
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!