rlberry-v0.2.1
New in v0.2
Improving interface and tools for parallel execution (#50)
AgentStats
renamed toAgentManager
.AgentManager
can handle agents that cannot be pickled.Agent
interface requireseval()
method instead ofpolicy()
to handle more general agents (e.g. reward-free, POMDPs etc).- Multi-processing and multi-threading are now done with
ProcessPoolExecutor
andThreadPoolExecutor
(allowing nested processes for example). Processes are created withspawn
(jax does not work withfork
, see #51).
New experimental features (see #51, #62)
- JAX implementation of DQN and replay buffer using reverb.
rlberry.network
: server and client interfaces to exchange messages via sockets.RemoteAgentManager
to train agents in a remote server and gather the results locally (usingrlberry.network
).
Logging and rendering:
- Data logging with a new
DefaultWriter
and improved evaluation and plot methods inrlberry.manager.evaluation
. - Fix rendering bug with OpenGL (bf606b4).
Bug fixes.
New in v0.2.1 (#65)
Features:
Agent
andAgentManager
both have aunique_id
attribute (useful for creating unique output files/directories).DefaultWriter
is now initialized in base classAgent
and (optionally) wraps a tensorboard SummaryWriter.AgentManager
has an optionenable_tensorboard
that activates tensorboard logging in each of itsAgent
s (with theirwriter
attribute). Thelog_dir
s of tensorboard are automatically assigned byAgentManager
.RemoteAgentManager
receives tensorboard data created in the server, when the methodget_writer_data()
is called. This is done by a zip file transfer withrlberry.network
.BaseWrapper
andgym_make
now have an optionwrap_spaces
. If set toTrue
, this option convertsgym.spaces
torlberry.spaces
, which provides classes with better seeding (using numpy'sdefault_rng
instead ofRandomState
)AgentManager
: new method get_agent_instances() that returns trained instancesplot_writer_data
: possibility to set xtag (tag used for x-axis)
Bug fixes:
- Fixed agent initialization bug in
AgentHandler
(eval_env
missing in kwargs for agent_class).