[PYTHON] Versuchen Sie, XOR mit der Keras Functional API zu implementieren

Einführung

Ich habe mich entschlossen, Keras ernsthaft zu starten, also habe ich den Code geschrieben, um das Vorhersagemodell von XOR zu erstellen. Ich möchte in Zukunft komplexe Modelle wie Graph Convolutional Networks erstellen, daher beginne ich mit der funktionalen API.

Quelle

So was. Ohne Batch-Normalisierung war es einfach, in eine lokale Lösung zu fallen, also habe ich sie hinzugefügt. In vielen Fällen war die letzte Schicht eine lineare Schicht, aber es war ein 0, 1-Klassifizierungsproblem, und ich war nicht überzeugt, also entschied ich mich für die Sigmoidfunktion. Die Anzahl der Einheiten in den beiden Zwischenschichten ist auf acht eingestellt.

sample.py


import tensorflow as tf
from tensorflow.keras.models import Sequential, Model
from tensorflow.keras.layers import Dense, Input, Dropout, BatchNormalization

import numpy as np


def main():
    x_input = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
    y_input = np.array([[0], [1], [1], [0]])

    input_tensor = Input(shape=(x_input.shape[1]))
    # x = Dense(units=32, activation="tanh", kernel_initializer='random_normal')(input_tensor)
    x = Dense(units=8, activation="relu", kernel_initializer='random_normal', use_bias=True)(input_tensor)
    x = BatchNormalization()(x)
    x = Dropout(0.1)(x)
    x = Dense(units=8, activation="relu", kernel_initializer='random_normal', use_bias=True)(x)
kernel_initializer='random_normal', use_bias=False)(x)
    output_layer = Dense(units=1, activation='sigmoid', kernel_initializer='random_normal', use_bias=False)(x)
    model = Model(input_tensor, output_layer)

    model.compile(loss='mse',  optimizer='sgd', metrics=['accuracy'])
    model.summary()

    #Lernen
    model.fit(x_input, y_input, nb_epoch=2000, batch_size=2, verbose=2)

    #Prognose
    print(model.predict(np.array([[0, 0]])))
    print(model.predict(np.array([[1, 0]])))
    print(model.predict(np.array([[0, 1]])))
    print(model.predict(np.array([[1, 1]])))


if __name__ == "__main__":
    main()

Modellübersicht

_________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
input_1 (InputLayer)         [(None, 2)]               0
_________________________________________________________________
dense (Dense)                (None, 8)                 24
_________________________________________________________________
batch_normalization (BatchNo (None, 8)                 32
_________________________________________________________________
dropout (Dropout)            (None, 8)                 0
_________________________________________________________________
dense_1 (Dense)              (None, 8)                 72
_________________________________________________________________
dense_2 (Dense)              (None, 1)                 8
=================================================================
Total params: 136
Trainable params: 120
Non-trainable params: 16

Vorhersageergebnis

[[0.09092495]]
[[0.9356866]]
[[0.90092343]]
[[0.08152929]]

abschließend

Diesmal habe ich es als Ausgangspunkt versucht, aber ich möchte verschiedene Dinge wie Parametereinstellung und Visualisierung ausprobieren.

Recommended Posts

Versuchen Sie, XOR mit der Keras Functional API zu implementieren
Versuchen Sie, XOR mit PyTorch zu implementieren
Versuchen Sie, RBM mit Chainer zu implementieren.
Versuchen Sie, Parfüm mit Go zu implementieren
Multi-Input / Multi-Output-Modell mit funktionaler API
Anfänger RNN (LSTM) | Versuchen Sie es mit Keras
Versuchen Sie, einen Cisco Spark Bot mit AWS Lambda + Amazon API Gateway (Python) zu implementieren.
Versuchen Sie eine lockere OAuth-Authentifizierung mit einem Kolben (Slack API V2).
[AWS] Versuchen Sie, API Gateway + Lambda mit X-Ray zu verfolgen
Vorverarbeitung zum Erstellen eines seq2seq-Modells unter Verwendung der Funktions-API von keras
Versuchen Sie, assoziativen Speicher durch Hop-Field-Netzwerk in Python zu implementieren
Versuchen Sie MNIST mit Mehrwertsteuer (Virtual Adversarial Training) mit Keras
Versuchen Sie, mit MVC eine RESTful-API mit Flask 1.0.2 zu erstellen
Erstellen eines seq2seq-Modells unter Verwendung der funktionalen API-Inferenz von keras
Versuchen Sie, das LWMA von MetaTrader mit der FIR-Filterfunktion von scipy zu implementieren
Versuchen Sie es mit Python.
CIFAR-10-Tutorial mit Keras
Versuchen Sie SNN mit BindsNET
Extrudieren Sie mit der Fusion360-API
Multivariates LSTM mit Keras
Probieren Sie die C ++ - API von NNabla aus
Versuchen Sie eine Regression mit TensorFlow
Versuchen Sie, das strukturierte gRPC-Protokoll einfach und einfach mit grpc_zap zu implementieren
Versuchen Sie, mit Python schnell und einfach auf die Twitter-API zuzugreifen
CNN mit Keras Versuchen Sie es mit dem Bild, das Sie aufgenommen haben
(Für Anfänger) Versuchen Sie, mit Django eine einfache Web-API zu erstellen
Bildanalyse mit Objekterkennungs-API zum Ausprobieren in 1 Stunde