Skip to content

Commit d93f51e

Browse files
Rename AgentManager to ExperimentManager (#350)
* AgentManager -> ExperimentManager search and replace * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * rename file, add alias * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * rename file * add alias * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * search and replace agent_manager -> experiment_manager * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * change test file names --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent e4e7ed5 commit d93f51e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+491
-465
lines changed

docs/api.rst

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Main classes
1515
:template: class.rst
1616

1717

18-
manager.AgentManager
18+
manager.ExperimentManager
1919
manager.MultipleManagers
2020

2121
Evaluation and plot
@@ -202,7 +202,7 @@ Check Utilities
202202
utils.check_save_load
203203
utils.check_fit_additive
204204
utils.check_seeding_agent
205-
utils.check_agent_manager
205+
utils.check_experiment_manager
206206

207207
Logging Utilities
208208
-----------------

docs/basics/DeepRLTutorial/TutorialDeepRL.rst

+6-6
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Imports
1515
.. code:: python
1616
1717
from rlberry.envs import gym_make
18-
from rlberry.manager import plot_writer_data, AgentManager, evaluate_agents
18+
from rlberry.manager import plot_writer_data, ExperimentManager, evaluate_agents
1919
from rlberry.agents.torch import A2CAgent
2020
from rlberry.agents.torch.utils.training import model_factory_from_env
2121
@@ -149,9 +149,9 @@ default networks are:
149149
.. code:: python
150150
151151
"""
152-
The AgentManager class is compact way of experimenting with a deepRL agent.
152+
The ExperimentManager class is compact way of experimenting with a deepRL agent.
153153
"""
154-
default_agent = AgentManager(
154+
default_agent = ExperimentManager(
155155
A2CAgent, # The Agent class.
156156
(gym_make, dict(id="CartPole-v1")), # The Environment to solve.
157157
fit_budget=3e5, # The number of interactions
@@ -182,7 +182,7 @@ default networks are:
182182
183183
.. parsed-literal::
184184
185-
[INFO] Running AgentManager fit() for A2C default with n_fit = 1 and max_workers = None.
185+
[INFO] Running ExperimentManager fit() for A2C default with n_fit = 1 and max_workers = None.
186186
INFO: Making new env: CartPole-v1
187187
INFO: Making new env: CartPole-v1
188188
[INFO] Could not find least used device (nvidia-smi might be missing), use cuda:0 instead
@@ -353,7 +353,7 @@ and bigger batch size to have more stable training.
353353
354354
.. code:: python
355355
356-
tuned_agent = AgentManager(
356+
tuned_agent = ExperimentManager(
357357
A2CAgent, # The Agent class.
358358
(gym_make, dict(id="CartPole-v1")), # The Environment to solve.
359359
init_kwargs=dict( # Where to put the agent's hyperparameters
@@ -399,7 +399,7 @@ and bigger batch size to have more stable training.
399399
400400
.. parsed-literal::
401401
402-
[INFO] Running AgentManager fit() for A2C tuned with n_fit = 1 and max_workers = None.
402+
[INFO] Running ExperimentManager fit() for A2C tuned with n_fit = 1 and max_workers = None.
403403
INFO: Making new env: CartPole-v1
404404
INFO: Making new env: CartPole-v1
405405
[INFO] Could not find least used device (nvidia-smi might be missing), use cuda:0 instead

docs/basics/compare_agents.rst

+5-5
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Compare different agents
88

99

1010
Two or more agents can be compared using the classes
11-
:class:`~rlberry.manager.agent_manager.AgentManager` and
11+
:class:`~rlberry.manager.experiment_manager.ExperimentManager` and
1212
:class:`~rlberry.manager.multiple_managers.MultipleManagers`, as in the example below.
1313

1414

@@ -18,7 +18,7 @@ Two or more agents can be compared using the classes
1818
from rlberry.envs.classic_control import MountainCar
1919
from rlberry.agents.torch.reinforce import REINFORCEAgent
2020
from rlberry.agents.kernel_based.rs_kernel_ucbvi import RSKernelUCBVIAgent
21-
from rlberry.manager import AgentManager, MultipleManagers, plot_writer_data
21+
from rlberry.manager import ExperimentManager, MultipleManagers, plot_writer_data
2222
2323
2424
# Environment constructor and kwargs
@@ -38,10 +38,10 @@ Two or more agents can be compared using the classes
3838
3939
eval_kwargs = dict(eval_horizon=200)
4040
41-
# Create AgentManager for REINFORCE and RSKernelUCBVI
41+
# Create ExperimentManager for REINFORCE and RSKernelUCBVI
4242
multimanagers = MultipleManagers()
4343
multimanagers.append(
44-
AgentManager(
44+
ExperimentManager(
4545
REINFORCEAgent,
4646
env,
4747
init_kwargs=params["reinforce"],
@@ -51,7 +51,7 @@ Two or more agents can be compared using the classes
5151
)
5252
)
5353
multimanagers.append(
54-
AgentManager(
54+
ExperimentManager(
5555
RSKernelUCBVIAgent,
5656
env,
5757
init_kwargs=params["kernel"],

docs/basics/evaluate_agent.rst

+5-5
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ Evaluate an agent and optimize its hyperparameters
99
With rlberry_, once you created your agent, it is very easy to train in parallel
1010
several instances of it, analyze the results and optimize hyperparameters.
1111

12-
This is one of the purposes of the :class:`~rlberry.manager.agent_manager.AgentManager` class,
12+
This is one of the purposes of the :class:`~rlberry.manager.experiment_manager.ExperimentManager` class,
1313
as shown in the examples below.
1414

1515
.. code-block:: python
1616
1717
from rlberry.envs import gym_make
1818
from rlberry.agents.torch.reinforce import REINFORCEAgent
19-
from rlberry.manager import AgentManager, plot_writer_data
19+
from rlberry.manager import ExperimentManager, plot_writer_data
2020
2121
2222
# Environment (constructor, kwargs)
@@ -33,8 +33,8 @@ as shown in the examples below.
3333
eval_kwargs = dict(eval_horizon=500) # parameters to evaluate the agent
3434
3535
36-
# Create AgentManager to fit 4 instances of REINFORCE in parallel.
37-
stats = AgentManager(
36+
# Create ExperimentManager to fit 4 instances of REINFORCE in parallel.
37+
stats = ExperimentManager(
3838
REINFORCEAgent,
3939
env,
4040
init_kwargs=params,
@@ -87,7 +87,7 @@ For :class:`~rlberry.agents.reinforce.reinforce.REINFORCEAgent`, this method loo
8787
8888
8989
Now we can use the :meth:`optimize_hyperparams` method
90-
of :class:`~rlberry.manager.agent_manager.AgentManager` to find good parameters for our agent:
90+
of :class:`~rlberry.manager.experiment_manager.ExperimentManager` to find good parameters for our agent:
9191

9292
.. code-block:: python
9393

docs/basics/experiment_setup.rst

+5-5
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ To setup an experiment with rlberry, you can use yaml files. You'll need:
1313

1414
* yaml files describing the environments and the agents
1515

16-
* A main python script that reads the files and generates :class:`~rlberry.manager.agent_manager.AgentManager` instances to run each agent.
16+
* A main python script that reads the files and generates :class:`~rlberry.manager.experiment_manager.ExperimentManager` instances to run each agent.
1717

1818

1919
This can be done very succinctly as in the example below:
@@ -89,12 +89,12 @@ This can be done very succinctly as in the example below:
8989
9090
multimanagers = MultipleManagers()
9191
92-
for agent_manager in experiment_generator():
93-
multimanagers.append(agent_manager)
92+
for experiment_manager in experiment_generator():
93+
multimanagers.append(experiment_manager)
9494
9595
# Alternatively:
96-
# agent_manager.fit()
97-
# agent_manager.save()
96+
# experiment_manager.fit()
97+
# experiment_manager.save()
9898
9999
multimanagers.run()
100100
multimanagers.save()

docs/basics/multiprocess.rst

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Parallelization in rlberry
44
==========================
55

66
rlberry use python's standard multiprocessing library to execute the fit of agents in parallel on cpus. The parallelization is done via
7-
:class:`~rlberry.manager.AgentManager` and via :class:`~rlberry.manager.MultipleManagers`.
7+
:class:`~rlberry.manager.ExperimentManager` and via :class:`~rlberry.manager.MultipleManagers`.
88

99
If a user wants to use a third-party parallelization library like joblib, the user must be aware of where the seeding is done so as not to bias the results. rlberry automatically handles seeding when the native parallelization scheme are used.
1010

@@ -19,9 +19,9 @@ having practically no parallelization except if the code executed in each thread
1919
Process: spawn or forkserver
2020
----------------------------
2121

22-
To have an efficient parallelization, it is often better to use processes (see the doc on `python's website <https://docs.python.org/3/library/multiprocessing.html#module-multiprocessing>`_) using the parameter :code:`parallelization="process"` in :class:`~rlberry.manager.AgentManager` or :class:`~rlberry.manager.MultipleManagers`.
22+
To have an efficient parallelization, it is often better to use processes (see the doc on `python's website <https://docs.python.org/3/library/multiprocessing.html#module-multiprocessing>`_) using the parameter :code:`parallelization="process"` in :class:`~rlberry.manager.ExperimentManager` or :class:`~rlberry.manager.MultipleManagers`.
2323

24-
This implies that a new process will be launched for each fit of the AgentManager.
24+
This implies that a new process will be launched for each fit of the ExperimentManager.
2525

2626
The advised method of parallelization is spawn (parameter :code:`mp_context="spawn"`), however spawn method has several drawbacks:
2727

@@ -30,14 +30,14 @@ The advised method of parallelization is spawn (parameter :code:`mp_context="spa
3030
.. code:: python
3131
3232
from rlberry.agents.torch import A2CAgent
33-
from rlberry.manager import AgentManager
33+
from rlberry.manager import ExperimentManager
3434
from rlberry.envs.benchmarks.ball_exploration import PBall2D
3535
3636
n_steps = 1e5
3737
batch_size = 256
3838
3939
if __name__ == "__main__":
40-
manager = AgentManager(
40+
manager = ExperimentManager(
4141
A2CAgent,
4242
(PBall2D, {}),
4343
init_kwargs=dict(batch_size=batch_size, gamma=0.99, learning_rate=0.001),

docs/basics/quick_start_rl/quickstart.rst

+18-18
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Importing required libraries
2626
from rlberry.agents import UCBVIAgent, AgentWithSimplePolicy
2727
from rlberry.envs import Chain
2828
from rlberry.manager import (
29-
AgentManager,
29+
ExperimentManager,
3030
evaluate_agents,
3131
plot_writer_data,
3232
read_writer_data,
@@ -149,11 +149,11 @@ module :class:`~rlberry.agents.Agent` for more informations.
149149
Agent Manager
150150
-------------
151151

152-
One of the main feature of rlberry is its :class:`~rlberry.manager.AgentManager`
152+
One of the main feature of rlberry is its :class:`~rlberry.manager.ExperimentManager`
153153
class. Here is a diagram to explain briefly what it does.
154154

155155

156-
.. figure:: agent_manager_diagram.png
156+
.. figure:: experiment_manager_diagram.png
157157
:align: center
158158

159159

@@ -183,8 +183,8 @@ then spawn agents as desired during the experiment.
183183

184184
.. code:: python
185185
186-
# Create AgentManager to fit 1 agent
187-
ucbvi_stats = AgentManager(
186+
# Create ExperimentManager to fit 1 agent
187+
ucbvi_stats = ExperimentManager(
188188
UCBVIAgent,
189189
(env_ctor, env_kwargs),
190190
fit_budget=100,
@@ -194,8 +194,8 @@ then spawn agents as desired during the experiment.
194194
)
195195
ucbvi_stats.fit()
196196
197-
# Create AgentManager for baseline
198-
baseline_stats = AgentManager(
197+
# Create ExperimentManager for baseline
198+
baseline_stats = ExperimentManager(
199199
RandomAgent,
200200
(env_ctor, env_kwargs),
201201
fit_budget=100,
@@ -207,9 +207,9 @@ then spawn agents as desired during the experiment.
207207
208208
.. parsed-literal::
209209
210-
[INFO] Running AgentManager fit() for UCBVI with n_fit = 1 and max_workers = None.
210+
[INFO] Running ExperimentManager fit() for UCBVI with n_fit = 1 and max_workers = None.
211211
[INFO] ... trained!
212-
[INFO] Running AgentManager fit() for RandomAgent with n_fit = 1 and max_workers = None.
212+
[INFO] Running ExperimentManager fit() for RandomAgent with n_fit = 1 and max_workers = None.
213213
[INFO] ... trained!
214214
215215
@@ -307,8 +307,8 @@ Then, we fit the two agents and plot the data in the writer.
307307

308308
.. code:: python
309309
310-
# Create AgentManager to fit 4 agents using 1 job
311-
ucbvi_stats = AgentManager(
310+
# Create ExperimentManager to fit 4 agents using 1 job
311+
ucbvi_stats = ExperimentManager(
312312
UCBVIAgent2,
313313
(env_ctor, env_kwargs),
314314
fit_budget=50,
@@ -319,8 +319,8 @@ Then, we fit the two agents and plot the data in the writer.
319319
) # mp_context is needed to have parallel computing in notebooks.
320320
ucbvi_stats.fit()
321321
322-
# Create AgentManager for baseline
323-
baseline_stats = AgentManager(
322+
# Create ExperimentManager for baseline
323+
baseline_stats = ExperimentManager(
324324
RandomAgent2,
325325
(env_ctor, env_kwargs),
326326
fit_budget=5000,
@@ -330,8 +330,8 @@ Then, we fit the two agents and plot the data in the writer.
330330
)
331331
baseline_stats.fit()
332332
333-
# Create AgentManager for baseline
334-
opti_stats = AgentManager(
333+
# Create ExperimentManager for baseline
334+
opti_stats = ExperimentManager(
335335
OptimalAgent,
336336
(env_ctor, env_kwargs),
337337
fit_budget=5000,
@@ -344,11 +344,11 @@ Then, we fit the two agents and plot the data in the writer.
344344
345345
.. parsed-literal::
346346
347-
[INFO] Running AgentManager fit() for UCBVIAgent2 with n_fit = 10 and max_workers = None.
347+
[INFO] Running ExperimentManager fit() for UCBVIAgent2 with n_fit = 10 and max_workers = None.
348348
[INFO] ... trained!
349-
[INFO] Running AgentManager fit() for RandomAgent2 with n_fit = 10 and max_workers = None.
349+
[INFO] Running ExperimentManager fit() for RandomAgent2 with n_fit = 10 and max_workers = None.
350350
[INFO] ... trained!
351-
[INFO] Running AgentManager fit() for OptimalAgent with n_fit = 10 and max_workers = None.
351+
[INFO] Running ExperimentManager fit() for OptimalAgent with n_fit = 10 and max_workers = None.
352352
[INFO] ... trained!
353353
354354
Remark that ``fit_budget`` may not mean the same thing among agents. For

docs/basics/rlberry how to.rst

+13-13
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Libraries
77
import pandas as pd
88
from rlberry.agents import ValueIterationAgent, AgentWithSimplePolicy
99
from rlberry.envs import GridWorld
10-
from rlberry.manager import AgentManager, evaluate_agents
10+
from rlberry.manager import ExperimentManager, evaluate_agents
1111
1212
1313
.. parsed-literal::
@@ -86,8 +86,8 @@ our estimation.
8686

8787
.. code:: ipython3
8888
89-
# Create AgentManager to fit 4 agents using 1 job
90-
vi_stats = AgentManager(
89+
# Create ExperimentManager to fit 4 agents using 1 job
90+
vi_stats = ExperimentManager(
9191
ValueIterationAgent,
9292
(env_ctor, env_kwargs),
9393
fit_budget=0,
@@ -96,8 +96,8 @@ our estimation.
9696
n_fit=1)
9797
vi_stats.fit()
9898
99-
# Create AgentManager for baseline
100-
baseline_stats = AgentManager(
99+
# Create ExperimentManager for baseline
100+
baseline_stats = ExperimentManager(
101101
RandomAgent,
102102
(env_ctor, env_kwargs),
103103
fit_budget=0,
@@ -108,9 +108,9 @@ our estimation.
108108
109109
.. parsed-literal::
110110
111-
[INFO] Running AgentManager fit() for ValueIteration...
111+
[INFO] Running ExperimentManager fit() for ValueIteration...
112112
[INFO] ... trained!
113-
[INFO] Running AgentManager fit() for RandomAgent...
113+
[INFO] Running ExperimentManager fit() for RandomAgent...
114114
[INFO] ... trained!
115115
116116
@@ -205,8 +205,8 @@ the variability of our estimation).
205205

206206
.. code:: ipython3
207207
208-
# Create AgentManager to fit 4 agents using 1 job
209-
vi_stats = AgentManager(
208+
# Create ExperimentManager to fit 4 agents using 1 job
209+
vi_stats = ExperimentManager(
210210
ValueIterationAgent2,
211211
(env_ctor, env_kwargs),
212212
fit_budget=1,
@@ -215,8 +215,8 @@ the variability of our estimation).
215215
n_fit=4)
216216
vi_stats.fit()
217217
218-
# Create AgentManager for baseline
219-
baseline_stats = AgentManager(
218+
# Create ExperimentManager for baseline
219+
baseline_stats = ExperimentManager(
220220
RandomAgent2,
221221
(env_ctor, env_kwargs),
222222
fit_budget=1,
@@ -227,9 +227,9 @@ the variability of our estimation).
227227
228228
.. parsed-literal::
229229
230-
[INFO] Running AgentManager fit() for ValueIterationAgent2...
230+
[INFO] Running ExperimentManager fit() for ValueIterationAgent2...
231231
[INFO] ... trained!
232-
[INFO] Running AgentManager fit() for RandomAgent2...
232+
[INFO] Running ExperimentManager fit() for RandomAgent2...
233233
[INFO] ... trained!
234234
235235

0 commit comments

Comments
 (0)