[rllib] annotate public vs developer vs private APIs (#3808)

This commit is contained in:
Eric Liang
2019-01-23 21:27:26 -08:00
committed by GitHub
parent 01e18b47f4
commit 04ec47cbd4
45 changed files with 562 additions and 274 deletions
+14 -1
View File
@@ -18,7 +18,7 @@ from ray.rllib.models import MODEL_DEFAULTS
from ray.rllib.evaluation.policy_evaluator import PolicyEvaluator
from ray.rllib.evaluation.sample_batch import DEFAULT_POLICY_ID
from ray.rllib.optimizers.policy_optimizer import PolicyOptimizer
from ray.rllib.utils.annotations import override
from ray.rllib.utils.annotations import override, PublicAPI, DeveloperAPI
from ray.rllib.utils import FilterManager, deep_update, merge_dicts
from ray.tune.registry import ENV_CREATOR, register_env, _global_registry
from ray.tune.trainable import Trainable
@@ -182,6 +182,7 @@ COMMON_CONFIG = {
# yapf: enable
@DeveloperAPI
def with_common_config(extra_config):
"""Returns the given config dict merged with common agent confs."""
@@ -196,6 +197,7 @@ def with_base_config(base_config, extra_config):
return config
@PublicAPI
class Agent(Trainable):
"""All RLlib agents extend this base class.
@@ -214,6 +216,7 @@ class Agent(Trainable):
"custom_resources_per_worker"
]
@PublicAPI
def __init__(self, config=None, env=None, logger_creator=None):
"""Initialize an RLLib agent.
@@ -266,6 +269,7 @@ class Agent(Trainable):
extra_gpu=cf["num_gpus_per_worker"] * cf["num_workers"])
@override(Trainable)
@PublicAPI
def train(self):
"""Overrides super.train to synchronize global vars."""
@@ -344,11 +348,13 @@ class Agent(Trainable):
extra_data = pickle.load(open(checkpoint_path, "rb"))
self.__setstate__(extra_data)
@DeveloperAPI
def _init(self):
"""Subclasses should override this for custom initialization."""
raise NotImplementedError
@PublicAPI
def compute_action(self,
observation,
state=None,
@@ -404,6 +410,7 @@ class Agent(Trainable):
raise NotImplementedError
@PublicAPI
def get_policy(self, policy_id=DEFAULT_POLICY_ID):
"""Return policy graph for the specified id, or None.
@@ -413,6 +420,7 @@ class Agent(Trainable):
return self.local_evaluator.get_policy(policy_id)
@PublicAPI
def get_weights(self, policies=None):
"""Return a dictionary of policy ids to weights.
@@ -422,6 +430,7 @@ class Agent(Trainable):
"""
return self.local_evaluator.get_weights(policies)
@PublicAPI
def set_weights(self, weights):
"""Set policy weights by policy id.
@@ -430,6 +439,7 @@ class Agent(Trainable):
"""
self.local_evaluator.set_weights(weights)
@DeveloperAPI
def make_local_evaluator(self, env_creator, policy_graph):
"""Convenience method to return configured local evaluator."""
@@ -444,6 +454,7 @@ class Agent(Trainable):
config["local_evaluator_tf_session_args"]
}))
@DeveloperAPI
def make_remote_evaluators(self, env_creator, policy_graph, count):
"""Convenience method to return a number of remote evaluators."""
@@ -459,6 +470,7 @@ class Agent(Trainable):
self.config) for i in range(count)
]
@DeveloperAPI
def export_policy_model(self, export_dir, policy_id=DEFAULT_POLICY_ID):
"""Export policy model with given policy_id to local directory.
@@ -474,6 +486,7 @@ class Agent(Trainable):
"""
self.local_evaluator.export_policy_model(export_dir, policy_id)
@DeveloperAPI
def export_policy_checkpoint(self,
export_dir,
filename_prefix="model",