Source code for catalyst.rl.core.algorithm
from typing import Dict, Union # isort:skip
from abc import ABC, abstractmethod
from .agent import ActorSpec, CriticSpec
from .environment import EnvironmentSpec
[docs]class AlgorithmSpec(ABC):
@property
@abstractmethod
def n_step(self) -> int:
pass
@property
@abstractmethod
def gamma(self) -> float:
pass
@abstractmethod
def _init(self, **kwargs):
pass
[docs] @abstractmethod
def pack_checkpoint(self, with_optimizer: bool = True, **kwargs):
# @TODO: remove
pass
[docs] @abstractmethod
def unpack_checkpoint(
self, checkpoint, with_optimizer: bool = True, **kwargs
):
# @TODO: remove
pass
[docs] @abstractmethod
def train(self, batch: Dict, **kwargs):
pass
[docs] @classmethod
@abstractmethod
def prepare_for_trainer(cls, env_spec: EnvironmentSpec, config: Dict):
# @TODO: remove
pass
[docs] @classmethod
@abstractmethod
def prepare_for_sampler(
cls, env_spec: EnvironmentSpec, config: Dict
) -> Union[ActorSpec, CriticSpec]:
# @TODO: remove
pass