跳至内容

AAbstractTrainer

class AAbstractTrainer : public AController

一个抽象类,用于表示使用强化学习训练 NPC 的控制器。

注意:此类旨在通过 C++ 或 Blueprint 进行子类化,以实现 NPC 的特定训练逻辑。

注意:此类旨在与 AbstractEnvironment 类结合使用。

依赖项

此类型依赖于

继承自: public AController

子类: ABlueprintTrainer

公共接口

构造函数

AAbstractTrainer

AAbstractTrainer()

构造一个新的 AAbstractTrainer 对象。

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 50 行, 第 1 列)

实现: Schola/Source/Schola/Private/Training/AbstractTrainer.cpp (第 55-58 行)

公共函数

PawnPendingDestroy

virtual void PawnPendingDestroy(APawn *inPawn) override

参数

名称类型默认
inPawnAPawn *

属性: virtual

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 45 行, 第 14 列)

实现: Schola/Source/Schola/Private/Training/AbstractTrainer.cpp (第 29-46 行)

Initialize

bool Initialize(int EnvId, int AgentId, APawn *TargetPawn)

在游戏开始后初始化此代理。

参数

  • EnvId (int) – [输入] 此代理所属环境的 ID。
  • AgentId (int) – [输入] 此代理在环境中的 ID。
  • TargetPawn (APawn *) – [输入] 此 Trainer 将管理的 Class 的 Pawn。可以是 CDO 或场景中的 pawn。

返回: bool

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 84 行, 第 6 列)

实现: Schola/Source/Schola/Private/Training/AbstractTrainer.cpp (第 60-119 行)

ComputeReward

inline virtual float ComputeReward()

从代理的直接环境中收集奖励。

返回:一个 float,表示代理的奖励

注意:此函数必须由子类实现。

返回值: float

属性: inline, virtual

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 91 行, 第 15 列)

ComputeStatus

inline virtual EAgentTrainingStatus ComputeStatus()

检查代理是否处于终止状态。

返回:代理的状态,用于指示它是否仍在运行,或停止的原因。

注意:此函数必须由子类实现。

返回: EAgentTrainingStatus

属性: inline, virtual

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 97 行, 第 30 列)

GetInfo

inline virtual void GetInfo(TMap<FString, FString> &Info)

获取代理的 Info 输出。

参数

  • Info (TMap<FString, FString> &) – [输出] 一个映射,表示关于环境的非观察细节。

属性: inline, virtual

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 103 行, 第 14 列)

GetTrainingStatus

EAgentTrainingStatus GetTrainingStatus()

获取最后计算的训练状态。

返回:最后计算的训练状态。

返回: EAgentTrainingStatus

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 109 行, 第 22 列)

实现: Schola/Source/Schola/Private/Training/AbstractTrainer.cpp (第 184-187 行)

GetTrainingMsgStatus

ETrainingMsgStatus GetTrainingMsgStatus()

获取代理是否已完成,以及是否已发送了表明其已完成的最终状态更新。

返回:一个 enum,用于跟踪环境在结束时是否发送了最终状态更新。

返回: ETrainingMsgStatus

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 115 行, 第 20 列)

SetTrainingStatus

void SetTrainingStatus(EAgentTrainingStatus NewStatus)

设置代理的训练状态。

参数

  • NewStatus (EAgentTrainingStatus) – [输入] 要设置的新状态

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 121 行, 第 6 列)

实现: Schola/Source/Schola/Private/Training/AbstractTrainer.cpp (第 178-182 行)

SetTrainingMsgStatus

void SetTrainingMsgStatus(ETrainingMsgStatus NewStatus)

设置代理的训练消息状态。

参数

  • NewStatus (ETrainingMsgStatus) – [输入] 要设置的新状态

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 127 行, 第 6 列)

IsDone

bool IsDone() const const

此代理是否需要重置(截断或完成)

返回:如果代理需要重置,则为 true

返回: bool

属性: const

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 134 行, 第 6 列)

实现: Schola/Source/Schola/Private/Training/AbstractTrainer.cpp (第 194-197 行)

Reset

void Reset()

重置代理。

在重置过程中收集环境的初始观察。

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 140 行, 第 6 列)

实现: Schola/Source/Schola/Private/Training/AbstractTrainer.cpp (第 165-176 行)

ResetTrainer

inline virtual void ResetTrainer()

重置此 Trainer 的任何每集属性。

注意:此函数必须由子类实现。

属性: inline, virtual

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 146 行, 第 14 列)

IncrementStep

inline void IncrementStep()

递增当前集的步数计数。

这用于确定何时从大脑请求新动作。

