始める無料で始める

DRL のトレーニングループ

エージェントが環境を繰り返し体験できるように、トレーニングループを構築します。

多くの DRL アルゴリズムに共通する基本構造は次のとおりです。

  1. エピソードをループする
  2. 各エピソード内でステップをループする
  3. 各ステップで、行動を選択し、損失を計算し、ネットワークを更新する

コードが動作するように、プレースホルダーの select_action()calculate_loss() 関数が用意されています。前の演習で定義した Networkoptimizer も利用できます。

この演習はコースの一部です

Pythonで学ぶDeep Reinforcement Learning

コースを見る

演習の手順

  • 外側のループ(エピソード単位)が 10 エピソード実行されるようにしてください。
  • 内側のループ(ステップ単位)は、そのエピソードが完了するまで実行されるようにしてください。
  • select_action() で選択した行動を、env 環境で実行します。
  • 内側のループの各反復の最後で、次のステップを始める前に状態を更新してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

env = gym.make("LunarLander-v2")
# Run ten episodes
for episode in ____:
    state, info = env.reset()
    done = False    
    # Run through steps until done
    while ____:
        action = select_action(network, state)        
        # Take the action
        next_state, reward, terminated, truncated, _ = ____
        done = terminated or truncated        
        loss = calculate_loss(network, state, action, next_state, reward, done)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()        
        # Update the state
        state = ____
    print(f"Episode {episode} complete.")
コードを編集して実行