0

我正在尝试按照本教程来了解RLlib的基础知识。

我在 OS X 上使用 pipenv 使用以下 Pipfile 设置我的环境:

[[source]]
name = "pypi"
url = "https://pypi.python.org/simple"
verify_ssl = true

[dev-packages]

[packages]
ray = {extras = ["default", "rllib"], version = "*"}
torch = "*"
jupyterlab = "*"
ipywidgets = "*"
gputil = "*"

[requires]
python_version = "3.8.12"

然后我通过运行设置环境:

$ pipenv --python /usr/local/opt/python@3.8/bin/python3 install --skip-lock
$ pipenv run jupyter nbextension enable --py widgetsnbextension --sys-prefix
$ pipenv run jupyter-lab

这安装(除其他外):

  • 蟒蛇 3.8.12
  • jupyter 实验室 3.1.13
  • 射线 1.6.0
  • 火炬 1.9.1
  • ipywidgets 7.6.5

有了这个,我可以运行以下单元格:

import time
import ipywidgets as widgets
from IPython.display import display

out = widgets.Output()
display(out)

with out:

    count = 0
    
    # 2) Enter an infinite while loop (to step through the episode).
    while count < 10:
        out.clear_output(wait=True)
        print(f"{count}")
        time.sleep(0.2)
        count += 1

这个简单的计数器给出了预期的输出。它打印 0,清除并打印 1,清除并打印 2,依此类推。

如果我然后运行以下两个单元格:

import numpy as np
import pprint
import ray

ray.init()
from ray.rllib.agents.ppo import PPOTrainer

config = {
   "env": "CartPole-v0",
   "framework": "torch",  # If users have chosen to install torch instead of tf.
   "create_env_on_driver": True,
}

rllib_trainer = PPOTrainer(config=config)

他们都运行没有错误。如果我然后重新运行计数器单元,它现在显示:

Output()
0[2K
1[2K
2[2K
3[2K
4[2K
5[2K
6[2K
7[2K
8[2K
9[2K

也就是说,小部件似乎突然停止工作。所有这些行都在不清除屏幕的情况下打印。导致问题的特定行是rllib_trainer = PPOTrainer(config=config). 如果我删除该行,小部件将继续工作。但是......创建像这样的 RL 训练器是本教程的重点。

我不是 Ray/RLlib 的专家。初始化培训师后如何保持小部件正常工作?

4

0 回答 0