[PYTHON] Erste Schritte mit der japanischen Übersetzung des Keras Sequential-Modells

Motivation

Ich hatte die Gelegenheit, Keras zu schreiben, also übersetzte ich es ins Japanische. Getting started with the Keras Sequential model Das sequentielle Modell wird durch Stapeln von Ebenen erstellt. Sie können eine Sequenz erstellen, indem Sie dem Konstruktor der Sequenz eine Instanz der Ebene zuweisen. Die Ebene mit der Bezeichnung "Dicht", "Aktivierung" unten (Dichte ist übrigens das sogenannte vollständig verbundene neuronale Netzwerk).

from Keras.models import Sequential
model = Sequential([
	Dense(32, input_dim=784),
	Activation('relu'),
	Dense(10),
	Activation('softmax'),
])

Sie können Ebenen auch mit der Methode .add () hinzufügen.

model = Sequential()
model.add(Dense(32, input_dim=784))
model.add(Activation('relu'))

Specifying the input shape Das Modell muss wissen, wie hoch die Anzahl der Dimensionen der Eingabe ist. Daher ist es erforderlich, der ersten Ebene des sequentiellen Modells Informationen zur Eingabedimension zu geben (die anderen Ebenen können automatisch auf die Anzahl der Dimensionen schließen). Es gibt drei Möglichkeiten, dies zu tun.

  1. Übergeben Sie das Argument input_shape. Übergeben von Tupel. Übergeben von None anstelle von Integer wird als positive Zahl interpretiert. Die Stapelgröße ist nicht enthalten.
  2. Übergeben Sie das Argument batch_input_shape. Dies schließt die Stapelgröße ein. Dies ist eine nützliche Technik, wenn Sie die Stapelgröße festlegen möchten.
  3. Zweidimensionale Ebenen wie Dense können die Anzahl der Dimensionen mit dem Argument input_dim angeben. Geben Sie für dreidimensionale Ebenen zusätzlich zum Argument input_dim das Argument input_length an.

Folgendes habe ich in meinen Code eingefügt:

	model = Sequential()
	model.add(Dense(32, input_shape=(784,)))
	model = Sequential()
	model.add(Dense(32, batch_input_shape=(None, 784)))
	# note that batch dimension is "None" here,(Obwohl die Chargengröße Keine ist)
	# so the model will be able to process batches of any size(Jetzt können Sie lernen, welche Chargengröße Sie haben)
	model = Sequential()
	model.add(Dense(32, input_dim=784))

Die folgenden drei Codes haben dieselbe Bedeutung.

	model = Sequential()
	model.add(LSTM(32, input_shape=(10, 64)))
	model = Sequential()
	model.add(LSTM(32, batch_input_shape=(None, 10, 64)))
	model = Sequential()
	model.add(LSTM(32, input_length=10, input_dim=64))

The Merge layer Es ist möglich, mehrere sequentielle Instanzen zu integrieren, sodass eine Ausgabe ausgegeben wird. Die Ausgangssequenz kann auf eine neue Sequenz gelegt werden. Das Folgende ist ein Beispiel und ein konzeptionelles Diagramm von Ebenen.

from keras.layers import Merge

left_branch = Sequential()
left_branch.add(Dense(32, input_dim=784))

right_branch = Sequential()
right_branch.add(Dense(32, input_dim=784))

merged = Merge([left_branch, right_branch], mode='concat')

final_model = Sequential()
final_model.add(merged)
final_model.add(Dense(10, activation='softmax'))

two_branches_sequential_model.png

Das Zusammenführen hat mehrere Modi, und Sie können beschreiben, wie zwei Tensoren zusammengeführt werden.

Jede Berechnungsformel kann im Modusargument unter Verwendung einer Lambda-Formel oder dergleichen beschrieben werden.

merged = Merge([left_branch, right_branch], mode=lambda x, y: x - y)

Wenn Sie ein komplexes Modell erstellen möchten, das nicht durch Sequential and Merge dargestellt werden kann, müssen Sie auf die Funktions-API verweisen.

Compilation Es ist notwendig, den Trainingsprozess vor dem Training des Modells festzulegen. Dies geschieht mit der Methode "compile". Die Methode "compile" verwendet die folgenden drei Argumente.

# for a multi-class classification problem
model.compile(optimizer='rmsprop',
			  loss='categorical_crossentropy',
			  metrics=['accuracy'])

# for a binary classification problem
model.compile(optimizer='rmsprop',
			  loss='binary_crossentropy',
			  metrics=['accuracy'])

# for a mean squared error regression problem
model.compile(optimizer='rmsprop',
			  loss='mse')

Training In Keras wird das Training mit der Eingabe und Bezeichnung des Numpy-Arrays durchgeführt. Die "Fit" -Funktion wird häufig in der Lernphase verwendet.

# for a single-input model with 2 classes(binary):(Zwei-Klassen-Klassifizierung)

