快捷方式

開始使用日誌記錄

作者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 開發者文件

檢視文件

教程

為初學者和高階開發者提供深入的教程

檢視教程

資源

查詢開發資源並讓您的問題得到解答

檢視資源