首页 > 解决方案 > 如何使用 Pytorch 实现强化学习代理以在不同的时间步执行操作

问题描述

我想知道您将如何更改代理与环境交互的频率。查看以前的自定义环境和健身房环境,看起来代理与每个时间步长的环境交互。出于我的目的,我希望我的代理每集与环境交互一次。

它看起来TensorFlow有一个内置函数来适应代理与环境交互的频率。请参阅以下代码作为示例。

env = suite_gym.load('CartPole-v0')
tf_env = tf_py_environment.TFPyEnvironment(env)

time_step = tf_env.reset()
rewards = []
steps = []
num_episodes = 5

for _ in range(num_episodes):
  episode_reward = 0
  episode_steps = 0
  while not time_step.is_last():
    action = tf.random.uniform([1], 0, 2, dtype=tf.int32)
    time_step = tf_env.step(action)
    episode_steps += 1
    episode_reward += time_step.reward.numpy()
  rewards.append(episode_reward)
  steps.append(episode_steps)
  time_step = tf_env.reset()

num_steps = np.sum(steps)
avg_length = np.mean(steps)
avg_reward = np.mean(rewards)

print('num_episodes:', num_episodes, 'num_steps:', num_steps)
print('avg_length', avg_length, 'avg_reward:', avg_reward)

所以我想知道 PyTorch 是否有类似的功能?如果没有,我想我需要重做我的自定义环境以适应不同的时间步长?

标签: pythonpytorchreinforcement-learningopenai-gym

解决方案


推荐阅读