[PYTHON] Lua-Version Deep Learning von Grund auf neu Teil 5.5 [Bereitstellung von pkl-Dateien in Lua Torch]

Frühere Artikel

Lua-Version Deep Learning von Grund auf neu 1 [Implementierung von Perceptron] Lua-Version Deep Learning von Grund auf neu 2 [Aktivierungsfunktion] Lua-Version Deep Learning von Grund auf neu Teil 3 [Implementierung eines 3-Schicht-Neuronalen Netzwerks] [Lua-Version Deep Learning von Grund auf neu 4 [Implementierung der Softmax-Funktion]] (http://qiita.com/Kazuki-Nakamae/items/20e53a02a8b759583d31) Lua-Version Deep Learning von Grund auf neu Teil 5 [MNIST-Bild anzeigen]

Einführung

Dieses Mal hat es nichts mit der Hauptzeile zu tun, aber ich werde Ihnen zeigen, wie Sie die in der pkl-Datei gespeicherten Daten in Lua verfügbar machen.   SCHRITT 1: Konvertieren Sie die pkl-Datei in die npz-Datei

Sie können dies mit dem folgenden Skript tun.

pkl2npz.py


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

"""
Geben Sie den Inhalt der pkl-Datei in die npz-Datei aus.
"""
__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();
Geben Sie den Inhalt der pkl-Datei in die npz-Datei aus.
    @param  {string} infn :Geben Sie den Dateinamen ein
    @param  {string} outfn :Name der Ausgabedatei
    """

    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.Führen Sie py aus


$ python3 pkl2npz.py sample_weight.pkl sample_weight.npz

Eine Einschränkung ist, dass Sie die Elemente im Voraus kennen müssen. In diesem Fall ist es eine pkl-Datei, die die Gewichte (W1, W2, W3) und Vorspannungen (b1, b2, b3) des dreischichtigen NN speichert.   SCHRITT 2: Lesen Sie die npz-Datei

Laden wir nun die erstellte sample_weight.npz auf Lua. Kein Stress. Die folgenden Personen haben zu diesem Zweck ein Paket (npy4th) erstellt. htwaijry/npy4th

npy4th Installation


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

Es ist einfach zu bedienen und kann durch einfaches Einfügen von loadnpz ([Dateiname]) gelesen werden.

loadnpz()Wie benutzt man


npy4th = require 'npy4th'

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

print(tbl["W1"])

Ausgabeergebnis


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
(Weggelassen)
 1.1210e-02  1.0272e-02
-1.2299e-02  2.4070e-02
 7.4309e-03 -4.0211e-02
[torch.FloatTensor of size 784x50]

Es wurde ordnungsgemäß in den Tensortyp konvertiert. Ich habe es diesmal nicht vorgestellt, aber Sie können npy-Dateien auf die gleiche Weise lesen. Beachten Sie jedoch, dass es keine Garantie dafür gibt, dass es in Form einer Matrix vorliegt, die unverändert verwendet werden kann. Die Form hängt von der Form auf der numpy Seite ab. Falls erforderlich, müssen Sie danach die Größe () usw. ändern.   abschließend

Fackel ist in Japan nicht beliebt, aber ich denke, es wäre einfacher zu verwenden, wenn numpy Ressourcen auf diese Weise verwendet werden könnten. das ist alles. Vielen Dank.

Recommended Posts

Lua-Version Deep Learning von Grund auf neu Teil 5.5 [Bereitstellung von pkl-Dateien in Lua Torch]
Lua-Version Deep Learning von Grund auf neu Teil 6 [Inferenzverarbeitung für neuronale Netze]
"Deep Learning from Grund" Memo zum Selbststudium (Teil 12) Deep Learning
Deep Learning von Grund auf neu
Deep Learning von Grund auf 1-3 Kapitel
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 1
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 5
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 2
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 3
Ein Amateur stolperte in Deep Learning von Grund auf neu. Hinweis: Kapitel 7
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 5
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 1
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 4
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 4
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 2
Ich habe versucht, Perceptron Teil 1 [Deep Learning von Grund auf neu] zu implementieren.
"Deep Learning from Grund" Memo zum Selbststudium (Teil 8) Ich habe die Grafik in Kapitel 6 mit matplotlib gezeichnet
Deep Learning Memo von Grund auf neu gemacht
Warum ModuleNotFoundError: In "Deep Learning from Grund" wird kein Modul mit dem Namen "didaset.mnist" angezeigt.
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 7]
Tiefes Lernen von Grund auf neu (Vorwärtsausbreitung)
Tiefes Lernen / Tiefes Lernen von Grund auf 2-Versuchen Sie, GRU zu bewegen
Deep Learning / Deep Learning von Grund auf neu Kapitel 6 Memo
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 5]
Deep Learning / Deep Learning von Grund auf neu Kapitel 7 Memo
[Windows 10] Aufbau einer "Deep Learning from Scratch" -Umgebung
Lernbericht über das Lesen von "Deep Learning von Grund auf neu"
[Deep Learning von Grund auf neu] Über die Optimierung von Hyperparametern
[Lernnotiz] Deep Learning von Grund auf neu gemacht [~ Kapitel 4]
[Python] [Verarbeitung natürlicher Sprache] Ich habe Deep Learning ausprobiert (auf Japanisch von Grund auf neu erstellt)
[Für Anfänger] Was ist in Deep Learning von Grund auf neu geschrieben?
Selbststudien-Memo "Deep Learning from Grund" (unlesbares Glossar)
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 9) MultiLayerNet-Klasse
GitHub des guten Buches "Deep Learning von Grund auf neu"
Deep Learning von Grund auf neu Kapitel 2 Perceptron (Memo lesen)
[Lernnotiz] Deep Learning von Grund auf ~ Implementierung von Dropout ~
Python vs Ruby "Deep Learning von Grund auf neu" Zusammenfassung
"Deep Learning from Grund" Memo zum Selbststudium (10) MultiLayerNet-Klasse
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 11) CNN
Wagen Sie es, mit Ruby zu lernen "Deep Learning from Grund von Grund auf neu" Importieren von Pickle-Dateien aus verbotenem PyCall
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 19) Datenerweiterung
Anwendung von Deep Learning 2 von Grund auf neu Spam-Filter
Deep Learning aus den mathematischen Grundlagen Teil 2 (während der Teilnahme)
Lernmethode zum Lernen von maschinellem Lernen von Grund auf neu (Version März 2020)
Ich habe versucht, Dropout zu erklären
[Deep Learning von Grund auf neu] Ich habe versucht, die Gradientenbestätigung auf leicht verständliche Weise zu erklären.
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 14) Führen Sie das Programm in Kapitel 4 in Google Colaboratory aus
[Deep Learning von Grund auf neu] Implementieren Sie die Backpropagation-Verarbeitung in einem neuronalen Netzwerk mithilfe der Fehler-Back-Propagation-Methode
[Deep Learning von Grund auf neu] Implementierung der Momentum-Methode und der AdaGrad-Methode
[Teil 4] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
[Teil 3] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
[Teil 2] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
Selbststudien-Memo "Deep Learning from Grund" (Nr. 15) TensorFlow-Anfänger-Tutorial
[Deep Learning von Grund auf neu] Informationen zu den Ebenen, die für die Implementierung der Backpropagation-Verarbeitung in einem neuronalen Netzwerk erforderlich sind