• 文件 >
  • 開始使用日誌記錄
快捷方式

開始使用日誌記錄

作者: 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 全面的開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深入教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源