强化学习笔记:基础代码

2023-04-23  本文已影响0人  圣_狒司机

一、基础环境类

必须有step方法,传参状态和动作 observation,action,返回新状态、新状态的奖励值和动作完成标签,observation_,reward,done。

from abc import ABC,abstractclassmethod
class Enviroment(ABC):
    @abstractclassmethod
    def setp(self,observation,action):
        # return observation_,reward,done
        ...

基础类里面的...是py 合法语法,应该完全拷贝。

二、基础人工智能类

基础人工智能类包含一个动作选择方法,传参状态值,返回选择动作。

class ArtificialIntelligence(ABC):
    @abstractclassmethod
    def choose_action(self,observation):
        # return action
        ...

三、用法

继承基础环境和人工智能类,重写step和choose_action方法,如果没有复写这两个方法,会报错。

class Env(Enviroment):
    ...
class Ai(ArtificialIntelligence):
    ...

env = Env()
ai = Ai()

报错:

TypeError: Can't instantiate abstract class Env with abstract method setp

这是因为基类ABCMeta的@abstractclassmethod装饰器在起作用。

上一篇 下一篇

猜你喜欢

热点阅读