ComenzarEmpieza gratis

DRL bucle de entrenamiento

Para permitir que el agente experimente el entorno repetidamente, tienes que establecer un bucle de entrenamiento.

Muchos algoritmos de DRL tienen en común esta estructura central:

  1. Recorre los episodios
  2. Recorre en bucle los pasos de cada episodio
  3. En cada paso, elige una acción, calcula la pérdida y actualiza la red

Se te proporcionan las funciones select_action() y calculate_loss() que permiten ejecutar el código. También tienes a tu disposición las direcciones Network y optimizer definidas en el ejercicio anterior.

Este ejercicio forma parte del curso

Aprendizaje profundo por refuerzo en Python

Ver curso

Instrucciones de ejercicio

  • Asegúrate de que el bucle exterior (sobre episodios) se ejecuta durante diez episodios.
  • Asegúrate de que el bucle interno (sobrepasar los pasos) se ejecuta hasta que se complete el episodio.
  • Realiza la acción seleccionada por select_action() en el entorno env.
  • Al final de una iteración del bucle interno, actualiza el estado antes de iniciar el paso siguiente.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

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.")
Editar y ejecutar código