[PYTHON] Deep Learning avec Shogi AI sur Mac et Google Colab Chapitre 7 5-7

TOP PAGE

7.5~7.7 read_kifu.py read_kifu() Argument: un fichier texte qui répertorie les chemins du fichier de partition Sortie: ("Diagramme de phase", "Déplacer", "Victoire / Perte") est calculé pour chaque phase, une phase est ajoutée à la liste comme un élément, et lorsque tout le score est lu, il est généré sous forme d'une liste. Les données pour une phase se composent des cinq éléments suivants. -piece_bb: 15 éléments -occupé: 2 éléments -pieces_in_hand: 2 éléments -move_label: 1 élément -win: 1 élément Le résultat final est [([15 éléments], [2 éléments], [2 éléments], [1 élément], [1 élément]), (même ensemble), ... est le nombre d'étapes x le nombre de jeux]

python-dlshogi\pydlshogi\read_kifu.py


#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import shogi
import shogi.CSA
import copy

from pydlshogi.features import *

from pydlshogi.common import *  ##################test


# read kifu
def read_kifu(kifu_list_file):
    i = 0
    positions = []
    with open(kifu_list_file, 'r') as f:
        for line in f.readlines():
            filepath = line.rstrip('\r\n')
            i += 1
            print(i)
            #Attribuez les données de score à la variable kifu.
            #Les données de score sont un dictionnaire avec quatre clés: noms, sfen, coups et victoire.
            #Ce dictionnaire est inclus dans la liste en tant qu'élément.[0]Sortez uniquement le dictionnaire avec.
            kifu = shogi.CSA.Parser.parse_file(filepath)[0]
            win_color = shogi.BLACK if kifu['win'] == 'b' else shogi.WHITE
            board = shogi.Board()
            for move in kifu['moves']:
                # ■board:print(board)Vous pouvez afficher le tableau en deux dimensions avec.
                # ■piece_bb: un tableau de 15 éléments. Chaque élément indique la disposition de chaque pièce. 0:Vierge, 1:Ayumu, 2:Encens ...
                #carte de bit. La carte de bits est la suivante.
                #Chaque élément a 81 chiffres (=C'est un affichage décimal d'un nombre binaire (c'est-à-dire une carte de bits) de 81 carrés).
                #Imprimez si vous souhaitez afficher 81 chiffres binaires('{:0=81b}'.format(Valeur décimale))Peut être fait avec.
                #■ occupé: un tableau de deux éléments. Chaque élément est la position de la pièce occupée par les première et seconde mains. carte de bit.
                # ■pieces_in_hand: Un tableau de deux éléments. Quelle pièce est la première et la seconde pour chaque élément(=key)Combien(=value)Un type de dictionnaire qui indique si vous l'avez.
                if board.turn == shogi.BLACK:
                    piece_bb = copy.deepcopy(board.piece_bb)
                    occupied = copy.deepcopy((board.occupied[shogi.BLACK], board.occupied[shogi.WHITE]))
                    pieces_in_hand = copy.deepcopy((board.pieces_in_hand[shogi.BLACK], board.pieces_in_hand[shogi.WHITE]))
                else:
                    piece_bb = [bb_rotate_180(bb) for bb in board.piece_bb]
                    occupied = (bb_rotate_180(board.occupied[shogi.WHITE]), bb_rotate_180(board.occupied[shogi.BLACK]))
                    pieces_in_hand = copy.deepcopy((board.pieces_in_hand[shogi.WHITE], board.pieces_in_hand[shogi.BLACK]))


                # move label
                i_move = shogi.Move.from_usi(move) #Créer une instance de la classe Move avec la variable move comme argument
                move_label = make_output_label(i_move, board.turn)
                #■ Déplacer la classe
                #   from_variable carrée: valeur de la source de mouvement lorsque la surface de la planche est représentée par une valeur numérique comprise entre 0 et 80.
                #Le quotient divisé par 9 est la coordonnée y et le reste est la coordonnée x. La coordonnée xy est 0 origine.
                #   to_variable carrée: comme ci-dessus (destination).
                #
                #coordonnée x
                #   0   1   2   3   4   5   6   7   8
                #
                #0 1 2 3 4 5 6 7 8 0 coordonnées y
                #   9   10  11  12  13  14  15  16  17      1
                #   18  19  20  21  22  23  24  25  26      2
                #   27  28  29  30  31  32  33  34  35      3
                #   36  37  38  39  40  41  42  43  44      4
                #   45  46  47  48  49  50  51  52  53      5
                #   54  55  56  57  58  59  60  61  62      6
                #   63  64  65  66  67  68  69  70  71      7
                #   72  73  74  75  76  77  78  79  80      8
                #
                # print(board)
                #
                # try:
                #     y_from, x_from = divmod(s.from_square, 9)
                #     y_to, x_to = divmod(s.to_square, 9)
                #     print('from:',x_from, y_from)
                #     print('to  :',x_to, y_to)
                #
                #     move_direction = DOWN
                #     print('moved:', move_direction)
                # except:
                #     pass

                # result
                win = 1 if win_color == board.turn else 0

                #Ajout d'aspects (trois premières variables), évolue dans cet aspect et gagne / perd aux positions variables
                positions.append((piece_bb, occupied, pieces_in_hand, move_label, win))

                #1 aller de l'avant
                board.push_usi(move)
    return positions

