[PYTHON] TF2RL: bibliothèque d'apprentissage améliorée pour TensorFlow2.x

Un article d'introduction sur la bibliothèque TF2RL pour un apprentissage amélioré développé par un ami @ohtake_i. J'aide également (réponse aux problèmes, création de relations publiques). (Il n'est pas exagéré de dire que ma bibliothèque de tampons de relecture cpprb a également été créée pour TF2RL.)

1.Tout d'abord

Comme son nom l'indique, TensorFlow est une bibliothèque pour l'apprentissage amélioré écrite en 2 séries. La série TensorFlow 1 comportait des parties difficiles d'accès, telles que Session et placeholder, mais comme il est assez facile d'écrire dans la série TensorFlow 2," TensorFlow est difficile à écrire, donc [PyTorch](https :: //pytorch.org/) Je veux que les gens qui pensent "choix" le voient.

2. Algorithme mis en œuvre

Le dernier statut peut être trouvé dans le GitHub README. Depuis le 26 août 2020, les algorithmes suivants ont été mis en œuvre. (Nous prévoyons de l'augmenter de temps en temps.)

Certains algorithmes prennent également en charge ApeX et GAE.

3. Comment installer

La version de TensorFlow devrait prendre en charge de la version 2.0 à la dernière version 2.3. En raison de la version de TensorFlow, TensorFlow n'est pas installé en tant que bibliothèque dépendante par défaut, il devient donc pip ou conda. Veuillez l'installer en tant que / dernier /). (Bien sûr, la version GPU est également OK. Depuis la version 2.1, le binaire de PyPI ne fait plus la distinction entre la version CPU / GPU, donc je pense que les chances de s'en inquiéter diminueront à l'avenir. Mais)

Pour pip


pip install tensorflow

Pour conda


conda install -c anaconda tensorflow

TF2RL est Public sur PyPI, il peut donc être installé avec pip.

pip install tf2rl

4. Comment utiliser

Voici un exemple de code utilisant DDPG décrit dans README. Construisez un agent pour l'algorithme et transmettez-le au Trainer avec l'environnement ( gym.Env) pour apprendre selon l'algorithme.

Exemple de pendule dans DDPG


import gym
from tf2rl.algos.ddpg import DDPG
from tf2rl.experiments.trainer import Trainer


parser = Trainer.get_argument()
parser = DDPG.get_argument(parser)
args = parser.parse_args()

env = gym.make("Pendulum-v0")
test_env = gym.make("Pendulum-v0")
policy = DDPG(
    state_shape=env.observation_space.shape,
    action_dim=env.action_space.high.size,
    gpu=-1,  # Run on CPU. If you want to run on GPU, specify GPU number
    memory_capacity=10000,
    max_action=env.action_space.high[0],
    batch_size=32,
    n_warmup=500)
trainer = Trainer(policy, env, args, test_env=test_env)
trainer()

Vous pouvez vérifier les résultats d'apprentissage sur le TensorBoard.

tensorboard --logdir results

Certains paramètres peuvent être passés en tant qu'options de ligne de commande pendant l'exécution du programme via ʻargparse`.

5. Défis et avenir

À l'origine, il était censé exécuter des scripts et des commandes, donc Trainer est étroitement lié à ʻargparseet fonctionne bien dans les environnements de notebook tels que [Google Colab](https://colab.research.google.com/). Ne peut pas être exécuté. (Étant donné que les agents autres queTrainerfonctionnent sans aucun problème, il est possible d'écrire une boucle pour n'utiliser que le modèle et apprendre en grattant.) Je voudrais mettre un scalpel dansTrainer` et faire quelque chose à ce sujet.

en conclusion

Pour une raison quelconque, il semble que de nombreuses personnes qui semblent être chinoises donnent activement des commentaires. Je pense que le nombre d'utilisateurs japonais augmentera, donc je serais très heureux si vous pouviez me faire part de vos commentaires (problème, PR) après l'avoir utilisé.

Recommended Posts

TF2RL: bibliothèque d'apprentissage améliorée pour TensorFlow2.x
Renforcer l'apprentissage de la troisième ligne
<Pour les débutants> bibliothèque python <Pour l'apprentissage automatique>
[Renforcer l'apprentissage] DQN avec votre propre bibliothèque
[Renforcer l'apprentissage] Rechercher le meilleur itinéraire
[Introduction] Renforcer l'apprentissage
Apprentissage par renforcement futur_2
Apprentissage par renforcement futur_1
Apprentissage amélioré 1 installation de Python
Renforcer l'apprentissage 3 Installation d'OpenAI
[Renforcer l'apprentissage] Tâche de bandit
Bibliothèque d'apprentissage automatique dlib
Apprentissage amélioré Python + Unity (apprentissage)
Résumé de l'apprentissage RAPIDS
Bibliothèque d'apprentissage automatique Shogun
Renforcer l'apprentissage 1 édition introductive
[Apprentissage de renforcement d'introduction] Renforcement de l'apprentissage pour bouger pour le moment
Ensemble de données pour l'apprentissage automatique
Renforcer l'apprentissage 18 Colaboratory + Acrobat + ChainerRL
Prétraitement japonais pour l'apprentissage automatique
Apprentissage amélioré 7 Sortie du journal des données d'apprentissage
Flux d'apprentissage pour les débutants en Python
Renforcer l'apprentissage 17 Colaboratory + CartPole + ChainerRL
Renforcer l'apprentissage 28 collaboratif + OpenAI + chainerRL
Plan d'apprentissage Python pour l'apprentissage de l'IA
Renforcer l'apprentissage 19 Colaboratory + Mountain_car + ChainerRL
Renforcement de l'apprentissage 2 Installation de chainerrl
[Renforcer l'apprentissage] Suivi par multi-agents
Renforcer l'apprentissage 6 First Chainer RL
Apprentissage amélioré à partir de Python
Renforcer l'apprentissage 20 Colaboratoire + Pendule + ChainerRL
Mémorandum d'apprentissage pour moi w
Apprentissage par renforcement 5 Essayez de programmer CartPole?
Apprentissage par renforcement 9 Remodelage magique ChainerRL
Apprentissage profond pour la formation composée?
Renforcer l'apprentissage Apprendre d'aujourd'hui
La recommandation de Checkio pour apprendre Python
Renforcer l'apprentissage 4 CartPole première étape
Apprentissage par renforcement profond 1 Introduction au renforcement de l'apprentissage
Apprentissage par renforcement profond 2 Mise en œuvre de l'apprentissage par renforcement
DeepMind Enhanced Learning Framework Acme
Apprentissage par renforcement: accélérer l'itération de la valeur
[Renforcer l'apprentissage] Enquête sur l'utilisation de la bibliothèque Experience Replay de DeepMind Reverb [Client Edition]
J'ai essayé l'apprentissage par renforcement profond (Double DQN) avec ChainerRL
Les débutants veulent créer quelque chose comme un cube rubic avec UE4 et en faire une bibliothèque pour un apprentissage amélioré # 4
Les débutants veulent créer quelque chose comme un cube rubic avec UE4 et en faire une bibliothèque pour un apprentissage amélioré # 5
Les débutants veulent créer quelque chose comme un cube rubic avec UE4 et en faire une bibliothèque pour un apprentissage amélioré # 6