Ein Einführungsartikel über die Bibliothek TF2RL für erweitertes Lernen, entwickelt von einem Freund @ohtake_i. Ich helfe auch (Issue Response / PR-Erstellung). (Es ist keine Übertreibung zu sagen, dass meine Wiedergabepufferbibliothek cpprb auch für TF2RL erstellt wurde.)
Wie der Name schon sagt, ist TensorFlow eine Bibliothek für erweitertes Lernen, die in zwei Serien geschrieben wurde. Die TensorFlow 1-Serie hatte einige Teile, die schwer zu erreichen waren, wie z. B. "Session" und "Platzhalter". Da es jedoch recht einfach ist, in der TensorFlow 2-Serie zu schreiben, ist "TensorFlow schwer zu schreiben, daher [PyTorch](https :: //pytorch.org/) Ich möchte, dass Leute, die "Wahl" denken, es sehen.
Den neuesten Status finden Sie im GitHub README. Ab dem 26. August 2020 wurden die folgenden Algorithmen implementiert. (Wir planen, es von Zeit zu Zeit zu erhöhen.)
Einige Algorithmen unterstützen auch ApeX und GAE.
Die Version von TensorFlow sollte von 2.0 bis 2.3 unterstützen. Aufgrund der Version von TensorFlow wird TensorFlow standardmäßig nicht als abhängige Bibliothek installiert, sodass es zu pip oder conda wird. Bitte installieren Sie es als / latest /). (Natürlich ist auch die GPU-Version in Ordnung. Seit 2.1 unterscheidet die Binärdatei von PyPI nicht mehr zwischen der CPU / GPU-Version, daher denke ich, dass die Wahrscheinlichkeit, sich darüber Sorgen zu machen, in Zukunft sinken wird. Aber)
Für pip
pip install tensorflow
Für conda
conda install -c anaconda tensorflow
TF2RL ist Public auf PyPI, kann also mit pip installiert werden.
pip install tf2rl
Das folgende Codebeispiel verwendet DDPG, beschrieben in README.
Erstellen Sie einen Agenten für den Algorithmus und übergeben Sie ihn zusammen mit der Umgebung (gym.Env
) an den Trainer
, um gemäß dem Algorithmus zu lernen.
Beispiel eines Pendels in 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()
Sie können die Lernergebnisse auf dem TensorBoard überprüfen.
tensorboard --logdir results
Einige Parameter können während der Programmausführung über argparse
als Befehlszeilenoptionen übergeben werden.
Ursprünglich sollte es Skripte und Befehle ausführen, daher wird "Trainer" stark mit "argparse" kombiniert und funktioniert gut in Notebook-Umgebungen wie Google Colab. Kann nicht ausgeführt werden. (Da andere Agenten als "Trainer" problemlos arbeiten, ist es möglich, eine Schleife zu schreiben, in der nur das Modell verwendet und durch Kratzen gelernt wird.) Ich möchte ein Skalpell in "Trainer" stecken und etwas dagegen tun.
Aus irgendeinem Grund scheint es viele Menschen zu geben, die Chinesen zu sein scheinen und aktiv Feedback geben. Ich denke, dass die Anzahl der japanischen Benutzer zunehmen wird, daher würde ich mich sehr freuen, wenn Sie mir nach der Verwendung Feedback (Problem, PR) geben könnten.
Recommended Posts