捷徑

EGreedyWrapper

class torchrl.modules.EGreedyWrapper(*args, **kwargs)[source]

[已棄用] Epsilon-Greedy PO 包裝器。

參數:

policy (TensorDictModule) – 一個確定性策略。

關鍵字引數:
  • eps_init (純量, 選用) – 初始 epsilon 值。預設值:1.0

  • eps_end (純量, 選用) – 最終 epsilon 值。預設值:0.1

  • annealing_num_steps (int, 選用) – epsilon 達到 eps_end 值所需的步數

  • action_key (NestedKey, 選用) – 在輸入 tensordict 中找到動作的鍵。預設值為 "action"

  • action_mask_key (NestedKey, 選用) – 在輸入 tensordict 中找到動作遮罩的鍵。預設值為 None (對應於無遮罩)。

  • spec (TensorSpec, 選用) – 如果提供,則將從此動作空間中提取取樣的動作。如果未提供,則探索包裝器將嘗試從策略中恢復它。

注意

一旦模組被包裝在 EGreedyWrapper 中,就必須在訓練迴圈中包含對 step() 的呼叫,以更新探索因子。由於不容易捕捉到這種遺漏,如果省略此操作,則不會引發警告或例外!

範例

>>> import torch
>>> from tensordict import TensorDict
>>> from torchrl.modules import EGreedyWrapper, Actor
>>> from torchrl.data import Bounded
>>> torch.manual_seed(0)
>>> spec = Bounded(-1, 1, torch.Size([4]))
>>> module = torch.nn.Linear(4, 4, bias=False)
>>> policy = Actor(spec=spec, module=module)
>>> explorative_policy = EGreedyWrapper(policy, eps_init=0.2)
>>> td = TensorDict({"observation": torch.zeros(10, 4)}, batch_size=[10])
>>> print(explorative_policy(td).get("action"))
tensor([[ 0.0000,  0.0000,  0.0000,  0.0000],
        [ 0.0000,  0.0000,  0.0000,  0.0000],
        [ 0.9055, -0.9277, -0.6295, -0.2532],
        [ 0.0000,  0.0000,  0.0000,  0.0000],
        [ 0.0000,  0.0000,  0.0000,  0.0000],
        [ 0.0000,  0.0000,  0.0000,  0.0000],
        [ 0.0000,  0.0000,  0.0000,  0.0000],
        [ 0.0000,  0.0000,  0.0000,  0.0000],
        [ 0.0000,  0.0000,  0.0000,  0.0000],
        [ 0.0000,  0.0000,  0.0000,  0.0000]], grad_fn=<AddBackward0>)

文件

存取 PyTorch 的完整開發者文件

檢視文件

教學

取得針對初學者和進階開發者的深入教學

檢視教學

資源

尋找開發資源並獲得問題解答

檢視資源