After seeing the ‘Replay Buffer’ in The TF-Agents SAC minitaur https://www.tensorflow.org/agents/tutorials/7_SAC_minitaur_tutorial tutorial, I’m starting to think replay is going to be a thing for the robot, one way or another.
I’m sticking to the google protobuf code that the minitaur uses, and will just need to save the best episodes, and work out how to replay them. The comments ask “use recordio?”
https://stackoverflow.com/questions/53219720/tfrecord-vs-recordio
import os import inspect currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) parentdir = os.path.dirname(os.path.dirname(currentdir)) os.sys.path.insert(0, parentdir) import argparse from gym_robotable.envs import logging if __name__ == "__main__": parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.add_argument('--log_file', help='path to protobuf file', default='/opt/gym-robotable/logs/robotable_log_2020-07-12-204613') args = parser.parse_args() logging = logging.RobotableLogging() episode = logging.restore_episode(args.log_file) print(dir (episode)) print("episode=",episode) fields = episode.ListFields()
So that’s printing out the episode.
Next step is saving only the best episodes
Then next step is stepping the simulation with the actions stored.
But now I’m not as sure. It might be better to switch to RLLAB (&Ray)
Would rather hide the details of serialization if I can.