[PYTHON] Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 12 3 ~ 5

TOP PAGE

Überblick über die Erforschung von Monte-Carlo-Bäumen

Was macht die Funktion go () von mcts_player.py? image.png

mcts_player.py Nehmen Sie die folgenden Änderungen vor, bevor Sie das Programm tatsächlich ausführen.

Modellladeargument hinzugefügt

Behoben zu PolicyValueResnet (Blöcke = 5), da ein Fehler auftritt, wenn die Argumentblöcke nicht in PolicyValueResnet () eingegeben werden, das das Modell lädt. 5 ist die gleiche Anzahl von Blöcken wie beim Training dieses Modells.

pydlshogi/player/mcts_player.py


    def isready(self):
        #Modell laden
        if self.model is None:
            self.model = PolicyValueResnet(blocks=5)

Automatische Umschaltung von CPU / GPU

Lassen Sie die IP-Adresse bestimmen, welcher PC ausgeführt wird. Verwenden Sie das Flag gpu_en, um zu wechseln, ob eine GPU verwendet werden soll. Der Pfad der Modelldatei wird ebenfalls mit dem Flag env umgeschaltet.

pydlshogi/player/mcts_player.py


#Umgebungseinstellung
#-----------------------------
import socket
host = socket.gethostname()
#IP-Adresse abrufen
# google colab  :zufällig
# iMac          : xxxxxxxx
# Lenovo        : yyyyyyyy

# env
# 0: google colab
# 1: iMac (no GPU)
# 2: Lenovo (no GPU)

# gpu_en
# 0: disable
# 1: enable

if host == 'xxxxxxxx':
    env = 1
    gpu_en = 0
elif host == 'yyyyyyyy':
    env = 2
    gpu_en = 0
else:
    env = 0
    gpu_en = 1

#-----------------------------

Beim Import

pydlshogi/player/mcts_player.py


if gpu_en == 1:
    from chainer import cuda, Variable

def init(self):

pydlshogi/player/mcts_player.py


        #Modelldateipfad
        if env == 0:
            self.modelfile = '/content/drive/My Drive/・ ・ ・/python-dlshogi/model/model_policy_value_resnet'
        elif env == 1:
            self.modelfile = r'/Users/・ ・ ・/python-dlshogi/model/model_policy_value_resnet'
        elif env == 2:
            self.modelfile = r"C:\Users\・ ・ ・\python-dlshogi\model\model_policy_value_resnet"
        self.model = None #Modell-

def eval_node()

pydlshogi/player/mcts_player.py


        if gpu_en == 1:
            x = Variable(cuda.to_gpu(np.array(eval_features, dtype=np.float32)))
        elif gpu_en == 0:
            x = np.array(eval_features, dtype=np.float32)

        with chainer.no_backprop_mode():
            y1, y2 = self.model(x)

            if gpu_en == 1:
                logits = cuda.to_cpu(y1.data)[0]
                value = cuda.to_cpu(F.sigmoid(y2).data)[0]
            elif gpu_en == 0:
                logits = y1.data[0]
                value = F.sigmoid(y2).data[0]

def isready()

pydlshogi/player/mcts_player.py


        #Modell laden
        if self.model is None:
            self.model = PolicyValueResnet(blocks=5)
            if gpu_en == 1:
                self.model.to_gpu()

Test über die Kommandozeile

Ich habe das Programm zu Beginn ausgeführt. Infolgedessen wurden 7 6 Schritte 143 Mal und 2 6 Schritte 77 Mal besucht. Es sieht vorerst gut aus. image.png Ich könnte es auf Google Colab tun. image.png

move_count: Anzahl der Besuche an diesem Verschiebungsknoten nnrate: Voraussichtliche Wahrscheinlichkeit eines Richtliniennetzwerks win_rate: Durchschnittliche Gewinnrate (= Gesamtgewinnrate / Anzahl der Besuche) nps : node/time Zeit: Zeitaufwand für einen Durchgang () Knoten: Anzahl der Besuche des aktuellen Knotens (current_node.move_count) hashfull: Belegung der Arrays node_hash und uct_node. Gibt an, wie viele der 4096 Elemente verwendet wurden. Ein numerischer Wert, ausgedrückt als 1000, wenn 100% belegt sind. Punktzahl cp: Bewertungswert pv: Koordinaten verschieben

Die GPU ist doppelt so schnell wie die CPU

Aufgrund der obigen Ergebnisse betrug die für jede Ausführung erforderliche Zeit 3524 ms für die CPU und 2020 ms für die GPU. Daher beträgt das GPU / CPU-Geschwindigkeitsverhältnis 3524/2020 = 1,7. Es ist ungefähr doppelt so schnell.

Die Anzahl der Besuche (Knoten) des aktuellen Knotens entspricht 235 für GPU und CPU. Sie können einfach sehen, dass die Geschwindigkeit pro Besuch auf der GPU höher ist.

Auswirkung der Suchbeendigung

