創(chuàng)建Academy
Academy總體協(xié)調Unity場景中的所有Agent和Brain對象。每個包含agent的場景都必須包含一個Academy。要使用Academy,你必須創(chuàng)建你自己的子類。但是,所有需要重寫的方法都是可選的。
使用Academy方法來:
- 場景加載后初始化環(huán)境
- 重置環(huán)境
- 在每個模擬步驟中更改環(huán)境中的內容
有關在模擬期間調用這些方法的時間的說明,請參閱Unity中的Reinforcement
Learning(http://www.itdecent.cn/p/3f21686d6790)。
初始化Academy
初始化在Academy對象的生命周期中執(zhí)行一次。對于通常在標準Unity Start()或Awake()方法中執(zhí)行的任何邏輯,使用InitializeAcademy()方法。
注意:因為基礎Academy類實現了Awake()函數,所以不能實現自己的。由于Unity MonoBehaviour類的定義方式,實現您自己的Awake()函數會隱藏基類版本,而Unity會調用您的。同樣,不要在您的Academy子類中實現FixedUpdate()函數。
重置環(huán)境
在每次episode開始時,實現AcademyReset()函數以改變環(huán)境。例如,你可能需要將agent重置到其起始位置或將目標移動到隨機位置。在達到Academy Max Steps計數時重置環(huán)境。
當你重置環(huán)境時,請考慮應該改變的因素,以便將訓練推廣到不同的條件。例如,如果你正在訓練一個解決迷宮問題的阿根廷,那么您可能需要為每個訓練集更改迷宮本身。否則,代理人可能會學會解決一個特定的迷宮,而不是一般的迷宮。
控制環(huán)境
在任何agent更新之前,模擬的每一步都會調用AcademyStep()函數。使用此功能在每個步驟或episode之間來更新環(huán)境中的對象。例如,如果要以隨機間隔向環(huán)境中添加元素,可以將創(chuàng)建它們的邏輯放在AcademyStep()函數中。
Academy 屬性

- 最大步數
Max Steps:每次episode的總步數。 0對應于沒有最大步數的episode。一旦步計數器達到最大值,環(huán)境將重置。 - 配置
Configuration: 與渲染質量和引擎速度相對應的引擎級設置。- 寬度
Width: 環(huán)境窗口的寬度(以像素為單位)。 - 高度
Height: 環(huán)境窗口的寬度(以像素為單位)。 - 質量水平
Quality Level: 渲染環(huán)境質量。(越高越好) - 時間比例
Time Scale: 運行環(huán)境的速度。(更高更快) - 目標幀速率
Target Frame Rate: FPS引擎嘗試維護。
- 寬度
- 重置參數
Reset Parameters- 重置時環(huán)境中可更改的自定義參數列表。