model = Sequential()
model.add(Dense(1, input_dim=784, activation='softmax'))
model.compile(optimizer='rmsprop',
			  loss='binary_crossentropy',
			  metrics=['accuracy'])

# generate dummy data(Erstellen Sie entsprechende Eingabedaten)
import numpy as np
data = np.random.random((1000, 784))
labels = np.random.randint(2, size=(1000, 1))

# train the model, interating on the data in batches(Lernen Sie mit Chargengröße 32)
# of 32 samples
model.fit(data, labels, nb_epoch=10, batch_size=32)
# for a multi-input model with 10 classes:(10 Klassenklassifikation)

left_branch = Sequential()
left_branch.add(Dense(32, input_dim=784))

right_branch = Sequential()
right_branch.add(Dense(32, input_dim=784))

merged = Merge([left_branch, right_branch], mode='concat')

model = Sequential()
model.add(merged)
model.add(Dense(10, activation='softmax'))

model.compile(optimizer='rmsprop',
			  loss='categorical_crossentropy',
			  metrics=['accuracy'])

# generate dummy data(Entsprechende Eingabedaten erstellen)
import numpy as np
from keras.utils.np_utils import to_categorical
data_1 = np.random.random((1000, 784))
data_2 = np.random.random((1000, 784))

# these are integers between 0 and 9(Generieren Sie ganzzahlige Werte von 0 bis 9)
labels = np.random.randint(10, size=(1000, 1))
# we convert the labels to a binary matrix of size (1000, 10)(Zur Verwendung in Klassifizierungsaufgaben mit mehreren Klassen 1-In heißen Vektor konvertieren)
# for use with categorical_crossentropy
labels = to_categorical(labels, 10)

# train the model
#note that we are passing a list of Numpy arrays as training data
# since the model has 2 inputs(Nimmt zwei Eingaben als Argumente)
model.fit([data_1, data_2], labels, nb_epoch=10, batch_size=32)

Examples Es gibt einige Implementierungsbeispiele. Schauen Sie sich das Original [Keras] an (http://keras.io/getting-started/sequential-model-guide/).

Recommended Posts

Erste Schritte mit der japanischen Übersetzung des Keras Sequential-Modells
Erste Schritte: 30 Sekunden für die japanische Übersetzung von Keras
Erste Schritte mit Android!
1.1 Erste Schritte mit Python
[Übersetzung] Erste Schritte mit Rust für Python-Programmierer
Erste Schritte mit apache2
Erste Schritte mit Python
Erste Schritte mit Django 1
Einführung in die Optimierung
Erste Schritte mit Numpy
Erste Schritte mit Spark
Erste Schritte mit Python
Erste Schritte mit Pydantic
Erste Schritte mit Jython
Erste Schritte mit Django 2
Übersetzen Erste Schritte mit TensorFlow
Einführung in Python-Funktionen
Erste Schritte mit Go Assembly
Erste Schritte mit PKI mit Golang ―― 4
Erste Schritte mit Python Django (1)
Erste Schritte mit Python Django (4)
Erste Schritte mit Python Django (3)
Einführung in Python Django (6)
Erste Schritte mit Django mit PyCharm
Erste Schritte mit Python Django (5)
Erste Schritte mit Python Responder v2
Einführung in Git (1) History-Speicher
Erste Schritte mit Sphinx. Generieren Sie Docstring mit Sphinx
Erste Schritte mit Python-Webanwendungen
Erste Schritte mit Python für PHPer-Klassen
Erste Schritte mit Sparse Matrix mit scipy.sparse
Erste Schritte mit Julia für Pythonista
Erste Schritte mit Python Grundlagen von Python
Erste Schritte mit der Cisco Spark REST-API
Beginnend mit USD unter Windows
Erste Schritte mit genetischen Python-Algorithmen
Erste Schritte mit Python 3.8 unter Windows
Erste Schritte mit Python für PHPer-Funktionen
Erste Schritte mit der CPU-Diebstahlzeit
Erste Schritte mit Python3 # 1 Grundkenntnisse erlernen
Erste Schritte mit Python Web Scraping Practice
Erste Schritte mit Python für PHPer-Super Basics
Erste Schritte mit Python Web Scraping Practice
Erste Schritte mit Dynamo von Python Boto
Erste Schritte mit Lisp für Pythonista: Ergänzung
Erste Schritte mit Heroku, Bereitstellen der Flaschen-App
Erste Schritte mit TDD mit Cyber-dojo bei MobPro
MongoDB-Grundlagen: Erste Schritte mit CRUD mit JAVA
Erste Schritte mit dem Zeichnen mit matplotlib: Schreiben einfacher Funktionen
Belichtung des DCGAN-Modells für Cifar 10 mit Keras
Django Erste Schritte Teil 2 mit dem Eclipse Plugin (PyDev)
Erste Schritte mit AWS IoT in Python
Erste Schritte mit Pythons Ast-Modul (Verwenden von NodeVisitor)
Materialien zum Lesen, wenn Sie mit Python beginnen
Einstellungen für den Einstieg in MongoDB mit Python