Subscripted assignment between dissimilar structures

Hello everyone
I am using rlDDPG to train an a robot, I tried the training before and everything was going fine, I started a new training and I keep getting the following error ... any ideas?
Subscripted assignment between dissimilar structures.
Error in rl.replay.internal.InMemoryReplay/append_ (line 50)
obj.Memory_(selectedIdx, 1) = Experiences;
Error in rl.replay.internal.AbstractInternalReplayMemory/append (line 31)
append_(obj,Experiences,DataSourceID);
Error in rl.replay.rlReplayMemory/appendWithoutSampleValidation (line 319)
append(obj.InternalReplayMemory_,Experiences,DataSourceID);
Error in rl.agent.AbstractOffPolicyAgent/appendExperiencesToMemory_ (line 196)
appendWithoutSampleValidation(this.ExperienceBuffer,experiences);
Error in rl.agent.mixin.InternalMemoryTrainable/appendExperiencesToMemory (line 27)
appendExperiencesToMemory_(this,experiences);
Error in rl.train.parallel.ExpAsyncParallelTrainer/processSimOutput_ (line 57)
appendExperiencesToMemory(this.Agent,experiences);
Error in rl.train.parallel.AsyncParallelTrainer/processFutures_ (line 28)
processSimOutput_(this,out);
Error in rl.train.parallel.AbstractParallelTrainer/run (line 70)
[F,outs,taskIDs] = processFutures_(this,F);
Error in rl.train.TrainingManager/train (line 516)
run(trainer);
Error in rl.train.TrainingManager/run (line 253)
train(this);
Error in rl.agent.AbstractAgent/train (line 187)
trainingResult = run(trainMgr,checkpoint);

4 个评论

Did you start a new training? Or did you continue training from a checkpoint?
I have no idea why it is happening, but what the message is telling you is that the output of a Sim step, experiences is a struct but it either has different field names or different field order than the existing struct in obj.Memory_
@Emmanouil Tzorakoleftherakis Sorry for the late reply, it was a new training, after I restarted matlab, it worked!
Thank you
@Walter Roberson Thanks it worked after I restrarted matlab

请先登录,再进行评论。

 采纳的回答

Hello Zaid
I understand that you are trying to train a robot using an ‘rlDDPG’ agent but on the second run of the training, you are encountering an error.
As stated by Walter in the comments, the error means that the ‘Experiences’ property of the simulated output ‘Future’ does not match the expected structure which should have the following fields: ‘Observation,Action, Reward, NextObservation and IsDone’.
After investigating the error message, the error can be originating due to different reasons based on which of the following cases is applicable to your use case.
  • 1) You are using pretrained checkpoints:
  • If you are using pretrained checkpoints from the previous training run, either the checkpoints are not loaded correctly or not stored properly. This is so because the function ‘run’ is running the ‘train’ method and not the ‘preTrain’ method which should be the case when pretrained checkpoints are used.
  • 2) You are not using pretrained checkpoints:
  • Please check the ‘environment’, ‘agents’,opt’ and ‘evaluator’ arguments that you are passing while defining ‘trainMgr’ object. They are responsible for the simulation of futures and the calculation of experiences.
I hope this helps!
Best Regards
Garmit

1 个评论

can that be solved by restarting matlab, this is what i did and it works, it was a new training

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Deep Learning Toolbox 的更多信息

产品

版本

R2023b

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by