[PYTHON] [NNabla] So entfernen Sie die mittlere Ebene eines vorgefertigten Netzwerks

Einführung

Dies ist der zweite Beitrag zu Qiita. (Artikel 2) Als ich von letztes Mal fortfuhr, während ich nnabla verwendete, fühlte ich mich wie "Ich wünschte, ich hätte diese Art von Informationen in Qiita" Zusammenfassung dessen, was ich in der nnabla-Referenz gefunden habe und dir () (Standard-Python-Funktion, die Mitgliedsvariablen und Funktionen von Argumenten zurückgibt) Ich werde.

1. Anforderungen

-OS: macOS Catalina (Version 10.15.1) ・ Python: 3.5.4 ・ Nnabla: 1.3.0

2. Aufbau eines Netzwerks

Das Beispielnetzwerk ist unten definiert. (Wie Letztes Mal bisher)

article2_rewire_on.py


import nnabla as nn
import nnabla.functions as F

# [define network]
x = nn.Variable()
y = F.add_scalar(x, 0.5)  # <-- (1)weit
y = F.mul_scalar(y, 2.0)

Es ist einfach in Form von $ y = (x + 0,5) \ times2 $. Zu diesem Zeitpunkt ist die Variable y eine Variable, die das Ergebnis der obigen Formel hat, und das Ergebnis von "F.add_scalar (x, 0,5)", das eine Zwischenberechnung ist, wird (1) genannt.

3. Entfernen Sie die mittlere Schicht

Ich werde erklären, wie man (1) oben löscht und einfach $ y = x \ times2 $ setzt. Es verwendet die Mitgliedsvariable rewire_on von nnabla.Variable in der nnabla-Referenz. Dies ist auch (relativ) leicht in Bezug zu verstehen. Ich habe es unten geübt.

article2_rewire_on.py


h1 = y.parent.inputs[0]   # = (1)
x.rewire_on(h1)

Die Funktionsprüfung wurde unten durchgeführt.

article2_rewire_on.py


# [check func for visit]
def get_func_name(f):
    print(f.name)
print('--- before ---')
y.visit(get_func_name)
print('')

# [rewire_on]
h1 = y.parent.inputs[0]   # = (1)
x.rewire_on(h1)

print('--- after ---')
y.visit(get_func_name)
print('')

Ausgabe

--- before ---
AddScalar
MulScalar

--- after ---
MulScalar

Kommentar

4. Nächster Hinweis (?)

Mit rewire_on können Sie nicht nur die mittlere Ebene entfernen, sondern auch eine neue Ebene einfügen. Ich habe es selbst geschafft, aber ich dachte "Ich wollte, dass jemand so etwas wie Qiita schreibt", also werde ich versuchen, es das nächste Mal zu schreiben.

Recommended Posts

