Python 错误:`callbacks`必须是可调用的方法,该方法返回DefaultCallbacks的子类,get<;类别';ray.rllib.agents.callbacks.DefaultCallbacks'&燃气轮机;

Python 错误:`callbacks`必须是可调用的方法,该方法返回DefaultCallbacks的子类,get<;类别';ray.rllib.agents.callbacks.DefaultCallbacks'&燃气轮机;,python,reinforcement-learning,ray,rllib,Python,Reinforcement Learning,Ray,Rllib,当我运行一些代码(DDPG-Deep Deterministic Policy Gradient)时,出现了以下错误:ValueError:callbacks必须是一个可调用的方法,它返回DefaultCallbacks的子类,get 我的代码在这里: import json def load_policy(): log_dir = "/root/ray_results/DDPG_SimpleSupplyChain_2020-07-15_02-37-48j2fjk67_&qu

当我运行一些代码(DDPG-Deep Deterministic Policy Gradient)时,出现了以下错误:ValueError:
callbacks
必须是一个可调用的方法,它返回DefaultCallbacks的子类,get

我的代码在这里:

import json

def load_policy():
    log_dir = "/root/ray_results/DDPG_SimpleSupplyChain_2020-07-15_02-37-48j2fjk67_" # this path needs to be set manually
    checkpoint_id = "200"
    with open(f"{log_dir}/params.json", "r") as read_file:
        config = json.load(read_file)
    trainer = ddpg.DDPGTrainer(config=config, env=SimpleSupplyChain)
    trainer.restore(f"{log_dir}/checkpoint_{checkpoint_id}/checkpoint-{checkpoint_id}")
    return trainer.get_policy()

policy = load_policy()
log_dir是经过训练的DDPG参数的位置

我想使用经过训练的参数,所以使用“config=json.load(read_file)”代码

然后,当我制作DDPGTrainer时,使用这个“配置”,但出现了一些错误


如何解决此错误?

我怀疑您的
params.json
具有回调类的字符串表示形式。config dict应该为回调保存一个真正的Python对象,而不是字符串表示。您可以尝试加载配置的pickle版本,如RLlib代码库中的
rollout.py
,而不是加载它的JSON表示形式。

我怀疑您的
params.JSON
具有回调类的字符串表示形式。config dict应该为回调保存一个真正的Python对象,而不是字符串表示。您可以尝试加载配置的pickle版本,比如RLlib代码库中的
rollout.py
,而不是加载它的JSON表示