[PYTHON] Version Lua Deep Learning from scratch Part 5.5 [Rendre les fichiers pkl disponibles dans Lua Torch]

Articles précédents

Lua version Deep Learning from scratch 1 [Implémentation de Perceptron] Lua version Deep Learning from scratch 2 [Fonction d'activation] Lua version Deep Learning from scratch Part 3 [Implémentation d'un réseau neuronal à 3 couches] [Version Lua Deep Learning from scratch 4 [Implémentation de la fonction softmax]] (http://qiita.com/Kazuki-Nakamae/items/20e53a02a8b759583d31) Lua version Deep Learning from scratch Part 5 [Afficher l'image MNIST]

introduction

Cette fois, cela n'a rien à voir avec la ligne principale, mais je vais vous montrer comment rendre les données stockées dans le fichier pkl disponibles dans Lua.   ÉTAPE 1: Convertir le fichier pkl en fichier npz

Vous pouvez le faire avec le script suivant.

pkl2npz.py


#!/usr/local/bin/python3
# coding: utf-8

"""
Exportez le contenu du fichier pkl dans le fichier npz.
"""
__author__ = "Kazuki Nakamae <[email protected]>"
__version__ = "0.00"
__date__ = "22 Jun 2017"

import sys
import numpy as np
import pickle

def pkl2npz(infn, outfn):
    """
    @function   pkl2npz();
Exportez le contenu du fichier pkl dans le fichier npz.
    @param  {string} infn :Nom du fichier d'entrée
    @param  {string} outfn :Nom du fichier de sortie
    """

    with open(infn, 'rb') as f:
            ndarr = pickle.load(f)
            np.savez(outfn, W1=ndarr['W1'],W2=ndarr['W2'],W3=ndarr['W3'],b1=ndarr['b1'],b2=ndarr['b2'],b3=ndarr['b3'])

if __name__ == '__main__':
    argvs = sys.argv
    argc = len(argvs)

    if (argc != 3):   # Checking input
        print("USAGE : python3 pkl2npz.py <INPUT_PKLFILE> <OUTPUT_NPZFILE>")
        quit()

    pkl2npz(str(argvs[1]),str(argvs[2]))
quit()

pkl2npz.Exécuter py


$ python3 pkl2npz.py sample_weight.pkl sample_weight.npz

Une mise en garde est que vous devez connaître les éléments à l'avance. Dans ce cas, c'est un fichier pkl qui stocke les poids (W1, W2, W3) et le biais (b1, b2, b3) du NN à trois couches.   ÉTAPE 2: lire le fichier npz

Maintenant, chargeons le sample_weight.npz créé sur Lua. Sans tracas. Les personnes suivantes ont créé un package (npy4th) à cet effet. htwaijry/npy4th

npy4th installation


$ git clone https://github.com/htwaijry/npy4th.git
$ cd npy4th
$ luarocks make

Il est facile à utiliser et peut être lu en insérant simplement loadnpz ([nom de fichier]).

loadnpz()Comment utiliser


npy4th = require 'npy4th'

-- read a .npz file into a table
tbl = npy4th.loadnpz('sample_weight.npz')

print(tbl["W1"])

Résultat de sortie


Columns 1 to 6
-7.4125e-03 -7.9044e-03 -1.3075e-02  1.8526e-02 -1.5346e-03 -8.7649e-03
-1.0297e-02 -1.6167e-02 -1.2284e-02 -1.7926e-02  3.3988e-03 -7.0708e-02
-1.3092e-02 -2.4475e-03 -1.7722e-02 -2.4240e-02 -2.2041e-02 -5.0149e-03
-1.0008e-02  1.9586e-02 -5.6170e-03  3.8307e-02 -5.2507e-02 -2.3568e-02
(Omis)
 1.1210e-02  1.0272e-02
-1.2299e-02  2.4070e-02
 7.4309e-03 -4.0211e-02
[torch.FloatTensor of size 784x50]

Il a été correctement converti en type Tensor. Je ne l'ai pas présenté cette fois, mais vous pouvez lire les fichiers npy de la même manière. Cependant, bien qu'il se charge, veuillez noter qu'il n'y a aucune garantie qu'il se présentera sous la forme d'une matrice qui peut être utilisée telle quelle. La forme dépend de la forme du côté numpy. Si nécessaire, vous devrez redimensionner () etc. après cela.   en conclusion

Torch n'est pas populaire au Japon, mais je pense que ce serait plus facile à utiliser si de nombreuses ressources pouvaient être utilisées de cette manière. c'est tout. Merci beaucoup.

Recommended Posts

Version Lua Deep Learning from scratch Part 5.5 [Rendre les fichiers pkl disponibles dans Lua Torch]
Version Lua Apprentissage profond à partir de zéro Partie 6 [Traitement d'inférence de réseau neuronal]
Mémo d'auto-apprentissage "Deep Learning from scratch" (partie 12) Deep learning
Apprentissage profond à partir de zéro
Apprentissage profond à partir de zéro 1 à 3 chapitres
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 1
Un amateur a trébuché dans le Deep Learning ❷ fait à partir de zéro Note: Chapitre 5
Un amateur a trébuché dans le Deep Learning ❷ fait à partir de zéro Note: Chapitre 2
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 3
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 7
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 5
Un amateur a trébuché dans le Deep Learning ❷ fait de zéro Note: Chapitre 1
Un amateur a trébuché dans le Deep Learning ❷ fait à partir de zéro Note: Chapitre 4
Un amateur a trébuché dans le Deep Learning à partir de zéro.
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 2
J'ai essayé d'implémenter Perceptron Part 1 [Deep Learning from scratch]
Mémo d'auto-apprentissage "Deep Learning from scratch" (partie 8) J'ai dessiné le graphique du chapitre 6 avec matplotlib
Mémo d'apprentissage profond créé à partir de zéro
Pourquoi ModuleNotFoundError: Aucun module nommé'dataset.mnist 'n'apparaît dans "Deep Learning from scratch".
[Mémo d'apprentissage] Le Deep Learning fait de zéro [Chapitre 7]
Apprentissage profond à partir de zéro (propagation vers l'avant)
Apprentissage profond / Apprentissage profond à partir de zéro 2-Essayez de déplacer GRU
Deep learning / Deep learning made from scratch Chapitre 6 Mémo
[Mémo d'apprentissage] Deep Learning fait de zéro [Chapitre 5]
Deep learning / Deep learning made from scratch Chapitre 7 Mémo
[Windows 10] Construction de l'environnement "Deep Learning from scratch"
Enregistrement d'apprentissage de la lecture "Deep Learning from scratch"
[Deep Learning from scratch] À propos de l'optimisation des hyper paramètres
[Mémo d'apprentissage] Deep Learning fait de zéro [~ Chapitre 4]
[Python] [Traitement du langage naturel] J'ai essayé le Deep Learning ❷ fait de toutes pièces en japonais ①
[Pour les débutants] Après tout, qu'est-ce qui est écrit dans Deep Learning fait à partir de zéro?
Mémo d'auto-apprentissage "Deep Learning from scratch" (glossaire illisible)
"Deep Learning from scratch" Mémo d'auto-apprentissage (n ° 9) Classe MultiLayerNet
GitHub du bon livre "Deep Learning from scratch"
Deep Learning from scratch Chapter 2 Perceptron (lecture du mémo)
[Mémo d'apprentissage] Apprentissage profond à partir de zéro ~ Mise en œuvre de l'abandon ~
Résumé Python vs Ruby "Deep Learning from scratch"
Mémo d'auto-apprentissage «Deep Learning from scratch» (10) Classe MultiLayerNet
Mémo d'auto-apprentissage «Deep Learning from scratch» (n ° 11) CNN
Osez apprendre avec Ruby "Deep Learning from scratch" Importation de fichiers pickle depuis PyCall interdit
Mémo d'auto-apprentissage «Deep Learning from scratch» (n ° 19) Augmentation des données
Application de Deep Learning 2 à partir de zéro Filtre anti-spam
Apprendre en profondeur à partir des bases mathématiques Partie 2 (pendant la fréquentation)
Méthode d'étude pour apprendre le machine learning à partir de zéro (version mars 2020)
[Deep Learning from scratch] J'ai essayé d'expliquer le décrochage
[Deep Learning from scratch] J'ai essayé d'expliquer la confirmation du gradient d'une manière facile à comprendre.
"Deep Learning from scratch" Mémo d'auto-apprentissage (n ° 14) Exécutez le programme du chapitre 4 sur Google Colaboratory
[Deep Learning from scratch] Implémentez le traitement de rétropropagation dans le réseau neuronal par la méthode de propagation de retour d'erreur
[Deep Learning from scratch] Implémentation de la méthode Momentum et de la méthode AdaGrad
[Partie 4] Utilisez le Deep Learning pour prévoir la météo à partir d'images météorologiques
[Partie 3] Utilisez le Deep Learning pour prévoir la météo à partir d'images météorologiques
[Partie 2] Utilisez le Deep Learning pour prévoir la météo à partir d'images météorologiques
Mémo d'auto-apprentissage "Deep Learning from scratch" (n ° 15) Tutoriel pour débutants TensorFlow
[Deep Learning from scratch] À propos des couches requises pour implémenter le traitement de rétropropagation dans un réseau neuronal