Recommended Posts

Deep Learning avec Shogi AI sur Mac et Google Colab Chapitre 11
Deep Learning avec Shogi AI sur Mac et Google Colab Chapitre 8
Deep Learning avec Shogi AI sur Mac et Google Colab Chapitre 12 3
Deep Learning avec Shogi AI sur Mac et Google Colab Chapitre 7
Deep Learning avec Shogi AI sur Mac et Google Colab Chapitre 10 6-9
Deep Learning avec Shogi AI sur Mac et Google Colab Chapitre 10
Deep Learning avec Shogi AI sur Mac et Google Colab Chapitre 7 5-7
Deep Learning avec Shogi AI sur Mac et Google Colab Chapitre 9
Deep Learning avec Shogi AI sur Mac et Google Colab Chapitre 12 3
Deep Learning avec Shogi AI sur Mac et Google Colab Chapitre 12 3
Deep Learning avec Shogi AI sur Mac et Google Colab Chapitre 12 1-2
Deep Learning avec Shogi AI sur Mac et Google Colab Chapitre 12 3
Deep Learning avec Shogi AI sur Mac et Google Colab Chapitre 12 3 ~ 5
Deep Learning avec Shogi AI sur Mac et Google Colab Chapitre 7 9
Deep Learning avec Shogi AI sur Mac et Google Colab Chapitre 8 5-9
Deep Learning avec Shogi AI sur Mac et Google Colab Chapitre 8 1-4
Deep Learning avec Shogi AI sur Mac et Google Colab Chapitre 12 3
Deep Learning avec Shogi AI sur Mac et Google Colab Chapitre 7 8
Deep Learning avec Shogi AI sur Mac et Google Colab Chapitre 7 1-4
Apprentissage en profondeur avec Shogi AI sur Mac et Google Colab
Apprenez avec Shogi AI Deep Learning sur Mac et Google Colab Utilisez Google Colab
Apprentissage en profondeur sur Mac et Google Colab mots appris avec Shogi AI
Apprentissage automatique avec Pytorch sur Google Colab
À propos de l'apprentissage avec Google Colab
Étapes pour créer rapidement un environnement d'apprentissage en profondeur sur Mac avec TensorFlow et OpenCV
Jouez avec Turtle sur Google Colab
"Apprentissage de word2vec" et "Visualisation avec Tensorboard" sur Colaboratory
Installez le sélénium sur votre Mac et essayez-le avec python
Analyse d'images par apprentissage profond à partir de Kaggle et Keras
[AI] Apprentissage métrique profond
Prédire les tags en extrayant des fonctionnalités musicales avec Deep Learning
"Deep Learning from scratch" Mémo d'auto-apprentissage (n ° 14) Exécutez le programme du chapitre 4 sur Google Colaboratory
[Google Colab] Comment interrompre l'apprentissage, puis le reprendre
Reconnaissez votre patron avec Deep Learning et masquez l'écran
Une erreur survenue lors de l'apprentissage de YOLO avec Google Colab
Paramètres d'environnement d'apprentissage automatique basés sur Python3 sur Mac (coexistence avec Python2)
HIKAKIN et Max Murai avec vidéo de jeu en direct et apprentissage en profondeur
Essayez l'apprentissage en profondeur avec TensorFlow
Apprentissage profond du noyau avec Pyro
Essayez le Deep Learning avec FPGA
Catalina sur Mac et pyenv
Générez des Pokémon avec Deep Learning
Créez des rendez-vous pour le concours AtCoder sur Google Agenda avec Python et GAS
Créez un environnement Python sur votre Mac avec Anaconda et PyCharm
Erreur et solution lors de l'installation de python3 avec homebrew sur mac (catalina 10.15)
Comment exécuter Jupyter et Spark sur Mac avec des paramètres minimaux
La meilleure façon d'utiliser MeCab et CaboCha avec Google Colab
[Note de lecture] Apprentissage automatique pratique avec Scikit-Learn, Keras et TensorFlow Chapitre 1
Installez lp_solve sur Mac OSX et appelez-le avec python.
Deep learning / Deep learning from scratch 2 Chapitre 4 Mémo
Essayez le Deep Learning avec les concombres FPGA-Select
Identification de la race de chat avec Deep Learning
Deep learning / Deep learning made from scratch Chapitre 3 Mémo
flux tensoriel avec anaconda sur mac
MQTT sur Raspberry Pi et Mac
Faites de l'art ASCII avec l'apprentissage en profondeur
Deep Learning / Deep Learning à partir de Zero 2 Chapitre 5 Mémo
Essayez l'apprentissage en profondeur avec TensorFlow Partie 2