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.)
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.
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.
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
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`.
À 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 que
Trainerfonctionnent 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 dans
Trainer` et faire quelque chose à ce sujet.
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