Table des matières
Configuration de Torchrl
Prérequis
Installation de Torchrl
Vérification
Composants Torchrl de clé
Environnements
transforme
Agents et politiques
Construire votre premier agent RL
Étape 1: Définissez l'environnement
Étape 2: Créez la politique
Étape 3: Former l'agent
Étape 4: Évaluez l'agent
Exploration des algorithmes prédéfinis
Visualiser et déboguer
meilleures pratiques
Conclusion
Maison Périphériques technologiques IA Début avec Torchrl pour l'apprentissage en renforcement profond

Début avec Torchrl pour l'apprentissage en renforcement profond

Mar 01, 2025 am 09:43 AM

Getting Started with TorchRL for Deep Reinforcement Learning

Le renforcement d'apprentissage (RL) s'attaque aux problèmes complexes, des véhicules autonomes aux modèles de langage sophistiqués. Les agents RL apprennent par l'apprentissage du renforcement de la rétroaction humaine (RLHF), adaptant leurs réponses en fonction de l'apport humain. Alors que des frameworks Python comme Keras et Tensorflow sont établis, Pytorch et Pytorch Lightning dominent les nouveaux projets.

Torchrl, une bibliothèque open source, simplifie le développement de RL avec Pytorch. Ce didacticiel montre la configuration de Torchrl, les composants de base et la construction d'un agent RL de base. Nous explorerons des algorithmes prédéfinis comme l'optimisation de la politique proximale (PPO) et les techniques de journalisation et de surveillance essentielles.

Configuration de Torchrl

Cette section vous guide dans l'installation et l'utilisation de Torchrl.

Prérequis

Avant d'installer Torchrl, assurez-vous d'avoir:

  • Pytorch: Fondation de Torchrl.
  • Gymnase: pour importer des environnements RL. Utilisez la version 0.29.1 (à partir de janvier 2025, les versions ultérieures ont des problèmes de compatibilité avec Torchrl - voir la page des discussions Git pertinentes).
  • pygame: pour simuler des environnements RL semblables à un jeu (par exemple, cartpole).
  • Tensordict: fournit un conteneur tenseur pour une manipulation efficace du tenseur.

Installez les conditions préalables:

!pip install torch tensordict gymnasium==0.29.1 pygame
Copier après la connexion
Copier après la connexion

Installation de Torchrl

Installez Torchrl à l'aide de PIP. Un environnement conda est recommandé pour les ordinateurs personnels ou les serveurs.

!pip install torchrl
Copier après la connexion
Copier après la connexion

Vérification

Testez votre installation en important torchrl dans un shell ou un cahier Python. Utilisez check_env_specs() pour vérifier la compatibilité de l'environnement (par exemple, cartpole):

import torchrl
from torchrl.envs import GymEnv
from torchrl.envs.utils import check_env_specs

check_env_specs(GymEnv("CartPole-v1"))
Copier après la connexion
Copier après la connexion

Une installation réussie s'affiche:

<code>[torchrl][INFO] check_env_specs succeeded!</code>
Copier après la connexion
Copier après la connexion

Composants Torchrl de clé

Avant la création d'agents, examinons les éléments principaux de Torchrl.

Environnements

