我正在使用 3DBall 示例环境,但我得到了一些非常奇怪的结果,我不明白它们为什么会发生。到目前为止,我的代码只是一个 for range 循环,用于查看奖励并用随机值填充所需的输入。然而,当我这样做时,从未显示出负面奖励,并且随机不会有决策步骤,这是有道理的,但它不应该继续模拟直到有决策步骤吗?任何帮助将不胜感激,因为除了文档之外,几乎没有任何资源。
env = UnityEnvironment()
env.reset()
behavior_names = env.behavior_specs
for i in range(50):
arr = []
behavior_names = env.behavior_specs
for i in behavior_names:
print(i)
DecisionSteps = env.get_steps("3DBall?team=0")
print(DecisionSteps[0].reward,len(DecisionSteps[0].reward))
print(DecisionSteps[0].action_mask) #for some reason it returns action mask as false when Decisionsteps[0].reward is empty and is None when not
for i in range(len(DecisionSteps[0])):
arr.append([])
for b in range(2):
arr[-1].append(random.uniform(-10,10))
if(len(DecisionSteps[0])!= 0):
env.set_actions("3DBall?team=0",numpy.array(arr))
env.step()
else:
env.step()
env.close()
白板的微信
相关分类