[NNabla] So entfernen Sie die mittlere Ebene eines vorgefertigten Netzwerks
[NNabla] So erhalten Sie die Ausgabe (Variable) der mittleren Schicht des erstellten Netzwerks
[NNabla] So fügen Sie eine neue Ebene zwischen den mittleren Ebenen eines vorgefertigten Netzwerks hinzu
[NNabla] Hinzufügen einer Quantisierungsschicht zur mittleren Schicht eines trainierten Modells
Grundlagen von PyTorch (2) - Wie erstelle ich ein neuronales Netzwerk?
[Ubuntu] So löschen Sie den gesamten Inhalt des Verzeichnisses
So ermitteln Sie den Skalierungskoeffizienten eines bipolaren Wavelets
So verbinden Sie den Inhalt der Liste mit einer Zeichenfolge
So zeichnen Sie einfach die Struktur eines neuronalen Netzwerks in Google Colaboratory mit "convnet-drawer"
So bestimmen Sie die Existenz eines Selenelements in Python
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
So ermitteln Sie die Speicheradresse des Pandas-Datenrahmenwerts
Ein Befehl zum einfachen Überprüfen der Netzwerkgeschwindigkeit auf der Konsole
So machen Sie einen Screenshot des Chrome-Bildschirms (verhindern Sie, dass er in der Mitte abgeschnitten wird)
So überprüfen Sie die Version von Django
Ich habe versucht, die Genauigkeit meines eigenen neuronalen Netzwerks zu verbessern
[Einführung in Python] So sortieren Sie den Inhalt einer Liste effizient mit Listensortierung
So setzen Sie eine Zeilennummer am Anfang einer CSV-Datei
So spielen Sie ein Video ab, während Sie die Anzahl der Bilder ansehen (Mac)
So finden Sie den Bereich des Boronoi-Diagramms
So übergeben Sie das Ergebnis der Ausführung eines Shell-Befehls in einer Liste in Python
Wie man eine Benutzergruppe mit Slack-Benachrichtigung erwähnt, wie man die ID einer Benutzergruppe überprüft
[Circuit x Python] So ermitteln Sie die Übertragungsfunktion eines Schaltkreises mit Lcapy
So geben Sie mit Jupyter Notebook einen Wert in der Mitte einer Zelle aus
So zählen Sie die Anzahl der Elemente in Django und geben sie in die Vorlage aus
[Python] So sortieren Sie nach dem N-ten M-ten Element eines mehrdimensionalen Arrays
Ein Memorandum zur Ausführung des Befehls! Sudo magic in Jupyter Notebook
[Numpy, scipy] Wie berechnet man die Quadratwurzel einer Elmeet-Matrix mit halbregelmäßigem Wert?
So erstellen Sie einen Raspberry Pi, der die Tweets eines bestimmten Benutzers spricht
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
[Python] So entfernen Sie doppelte Werte aus der Liste
Wie man die Portnummer des xinetd-Dienstes kennt
So schreiben Sie eine GUI mit dem Befehl maya
So zeigen Sie das Änderungsdatum einer Datei in C-Sprache bis zu Nanosekunden an
So ermitteln Sie die Anzahl der Stellen in Python
Hinweise zur Verwendung von AIST Spacon ABCI
Ein Memo zum visuellen Verstehen der Achse von Pandas.Panel
Die Geschichte eines neuronalen Netzwerks der Musikgeneration
Schritte zur Berechnung der Wahrscheinlichkeit einer Normalverteilung
[Ruby] Wie ersetze ich nur einen Teil der Zeichenkette, der mit dem regulären Ausdruck übereinstimmt?
[Blender] So legen Sie die Auswahlelemente von EnumProperty dynamisch fest
So überprüfen Sie in Python, ob sich eines der Elemente einer Liste in einer anderen Liste befindet
Wie man das Dokument der magischen Funktion (Linienmagie) trifft
So greifen Sie auf die globale Variable des importierten Moduls zu
So veröffentlichen Sie ein Ticket über die Shogun-API
So ändern Sie das generierte Bild von GAN in ein qualitativ hochwertiges Bild nach Ihren Wünschen
[Selen] Wie wird der relative Pfad des Chromedriver angegeben?
Python Hinweis: Das Rätsel, einer Variablen eine Variable zuzuweisen
[Linux] [C / C ++] So ermitteln Sie den Wert der Rücksprungadresse einer Funktion und den Funktionsnamen des Aufrufers
[Deep Learning] Untersuchen Sie, wie jede Funktion des Faltungsnetzes verwendet wird [DW Tag 3]
Anzeigen des regionalen Netzes des Government Statistics Office (eStat) in einem Webbrowser
Wie kann man schnell die Häufigkeit des Auftretens von Zeichen aus einer Zeichenfolge in Python zählen?
So ermitteln Sie die durchschnittliche Informationsmenge (Entropie) der ursprünglichen Wahrscheinlichkeitsverteilung aus der Stichprobe
Darstellung der Verteilung der Bakterienzusammensetzung aus Qiime2-Analysedaten in einem Box-Whisker-Diagramm
Wie man zeichnet, indem man die Farbe des Diagramms kontinuierlich mit matplotlib ändert und einfach viele Legenden anordnet
Wie man einen bestimmten Prozess am Anfang und Ende der Spinne mit Scrapy einfügt
Übergeben des Ausführungsergebnisses eines Shell-Befehls in einer Liste in Python (nicht blockierende Version)
Eine Geschichte über die Portierung des Codes "Versuchen Sie zu verstehen, wie Linux funktioniert" nach Rust