Für jede Suche wird eine Funktion namens interruption_check () verwendet, um zu bestimmen, ob die Suche in der Mitte beendet werden soll. Die Anzahl der Suchvorgänge ist auf 300 festgelegt. Wenn der beste Zug jedoch nicht überschritten werden kann, auch wenn alle verbleibenden Suchvorgänge für den nächstbesten Zug ausgeführt werden, wird die Suche beendet, auch wenn die Anzahl der Suchvorgänge 300 nicht erreicht hat. Da das obige Ergebnis Knoten 235 ist, ist ersichtlich, dass es nach 235 Mal beendet wurde.

Als Referenz habe ich go () kontinuierlich ausgeführt, um die Anzahl der Besuche am aktuellen Knoten zu zeichnen. Es ist ersichtlich, dass die Anzahl der Besuche des aktuellen Knotens nicht zunimmt, wenn die Häufigkeit, mit der go () ausgeführt wird, zunimmt. Wenn die Häufigkeit, mit der go () ausgeführt wird, zunimmt, nimmt auch die Anzahl der Besuche des untergeordneten Knotens zu, sodass die Suche möglicherweise früher beendet wird. image.png

Anzahl der Suchvorgänge

Ich habe versucht zu verstehen, wie sich die Anzahl der Besuche am aktuellen Knoten abhängig von der Anzahl der Suchvorgänge ändert. Wenn die Anzahl der Besuche auf 6000 oder mehr festgelegt ist, erhöht sich das Ergebnis nicht von 4057. Dies ist nur das Ergebnis am Anfang. Die Ergebnisse variieren je nach Situation. image.png image.png

Spiel

Spielvideo https://youtu.be/H0jD76R2PAM Selbst (Ama 1. Stufe) gegen Kapitel 12-5 KI Policy Network & Value Network & Monte Carlo Baumsuche. Es gibt keine Parallelisierung. Es war schwächer als ich es mir vorgestellt hatte, weil ich oft seltsame Bewegungen machte.

Letzte Karte image.png

Recommended Posts

Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 11
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 8
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 12 3
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 7
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 10 6-9
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 10
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 7 5-7
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 9
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 12 3
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 12 3
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 12 1-2
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 12 3
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 12 3 ~ 5
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 7 9
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 8 5-9
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 8 1-4
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 12 3
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 7 8
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 7 1-4
Deep Learning mit Shogi AI auf Mac und Google Colab
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 1-6
Lernen Sie mit Shogi AI Deep Learning auf Mac und Google Colab Verwenden Sie Google Colab
Tiefes Lernen auf Mac- und Google Colab-Wörtern, die mit Shogi AI gelernt wurden
Maschinelles Lernen mit Pytorch in Google Colab
Über das Lernen mit Google Colab
Schritte zum schnellen Erstellen einer umfassenden Lernumgebung auf einem Mac mit TensorFlow und OpenCV
Spielen Sie mit Turtle auf Google Colab
"Learning word2vec" und "Visualisierung mit Tensorboard" auf Colaboratory
Deep Learning von Grund auf neu Die Theorie und Implementierung des mit Python erlernten Deep Learning Kapitel 3
Installieren Sie Selenium auf Ihrem Mac und probieren Sie es mit Python aus
[AI] Deep Metric Learning
Vorhersagen von Tags durch Extrahieren von Musikfunktionen mit Deep Learning
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 14) Führen Sie das Programm in Kapitel 4 in Google Colaboratory aus
[Google Colab] So unterbrechen Sie das Lernen und setzen es dann fort
Erkennen Sie Ihren Chef mit Deep Learning und verbergen Sie den Bildschirm
Ein Fehler, der beim Erlernen von YOLO mit Google Colab aufgetreten ist
Einstellungen der Python3-basierten maschinellen Lernumgebung auf dem Mac (Koexistenz mit Python2)
HIKAKIN und Max Murai mit Live-Spielvideo und Deep Learning
Versuchen Sie es mit TensorFlow
Deep Kernel Learning mit Pyro
Versuchen Sie Deep Learning mit FPGA
Catalina auf Mac und Pyenv
Generiere Pokemon mit Deep Learning
Erstellen Sie mit Anaconda und PyCharm eine Python-Umgebung auf Ihrem Mac
Fehler und Lösung bei der Installation von Python3 mit Homebrew auf einem Mac (Catalina 10.15)
So führen Sie Jupyter und Spark auf einem Mac mit minimalen Einstellungen aus
Die stärkste Möglichkeit, MeCab und CaboCha mit Google Colab zu verwenden
[Lesehinweis] Praktisches maschinelles Lernen mit Scikit-Learn, Keras und TensorFlow Kapitel 1
Installieren Sie lp_solve unter Mac OSX und rufen Sie es mit Python auf.
Deep Learning / Deep Learning von Grund auf neu 2 Kapitel 4 Memo
Probieren Sie Deep Learning mit FPGA-Select-Gurken aus
Identifikation der Katzenrasse mit Deep Learning
Tensor Flow mit Anakonda auf Mac
MQTT auf Raspberry Pi und Mac
Deep Learning / Deep Learning von Null 2 Kapitel 5 Memo
Versuchen Sie es mit TensorFlow Part 2
Einführung von OpenCV in Mac mit Homebrew
Organisation von Plattformen für maschinelles Lernen und tiefes Lernen
Deep Learning / Deep Learning von Null 2 Kapitel 7 Memo