• 文档 >
  • 开始使用日志记录
快捷方式

开始使用日志记录

作者: Vincent Moens

注意

要在 notebook 中运行本教程,请在开头添加一个安装单元格,其中包含

!pip install tensordict
!pip install torchrl

本系列教程的最后一个章节,在我们把所有内容组织到一个训练脚本中之前,我们将学习日志记录。

日志记录器

日志记录对于向外部报告结果以及检查算法是否正常学习至关重要。TorchRL 提供了多种日志记录器,可以与自定义后端对接,例如 wandb (WandbLogger)、tensorboard (TensorBoardLogger) 或轻量便携的 CSV 日志记录器 (CSVLogger),这些几乎可以在任何地方使用。

日志记录器位于 torchrl.record 模块中,各种类可以在 API 参考中找到。

考虑到底层后端的差异,我们努力使日志记录器的 API 尽可能相似。虽然日志记录器的执行大部分是可互换的,但它们的实例化可能会有所不同。

通常,构建一个日志记录器至少需要一个实验名称,可能还需要一个日志目录和其他超参数。

from torchrl.record import CSVLogger

logger = CSVLogger(exp_name="my_exp")

一旦日志记录器被实例化,剩下的就只有调用日志记录方法了!例如,log_scalar() 在多个训练示例中用于记录奖励、损失值或执行一段代码所花费的时间等值。

logger.log_scalar("my_scalar", 0.4)

录制视频

最后,录制模拟器的视频会非常方便。一些环境(例如 Atari 游戏)已经渲染为图像,而其他环境则需要你自行创建。幸运的是,在大多数常见情况下,渲染和录制视频并不太困难。

让我们先看看如何创建一个 Gym 环境,使其在观察值之外输出图像。GymEnv 为此接受两个关键字参数:- from_pixels=True 将使环境的 step 函数写入一个包含与你的观察值对应的图像的 "pixels" 条目,以及

  • pixels_only=False 将表示你需要

同时返回观察值。

from torchrl.envs import GymEnv

env = GymEnv("CartPole-v1", from_pixels=True, pixels_only=False)

print(env.rollout(max_steps=3))

from torchrl.envs import TransformedEnv

现在我们已经构建了一个能随观察值一起渲染图像的环境。要录制视频,我们需要将该环境与录制器和日志记录器(日志记录器提供保存视频的后端)结合使用。这将在一个经过转换的环境中进行,就像我们在第一个教程中看到的那样。

from torchrl.record import VideoRecorder

recorder = VideoRecorder(logger, tag="my_video")
record_env = TransformedEnv(env, recorder)

运行此环境时,所有 "pixels" 条目将保存在本地缓冲区(即 RAM)中,并根据需要导出为视频(为防止 RAM 过度使用,建议在适当时调用此方法!)

rollout = record_env.rollout(max_steps=3)
# Uncomment this line to save the video on disk:
# recorder.dump()

在这种特定情况下,实例化 CSVLogger 时可以选择视频格式。

(如果你想自定义视频的录制方式,请参阅我们的知识库。)

这就是本入门教程要涵盖的全部内容。你现在应该准备好用 TorchRL 编写你的第一个训练循环了!

由 Sphinx-Gallery 生成的图库

文档

获取 PyTorch 全面的开发者文档

查看文档

教程

获取面向初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获得问题解答

查看资源