How to save an rl agent after every 1000 episodes?

조회 수: 20 (최근 30일)
Guru Bhargava Khandavalli
Guru Bhargava Khandavalli 2021년 3월 7일
편집: Lance 2023년 6월 29일
I am training a DDPG agent where the training runs over 1000 episodes. To see how it evolves, I would like to save the agents after every 1000 episodes. As i see the options available in rlTrainingOptions, it is only possible to save every agent after a critical value. This slows down the training process significantly because saving every agent consumes a lot of time. Is there an efficient way to save the agents only after every 1000 episodes?
Thank you.
  댓글 수: 1
Heesu Kim
Heesu Kim 2021년 3월 12일
편집: Heesu Kim 2021년 3월 19일
I agree with this. I don't understand why it does not have the most useful option. And I'm disappointed that this question still doesn't have any answer.

댓글을 달려면 로그인하십시오.

채택된 답변

Madhav Thakker
Madhav Thakker 2021년 3월 19일
Hi Guru,
I understand currently in rlTrainingOptions, there is no option to save the agent after specific number of episodes. I have raised an enhancement request for the same and this might be considered in future releases.
Hope this helps.
  댓글 수: 2
Heesu Kim
Heesu Kim 2021년 3월 19일
Yay!
Dmitriy Ogureckiy
Dmitriy Ogureckiy 2023년 1월 20일
I am the same opinion. Add this, please. Ball on your side.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Manuel Sebastian Rios Beltran
@Madhav Thakker But they did not do it :( a year later
  댓글 수: 1
Matteo D'Ambrosio
Matteo D'Ambrosio 2023년 5월 28일
2 years later! Agreed that this enhancement is much needed...

댓글을 달려면 로그인하십시오.


Lance
Lance 2023년 6월 23일
편집: Lance 2023년 6월 29일
From what I understand, the only other work around would be to write another training command. You would have to predfine this for every "checkpoint" ie. 10,20,30 episodes. The training-progress graph will continue to be actively updated. (Note I am using R2022a)
% Define all agents, observations, actions, environment, etc....
maxepisodes=500;
trainingOpts=rlMultiAgentTrainingOptions;
trainingOpts.SaveAgentCriteria="EpisodeCount";
trainingOpts.SaveAgentValue=maxepisodes
trainingStats=train([agent1,agent2],environment,trainingOpts); % Will train to max episodes and save agent
% Edit Trainingoptions to increase maxepisodes and save agent value
trainingStats(1,1).TrainingOptions.MaxEpisodes=1000;
trainingStats(1,1).TrainingOptions.SaveAgentValue=[1000,1000];
trainnigStats(1,1).TrainingOptions.StopTrainingValue=[1000,1000];
trainingStats(1,2).TrainingOptions.MaxEpisodes=1000;
trainingStats(1,2).TrainingOptions.SaveAgentValue=[1000,1000];
trainnigStats(1,2).TrainingOptions.StopTrainingValue=[1000,1000];
% Resume training -- Will train to 1000 episodes and save agent again
trainingStats2=train([agent1,agent2],environment,trainingStats) %Note you use trainingStats here not trainingOpts
Let me know if this helps!

카테고리

Help CenterFile Exchange에서 Training and Simulation에 대해 자세히 알아보기

제품


릴리스

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by