Torchrl fournit une API cohérente pour divers environnements, enveloppez des fonctions spécifiques à l'environnement en emballages standard. Cela simplifie l'interaction:

  • Torchrl convertit les états, les actions et les récompenses en tenseurs pytorch.
  • Prétraitement / post-traitement (normalisation, mise à l'échelle, formatage) est facilement appliqué.

Créez un environnement de gymnase en utilisant GymEnv:

env = GymEnv("CartPole-v1")
Copier après la connexion
Copier après la connexion

transforme

Améliorer les environnements avec des modules complémentaires (par exemple, des compteurs de pas) en utilisant TransformedEnv:

from torchrl.envs import GymEnv, StepCounter, TransformedEnv
env = TransformedEnv(GymEnv("CartPole-v1"), StepCounter())
Copier après la connexion
Copier après la connexion

La normalisation est obtenue avec ObservationNorm:

from torchrl.envs import Compose
base_env = GymEnv('CartPole-v1', device=device) 
env = TransformedEnv( 
    base_env, 
    Compose(
        ObservationNorm(in_keys=["observation"]), 
        StepCounter()
    )
)
Copier après la connexion
Copier après la connexion

Les transformations multiples sont combinées en utilisant Compose.

Agents et politiques

L'agent utilise une politique pour sélectionner des actions en fonction de l'état de l'environnement, visant à maximiser les récompenses cumulatives.

Une stratégie aléatoire simple est créée en utilisant RandomPolicy:

!pip install torch tensordict gymnasium==0.29.1 pygame
Copier après la connexion
Copier après la connexion

Construire votre premier agent RL

Cette section démontre la construction d'un agent RL simple.

Importer les packages nécessaires:

!pip install torchrl
Copier après la connexion
Copier après la connexion

Étape 1: Définissez l'environnement

Nous utiliserons l'environnement de cartpole:

import torchrl
from torchrl.envs import GymEnv
from torchrl.envs.utils import check_env_specs

check_env_specs(GymEnv("CartPole-v1"))
Copier après la connexion
Copier après la connexion

Définir les hyperparamètres:

<code>[torchrl][INFO] check_env_specs succeeded!</code>
Copier après la connexion
Copier après la connexion

Étape 2: Créez la politique

Définir une politique de réseau neuronal simple:

env = GymEnv("CartPole-v1")
Copier après la connexion
Copier après la connexion

Étape 3: Former l'agent

Créer un collecteur de données et un tampon de relecture:

from torchrl.envs import GymEnv, StepCounter, TransformedEnv
env = TransformedEnv(GymEnv("CartPole-v1"), StepCounter())
Copier après la connexion
Copier après la connexion

Définir les modules de formation:

from torchrl.envs import Compose
base_env = GymEnv('CartPole-v1', device=device) 
env = TransformedEnv( 
    base_env, 
    Compose(
        ObservationNorm(in_keys=["observation"]), 
        StepCounter()
    )
)
Copier après la connexion
Copier après la connexion

Implémentez la boucle de formation (simplifiée pour la concision):

import torchrl
import torch
from tensordict import TensorDict
from torchrl.data.tensor_specs import Bounded

action_spec = Bounded(-torch.ones(1), torch.ones(1))
actor = torchrl.envs.utils.RandomPolicy(action_spec=action_spec)
td = actor(TensorDict({}, batch_size=[]))
print(td.get("action"))
Copier après la connexion

Étape 4: Évaluez l'agent

Ajouter une évaluation et une journalisation à la boucle de formation (simplifiée):

import time
import matplotlib.pyplot as plt
from torchrl.envs import GymEnv, StepCounter, TransformedEnv
from tensordict.nn import TensorDictModule as TensorDict, TensorDictSequential as Seq
from torchrl.modules import EGreedyModule, MLP, QValueModule
from torchrl.objectives import DQNLoss, SoftUpdate
from torchrl.collectors import SyncDataCollector
from torchrl.data import LazyTensorStorage, ReplayBuffer
from torch.optim import Adam
from torchrl._utils import logger as torchrl_logger
Copier après la connexion

Imprimer le temps de formation et les résultats de l'intrigue:

env = TransformedEnv(GymEnv("CartPole-v1"), StepCounter())
torch.manual_seed(0)
env.set_seed(0)
Copier après la connexion

(l'implémentation complète du DQN est disponible dans le manuel de données référencé.)

Exploration des algorithmes prédéfinis

Torchrl propose des algorithmes pré-construits (DQN, DDPG, SAC, PPO, etc.). Cette section démontre l'utilisation de PPO.

Importer les modules nécessaires:

INIT_RAND_STEPS = 5000
FRAMES_PER_BATCH = 100
OPTIM_STEPS = 10
EPS_0 = 0.5
BUFFER_LEN = 100_000
ALPHA = 0.05
TARGET_UPDATE_EPS = 0.95
REPLAY_BUFFER_SAMPLE = 128
LOG_EVERY = 1000
MLP_SIZE = 64
Copier après la connexion

Définir les hyperparamètres:

value_mlp = MLP(out_features=env.action_spec.shape[-1], num_cells=[MLP_SIZE, MLP_SIZE])
value_net = TensorDict(value_mlp, in_keys=["observation"], out_keys=["action_value"])
policy = Seq(value_net, QValueModule(spec=env.action_spec))

exploration_module = EGreedyModule(
    env.action_spec, annealing_num_steps=BUFFER_LEN, eps_init=EPS_0
)
policy_explore = Seq(policy, exploration_module)
Copier après la connexion

(L'implémentation de PPO restante, y compris les définitions de réseau, la collecte de données, la fonction de perte, l'optimisation et la boucle de formation, suit une structure similaire à la réponse originale mais est omise ici par concision. Reportez-vous à la réponse d'origine pour le code complet.)

Visualiser et déboguer

Surveiller les progrès de la formation à l'aide de Tensorboard:

collector = SyncDataCollector(
    env,
    policy_explore,
    frames_per_batch=FRAMES_PER_BATCH,
    total_frames=-1,
    init_random_frames=INIT_RAND_STEPS,
)
rb = ReplayBuffer(storage=LazyTensorStorage(BUFFER_LEN))
Copier après la connexion

Visualisez avec: tensorboard --logdir="training_logs"

Le débogage consiste à vérifier les spécifications de l'environnement:

loss = DQNLoss(value_network=policy, action_space=env.action_spec, delay_value=True)
optim = Adam(loss.parameters(), lr=ALPHA)
updater = SoftUpdate(loss, eps=TARGET_UPDATE_EPS)
Copier après la connexion

Échantillons d'observations et d'actions:

total_count = 0
total_episodes = 0
t0 = time.time()
success_steps = []
for i, data in enumerate(collector):
    rb.extend(data)
    # ... (training steps, similar to the original response) ...
Copier après la connexion

visualiser les performances de l'agent en rendant une vidéo (nécessite torchvision et av):

    # ... (training steps) ...
    if total_count > 0 and total_count % LOG_EVERY == 0:
        torchrl_logger.info(f"Successful steps: {max_length}, episodes: {total_episodes}")
    if max_length > 475:
        print("TRAINING COMPLETE")
        break
Copier après la connexion

meilleures pratiques

  • Commencez par des environnements simples (comme Cartpole).
  • Expérimentez avec des hyperparamètres (recherche de grille, recherche aléatoire, outils automatisés).
  • Tirez parti des algorithmes pré-construits chaque fois que possible.

Conclusion

Ce tutoriel a fourni une introduction complète à Torchrl, présentant ses capacités via des exemples DQN et PPO. Expérimentez avec différents environnements et algorithmes pour améliorer encore vos compétences RL. Les ressources référencées offrent des opportunités d'apprentissage supplémentaires.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Meilleurs générateurs d'art AI (gratuit & amp; payé) pour des projets créatifs Meilleurs générateurs d'art AI (gratuit & amp; payé) pour des projets créatifs Apr 02, 2025 pm 06:10 PM

L'article passe en revue les meilleurs générateurs d'art AI, discutant de leurs fonctionnalités, de leur aptitude aux projets créatifs et de la valeur. Il met en évidence MidJourney comme la meilleure valeur pour les professionnels et recommande Dall-E 2 pour un art personnalisable de haute qualité.

Début avec Meta Llama 3.2 - Analytics Vidhya Début avec Meta Llama 3.2 - Analytics Vidhya Apr 11, 2025 pm 12:04 PM

META'S LLAMA 3.2: un bond en avant dans l'IA multimodal et mobile Meta a récemment dévoilé Llama 3.2, une progression importante de l'IA avec de puissantes capacités de vision et des modèles de texte légers optimisés pour les appareils mobiles. S'appuyer sur le succès o

Meilleurs chatbots AI comparés (Chatgpt, Gemini, Claude & amp; plus) Meilleurs chatbots AI comparés (Chatgpt, Gemini, Claude & amp; plus) Apr 02, 2025 pm 06:09 PM

L'article compare les meilleurs chatbots d'IA comme Chatgpt, Gemini et Claude, en se concentrant sur leurs fonctionnalités uniques, leurs options de personnalisation et leurs performances dans le traitement et la fiabilité du langage naturel.

Assistants d'écriture de l'IA pour augmenter votre création de contenu Assistants d'écriture de l'IA pour augmenter votre création de contenu Apr 02, 2025 pm 06:11 PM

L'article traite des meilleurs assistants d'écriture d'IA comme Grammarly, Jasper, Copy.ai, WireSonic et Rytr, en se concentrant sur leurs fonctionnalités uniques pour la création de contenu. Il soutient que Jasper excelle dans l'optimisation du référencement, tandis que les outils d'IA aident à maintenir le ton

Vendre une stratégie d'IA aux employés: le manifeste du PDG de Shopify Vendre une stratégie d'IA aux employés: le manifeste du PDG de Shopify Apr 10, 2025 am 11:19 AM

La récente note du PDG de Shopify Tobi Lütke déclare hardiment la maîtrise de l'IA une attente fondamentale pour chaque employé, marquant un changement culturel important au sein de l'entreprise. Ce n'est pas une tendance éphémère; C'est un nouveau paradigme opérationnel intégré à P

AV Bytes: Meta & # 039; S Llama 3.2, Google's Gemini 1.5, et plus AV Bytes: Meta & # 039; S Llama 3.2, Google's Gemini 1.5, et plus Apr 11, 2025 pm 12:01 PM

Le paysage de l'IA de cette semaine: un tourbillon de progrès, de considérations éthiques et de débats réglementaires. Les principaux acteurs comme Openai, Google, Meta et Microsoft ont déclenché un torrent de mises à jour, des nouveaux modèles révolutionnaires aux changements cruciaux de LE

10 extensions de codage générateur AI dans le code vs que vous devez explorer 10 extensions de codage générateur AI dans le code vs que vous devez explorer Apr 13, 2025 am 01:14 AM

Hé là, codant ninja! Quelles tâches liées au codage avez-vous prévues pour la journée? Avant de plonger plus loin dans ce blog, je veux que vous réfléchissiez à tous vos malheurs liés au codage - les énumérez. Fait? - Let & # 8217

Choisir le meilleur générateur de voix d'IA: les meilleures options examinées Choisir le meilleur générateur de voix d'IA: les meilleures options examinées Apr 02, 2025 pm 06:12 PM

L'article examine les meilleurs générateurs de voix d'IA comme Google Cloud, Amazon Polly, Microsoft Azure, IBM Watson et Descript, en se concentrant sur leurs fonctionnalités, leur qualité vocale et leur aptitude à différents besoins.

See all articles