Dieser Artikel wurde im Rahmen der Data Science Blogathon
Einführung
Im heutigen Artikel, Ich werde über die Entwicklung eines konvolutionellen neuronalen Netzwerks sprechen, das die funktionale TensorFlow-API verwendet. Wird funktionale API-Fähigkeit bereitstellen, Dadurch können wir eine hybride Modellarchitektur erstellen, die die Kapazität eines primären sequentiellen Modells übersteigt.
Über: TensorFlow
TensorFlow ist eine beliebte Bibliothek, etwas, das Sie wahrscheinlich ständig in der Gesellschaft für Deep Learning und künstliche Intelligenz hören. Existen numerosos paquetes y proyectos de código abierto para el tiefes LernenTiefes Lernen, Eine Teildisziplin der Künstlichen Intelligenz, verlässt sich auf künstliche neuronale Netze, um große Datenmengen zu analysieren und zu verarbeiten. Diese Technik ermöglicht es Maschinen, Muster zu lernen und komplexe Aufgaben auszuführen, wie Spracherkennung und Computer Vision. Seine Fähigkeit, sich kontinuierlich zu verbessern, wenn mehr Daten zur Verfügung gestellt werden, macht es zu einem wichtigen Werkzeug in verschiedenen Branchen, von Gesundheit....
- TensorFlow, eine Open-Source-Bibliothek für künstliche Intelligenz, die Datenflussdiagramme verwaltet, ist die gebräuchlichste Deep-Learning-Bibliothek. Es wird verwendet, um groß angelegte neuronale Netze mit unzähligen Schichten zu generieren.
- TensorFlow wird für Deep-Learning- oder Machine-Learning-Situationen wie Klassifikation praktiziert, Wahrnehmung, Wahrnehmung, Entdeckung, Prognose und Produktion.
Dann, wenn wir ein Klassifikationsproblem interpretieren, aplicamos un modelo de rote neuronale FaltungFaltungsneurale Netze (CNN) sind eine Art von neuronaler Netzwerkarchitektur, die speziell für die Datenverarbeitung mit einer Gitterstruktur entwickelt wurde, als Bilder. Sie verwenden Faltungsschichten, um hierarchische Merkmale zu extrahieren, Dies macht sie besonders effektiv bei Mustererkennungs- und Klassifizierungsaufgaben. Dank seiner Fähigkeit, aus großen Datenmengen zu lernen, CNNs haben Bereiche wie Computer Vision revolutioniert... Auch so, die meisten Entwickler waren mit der sequentiellen Modellierung vertraut. Die Schichten werden nacheinander begleitet.
- Mit Sequential API können Sie Schicht-für-Schicht-Modelle für die wichtigsten Probleme entwerfen.
- Der Schwierigkeitsgrad ist eingeschränkt, da Sie keine Modelle erstellen können, die Ebenen teilen oder Eingaben oder Ausgaben hinzugefügt haben.
- Aus diesem Grund, wir können die funktionale API von Tensorflows als multiples Ausgabemodell praktizieren.
Funktionale API (tf.Hard)
Die funktionale API in tf.Hard ist eine alternative Möglichkeit, flexiblere Modelle zu erstellen, einschließlich der Formulierung eines komplexeren Modells.
- Zum Beispiel, bei der Umsetzung eines vernachlässigbar komplizierteren Beispiels mit maschinellem Lernen, Sie werden möglicherweise selten mit dem Zustand konfrontiert, in dem Sie zusätzliche Modelle für die gleichen Daten verlangen.
- Dann müssten wir zwei Ausgaben erzeugen. Die am einfachsten zu handhabende Option wäre, zwei separate Modelle basierend auf den entsprechenden Daten zu erstellen, um Vorhersagen zu treffen..
- Das wäre glatt, Aber was wenn, im aktuellen Szenario, wir mussten haben 50 Ergebnisse? Es könnte mühsam sein, all diese Modelle getrennt zu halten.
- Alternative, es ist fruchtbarer, ein einzelnes Modell mit besseren Ergebnissen zu erstellen.
In der offenen API-Methode, Modelle werden bestimmt, indem Schichten gebildet und in Mengen direkt miteinander korreliert werden, dann wird ein Modell erstellt, das die Schichten definiert, die als Eingabe und Ausgabe fungieren.
Was ist bei der Sequential API anders??
Sequential API ermöglicht es Ihnen, Schicht-für-Schicht-Modelle für die meisten wichtigen Abfragen zu generieren. Es ist reguliert, da es Ihnen nicht erlaubt, Modelle zu entwerfen, die Ebenen teilen oder Eingaben oder Ausgaben hinzugefügt haben.
Lassen Sie uns unten verstehen, wie Sie ein sequenzielles API-Modellobjekt erstellen:
model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.harte.Schichten.Dense(128, Aktivierung = "korrekturgelesen"), tf.keras.layers.Dropout(0.2), tf.harte.Schichten.Dense(10, Aktivierung=’softmax’) ])
- In funktionaler API, Sie können Modelle entwerfen, die viel mehr Vielseitigkeit erzeugen. Zweifellos, kann Modelle korrigieren, in denen sich Ebenen auf mehr als vor und nach Ebenen beziehen.
- Kann Ebenen mit mehreren anderen Ebenen kombinieren. Während, die Herstellung von heterogenen Netzwerken wie Siam-Netzwerken und Restnetzwerken wird möglich.
Beginnen wir mit der Entwicklung eines CNN-Modells, indem wir eine funktionale API üben
In diesem Beitrag, utilizamos el conjunto de datos MNIST para construir la rotes neuronalesNeuronale Netze sind Rechenmodelle, die von der Funktionsweise des menschlichen Gehirns inspiriert sind. Sie nutzen Strukturen, die als künstliche Neuronen bekannt sind, um Daten zu verarbeiten und daraus zu lernen. Diese Netze sind grundlegend im Bereich der künstlichen Intelligenz, Dies ermöglicht erhebliche Fortschritte bei Aufgaben wie der Bilderkennung, Verarbeitung natürlicher Sprache und Vorhersage von Zeitreihen, unter anderen. Ihre Fähigkeit, komplexe Muster zu erlernen, macht sie zu mächtigen Werkzeugen.. convolucional para la clasificación de imágenes. Das DatenbankEine Datenbank ist ein organisierter Satz von Informationen, mit dem Sie, Effizientes Verwalten und Abrufen von Daten. Einsatz in verschiedenen Anwendungen, Von Unternehmenssystemen bis hin zu Online-Plattformen, Datenbanken können relational oder nicht-relational sein. Das richtige Design ist entscheidend für die Optimierung der Leistung und die Gewährleistung der Informationsintegrität, und erleichtert so eine fundierte Entscheidungsfindung in verschiedenen Kontexten.... del MNIST comprende 60,000 Trainingsbilder und 10,000 Testbilder von Mitarbeitern des US Census Bureau und US-Highschool-Junioren.
# Bibliotheken importieren
numpy als np importieren
Tensorflow als tf importieren
aus tensorflow.keras.layers importieren dicht, Aussteigen, Eingang
aus tensorflow.keras.layers importieren Conv2D, MaxPooling2D, Ebnen
von tensorflow.keras.models Modell importieren
aus tensorflow.keras.datasets importieren mnist
# lade Daten
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# Konvertieren von Sparse-Label in kategoriale Werte
num_labels = len(np.unique(y_train))
y_train = to_categorical(y_train)
y_test = to_kategorial(y_test)
# die Eingabebilder vorverarbeiten
image_size = x_train.shape[1]
x_train = np.reshape(x_train,[-1, Bildgröße, Bildgröße, 1])
x_test = np.reshape(x_test,[-1, Bildgröße, Bildgröße, 1])
x_train = x_train.astype('float32') / 255
x_test = x_test.astype('float32') / 255
Im Code oben,
- Distribuí estos dos grupos como AusbildungTraining ist ein systematischer Prozess zur Verbesserung der Fähigkeiten, körperliche Kenntnisse oder Fähigkeiten. Es wird in verschiedenen Bereichen angewendet, wie Sport, Aus- und Weiterbildung. Zu einem effektiven Trainingsprogramm gehört auch die Zielplanung, Regelmäßiges Üben und Bewerten der Fortschritte. Anpassung an individuelle Bedürfnisse und Motivation sind Schlüsselfaktoren, um in jeder Disziplin erfolgreiche und nachhaltige Ergebnisse zu erzielen.... y prueba y distribuí las etiquetas y las entradas.
- Die unabhängigen Variablen (x_train y x_test) enthalten Graustufen-RGB-Codes von 0 ein 255, während die abhängigen Variablen (y_train e y_test) tragen Etiketten von 0 ein 9, die beschreiben, welche Zahl sie wirklich sind.
- Es hat sich bewährt, unsere Daten zu normalisieren, wie es in Deep-Learning-Modellen ständig benötigt wird. Wir können dies erreichen, indem wir die RGB-Codes durch dividieren 255.
Dann, inicializamos los ParameterDas "Parameter" sind Variablen oder Kriterien, die zur Definition von, ein Phänomen oder System zu messen oder zu bewerten. In verschiedenen Bereichen wie z.B. Statistik, Informatik und naturwissenschaftliche Forschung, Parameter sind entscheidend für die Etablierung von Normen und Standards, die die Datenanalyse und -interpretation leiten. Ihre richtige Auswahl und Handhabung sind entscheidend, um genaue und relevante Ergebnisse in jeder Studie oder jedem Projekt zu erhalten.... para las redes.
# Parameter für das Netzwerk input_shape = (Bildgröße, Bildgröße, 1) batch_size = 128 Kernelgröße = 3 Filter = 64 Ausfall = 0.3
Im Code oben,
- input_shape: Das VariableIn Statistik und Mathematik, ein "Variable" ist ein Symbol, das einen Wert darstellt, der sich ändern oder variieren kann. Es gibt verschiedene Arten von Variablen, und qualitativ, die nicht-numerische Eigenschaften beschreiben, und quantitative, numerische Größen darstellen. Variablen sind grundlegend in Experimenten und Studien, da sie die Analyse von Beziehungen und Mustern zwischen verschiedenen Elementen ermöglichen, das Verständnis komplexer Phänomene zu erleichtern.... representa la necesidad de planificar y diseñar una EingabeschichtDas "Eingabeschicht" bezieht sich auf die Anfangsebene in einem Datenanalyseprozess oder in neuronalen Netzwerkarchitekturen. Seine Hauptfunktion besteht darin, Rohinformationen zu empfangen und zu verarbeiten, bevor sie von nachfolgenden Schichten transformiert werden. Im Kontext des maschinellen Lernens, Die richtige Konfiguration der Eingabeschicht ist entscheidend, um die Effektivität des Modells zu gewährleisten und seine Leistung bei bestimmten Aufgaben zu optimieren.... Independiente que designe los datos de entrada. Die Eingabeschicht akzeptiert ein Argument, sodass es sich um ein Tupel handelt, das die Dimensionen der Eingabedaten beschreibt.
- Losgröße: ist ein Hyperparameter, der die Anzahl der auszuführenden Stichproben bestimmt, bevor die internen Parameter des Modells aktualisiert werden.
- Kernelgröße: bezieht sich auf Abmessungen (Höhe x Breite) Filtermaske. Faltungsneurale Netze (CNN) Sie sind im Wesentlichen ein Stapel von Ebenen, die durch die Operationen verschiedener Filter auf der Eingabe markiert sind. Diese Filter werden allgemein als Kerne bezeichnet..
- Filter: wird durch einen Gewichtungsvektor ausgedrückt, zwischen dem wir die Eingabe falten.
- Verlassen: ist ein Prozess, bei dem zufällig ausgewählte Neuronen während des Trainings vernachlässigt werden. Dies impliziert, dass ihre Beteiligung an der Aktivierung nachgeschalteter Neuronen im Frontalpass vorübergehend ausgeschlossen ist..
Lassen Sie uns ein vereinfachtes mehrschichtiges Perzeptron definieren, ein konvolutionelles neuronales Netz:
# Verwenden einer funktionalen API zum Erstellen von CNC-Schichten Eingänge = Eingang(shape=input_shape) y = Conv2D(filter=filter, kernel_size=kernel_size, aktivierung='relu')(Eingänge) y = MaxPooling2D()(Ja) y = Conv2D(filter=filter, kernel_size=kernel_size, aktivierung='relu')(Ja) y = MaxPooling2D()(Ja) y = Conv2D(filter=filter, kernel_size=kernel_size, aktivierung='relu')(Ja) # Bild in Vektor umwandeln y = Abflachen()(Ja) # Aussetzer-Regulierung y = Ausfall(aussteigen)(Ja) Ausgänge = Dicht(num_labels, aktivierung='softmax')(Ja) # Modellbildung durch Bereitstellung von Inputs/Outputs Modell = Modell(Eingänge = Eingänge, Ausgänge = Ausgänge)
Im Code oben,
- Wir spezifizieren ein mehrschichtiges Perzeptronmodell zur binären Klassifikation.
- Das Modell enthält eine Eingabeschicht, 3 versteckte Ebenen neben 64 Neuronen und eine Produktschicht mit 1 Ausgang.
- Die korrigierten linearen Triggerfunktionen gelten für alle verborgenen Ebenen, y se adopta una WeckfunktionDie Aktivierungsfunktion ist eine Schlüsselkomponente in neuronalen Netzen, da es den Output eines Neurons auf der Grundlage seiner Eingabe bestimmt. Sein Hauptzweck besteht darin, Nichtlinearitäten in das Modell einzuführen, Ermöglicht das Erlernen komplexer Muster in Daten. Es gibt verschiedene Aktivierungsfunktionen, wie das Sigmoid, ReLU und tanh, jedes mit besonderen Eigenschaften, die sich auf die Leistung des Modells in verschiedenen Anwendungen auswirken.... softmax en la capa de producto para la clasificación binaria.
- Und Sie können sehen, dass die Schichten im Modell paarweise korreliert sind. Dies wird erreicht, indem bei der Bestimmung jeder neuen Schicht festgelegt wird, woher die Eingabe kommt.
- Wie bei allen sequentiellen APIs, Das Modell sind die Informationen, die wir zusammenfassen können, anpassen, auswerten und anwenden, um Vorhersagen auszuführen.
TensorFlow führt eine Modellklasse ein, die Sie üben können, um ein Modell aus Ihren entwickelten Schichten zu generieren. Erfordert, dass Sie nur die Eingabe- und Ausgabeschichten definieren, Abbildung der Struktur und des Graphen des Netzwerkarchitekturmodells.


Schließlich, Wir trainieren das Modell.
model.compile(Verlust="kategoriale_Kreuzentropie",
Optimierer="Adam",
Metriken=[Genauigkeit])
model.fit(x_train,
y_train,
Validation_data=(x_test, y_test),
Epochen=20,
batch_size=batch_size)
# Genauigkeitsbewertung
score = model.evaluate(x_test,
y_test,
batch_size=batch_size,
ausführlich=0)
drucken("nTestgenauigkeit: %.1F%%" % (100.0 * Spielstand[1]))
Mit der funktionalen Tensorflow-API haben wir nun erfolgreich ein konvolutionelles neuronales Netzwerk entwickelt, um handgeschriebene Ziffern zu unterscheiden. Wir haben eine Präzision erreicht, die besser ist als 99% und wir können das Modell speichern und eine Webanwendung zur Ziffernklassifizierung entwerfen.
Verweise:
- https://www.tensorflow.org/guide/keras/functional
- https://machinelearningmastery.com/keras-functional-api-deep-learning/
Die in diesem Artikel zur Gebärdenspracherkennung gezeigten Medien sind nicht Eigentum von DataPeaker und werden nach Ermessen des Autors verwendet.



