[PYTHON] TF2RL: Erweiterte Lernbibliothek für TensorFlow2.x

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.)

1. Zuallererst

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.

2. Implementierter Algorithmus

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.

3. Wie installiere ich?

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

4. Verwendung

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.

5. Herausforderungen und Zukunft

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.

abschließend

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

TF2RL: Erweiterte Lernbibliothek für TensorFlow2.x
Stärkung des Lernens der dritten Zeile
<Für Anfänger> Python-Bibliothek <Für maschinelles Lernen>
[Stärkung des Lernens] DQN mit Ihrer eigenen Bibliothek
[Lernen stärken] Suche nach der besten Route
[Einführung] Stärkung des Lernens
Zukünftiges Verstärkungslernen_2
Zukünftiges Verstärkungslernen_1
Erweitertes Lernen 1 Python-Installation
Stärkung des Lernens 3 OpenAI-Installation
[Lernen stärken] Banditenaufgabe
Bibliothek für maschinelles Lernen dlib
Python + Unity Enhanced Learning (Lernen)
Zusammenfassung zum Lernen von RAPIDS
Bibliothek für maschinelles Lernen Shogun
Stärkung des Lernens 1 Einführungsausgabe
[Einführung in die Stärkung des Lernens] Stärkung des Lernens, um sich vorerst zu bewegen
Datensatz für maschinelles Lernen
Stärkung des Lernens 18 Colaboratory + Acrobat + ChainerRL
Japanische Vorverarbeitung für maschinelles Lernen
Verbessertes Lernen 7 Protokollieren Sie die Ausgabe von Lerndaten
Lernablauf für Python-Anfänger
Stärkung des Lernens 17 Colaboratory + CartPole + ChainerRL
Stärkung des Lernens 28 colaboratory + OpenAI + chainerRL
Python-Lernplan für KI-Lernen
Stärkung des Lernens 19 Colaboratory + Mountain_car + ChainerRL
Stärkung des Lernens 2 Installation von Chainerrl
[Lernen stärken] Tracking durch Multi-Agent
Stärkung des Lernens 6 First Chainer RL
Verbessertes Lernen ab Python
Stärkung des Lernens 20 Colaboratory + Pendulum + ChainerRL
Memorandum für mich lernen w
Verstärkungslernen 5 Versuchen Sie, CartPole zu programmieren?
Verstärkungslernen 9 ChainerRL Magic Remodeling
Deep Learning für die Bildung von Verbindungen?
Lernen stärken Lernen Sie von heute
Checkios Empfehlung zum Erlernen von Python
Stärkung des Lernens 4 CartPole erster Schritt
Tiefe Stärkung des Lernens 1 Einführung in die Stärkung des Lernens
Tiefes Lernen der Verstärkung 2 Implementierung des Lernens der Verstärkung
DeepMind Enhanced Learning Framework Acme
Verstärktes Lernen: Beschleunigen Sie die Wertiteration
[Lernen stärken] Umfrage zur Verwendung der Experience Replay-Bibliothek von DeepMind Reverb [Client Edition]
Ich habe mit ChainerRL Deep Enforcement Learning (Double DQN) ausprobiert
Anfänger möchten mit UE4 so etwas wie einen Rubic Cube erstellen und daraus eine Bibliothek für verbessertes Lernen # 4 machen
Anfänger möchten mit UE4 so etwas wie einen Rubic Cube erstellen und daraus eine Bibliothek für erweitertes Lernen # 5 machen
Anfänger möchten mit UE4 so etwas wie einen Rubic Cube erstellen und daraus eine Bibliothek für verbessertes Lernen # 6 machen