属性: inline

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 151 行, 第 6 列)

ResetStep

inline void ResetStep()

将步数计数重置为 0。

这用于确定何时从大脑请求新动作。

属性: inline

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 156 行, 第 6 列)

GetStep

inline int GetStep() const const

获取代理在当前集中的步数。

返回: int

属性: const, inline

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 162 行, 第 5 列)

SetStep

inline void SetStep(int InStep)

参数

名称类型默认
InStepint

属性: inline

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 165 行, 第 6 列)

IsDecisionStep

virtual bool IsDecisionStep(int StepToCheck)

检查特定步数是否需要大脑决策。

返回:如果代理应该请求决策,则为 true

参数

  • StepToCheck (int) – 要检查的时间步

返回: bool

属性: virtual

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 172 行, 第 14 列)

实现: Schola/Source/Schola/Private/Training/AbstractTrainer.cpp (第 204-207 行)

IsDecisionStep

virtual bool IsDecisionStep()

如果当前步是决策步,由步频定义。

返回:如果当前步是决策步,则为 true

返回: bool

属性: virtual

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 178 行, 第 14 列)

实现: Schola/Source/Schola/Private/Training/AbstractTrainer.cpp (第 209-212 行)

IsActionStep

virtual bool IsActionStep()

检查大脑是否有动作,并且是动作步。

返回:如果代理在此步应采取行动,则为 true

返回: bool

属性: virtual

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 184 行, 第 14 列)

实现: Schola/Source/Schola/Private/Training/AbstractTrainer.cpp (第 199-202 行)

Act

void Act(const FAction &Action)

代理在采取动作之前从大脑检索动作。

参数

  • Action (const FAction &) – [输入] 要采取的动作

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 190 行, 第 6 列)

实现: Schola/Source/Schola/Private/Training/AbstractTrainer.cpp (第 158-163 行)

Think

FTrainerState * Think()

更新代理的状态。

这会检查代理是否完成、其奖励应是多少,并在请求决策前收集任何观察。

返回:更新后的代理状态

返回: FTrainerState &#42;

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 196 行, 第 15 列)

实现: Schola/Source/Schola/Private/Training/AbstractTrainer.cpp (第 121-156 行)

IsRunning

bool IsRunning()

与大脑检查是否可以执行操作,并相应地设置代理状态。

返回:更新后的代理状态

返回: bool

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 202 行, 第 6 列)

实现: Schola/Source/Schola/Private/Training/AbstractTrainer.cpp (第 189-192 行)

OnCompletion

inline virtual void OnCompletion()

代理完成其回合后的回调函数。

属性: inline, virtual

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 207 行, 第 14 列)

HasAgentClass

inline bool HasAgentClass() const const

返回: bool

属性: const, inline

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 209 行, 第 6 列)

公共成员

FTrainerState State

FTrainerState State = = FTrainerState()

代理的当前状态。

内存由 GymConnector 内部的 SharedState 管理

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 53 行, 第 15 列)

UInteractionManager * InteractionManager

UInteractionManager * InteractionManager = = CreateDefaultSubobject<UInteractionManager>(TEXT("InteractionManager"))

用于管理代理和环境交互的对象。

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 57 行, 第 21 列)

TArray<UAbstractObserver *> Observers

TArray<UAbstractObserver *> Observers

收集代理观察值的观察值列表。

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 61 行, 第 8 列)

TArray<UActuator *> Actuators

TArray<UActuator *> Actuators

执行代理动作的执行器列表。

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 65 行, 第 8 列)

FTrainerConfiguration TrainerConfiguration

FTrainerConfiguration TrainerConfiguration

Trainer 的配置。

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 69 行, 第 23 列)

FTrainerDefinition TrainerDefn

FTrainerDefinition TrainerDefn

代理的定义。

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 73 行, 第 20 列)

TSubclassOf<APawn> AgentClass

TSubclassOf<APawn> AgentClass

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 76 行, 第 13 列)

Protected Interface

受保护函数

OnPossess

void OnPossess(APawn *InPawn) override

参数

名称类型默认
InPawnAPawn *

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 39 行, 第 6 列)

实现: Schola/Source/Schola/Private/Training/AbstractTrainer.cpp (第 9-26 行)

OnUnPossess

void OnUnPossess() override

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 41 行, 第 6 列)

实现: Schola/Source/Schola/Private/Training/AbstractTrainer.cpp (第 48-53 行)

使用于

此类型由以下部分使用

来源: Schola/Source/Schola/Public/Training/AbstractTrainer.h (第 32 行, 第 1 列)

© . This site is unofficial and not affiliated with AMD.