Inhaltsverzeichnis
In diesem Beispiel verwenden wir den MNIST-Datensatz mit Ziffernbildern von 0 bis 9. Seine Form ist wie in der folgenden Abbildung dargestellt:
Übergeben wir zunächst TensorFlow, to_categorical (wird zum Konvertieren numerischer Klassenwerte in andere Kategorien verwendet), Sequential, Flatten, Dense und Verwenden Sie Dropout zum Aufbau einer neuronalen Netzwerkarchitektur, um alle relevanten Codebibliotheken zu importieren. Einige der hier genannten Codebibliotheken sind Ihnen möglicherweise etwas unbekannt. Ich erkläre sie weiter unten im Detail.
6、训练
7、小结
Heim Technologie-Peripheriegeräte KI Eine Anleitung zum Trainieren von Bildklassifizierungsmodellen mit TensorFlow

Eine Anleitung zum Trainieren von Bildklassifizierungsmodellen mit TensorFlow

Apr 13, 2023 pm 05:13 PM
模型 tensorflow 分类

Übersetzer |. Chen Jun

Rezensent |. Heutzutage sind Computer dank der kontinuierlichen Iteration von maschinellen Lern- und Deep-Learning-Algorithmen in der Lage, aufgenommene Bilder in großem Maßstab mit sehr hoher Genauigkeit zu klassifizieren. Zu den Anwendungsszenarien solcher fortschrittlichen Algorithmen gehören derzeit: die Interpretation von Lungenscanbildern, um festzustellen, ob sie gesund sind, die Durchführung einer Gesichtserkennung über mobile Geräte und die Unterscheidung verschiedener Arten von Konsumgütern für Einzelhändler.

Im Folgenden werde ich mit Ihnen eine Anwendung von Computer Vision (Computer Vision) – Bildklassifizierung – besprechen und nach und nach zeigen, wie Sie TensorFlow verwenden, um ein Modell anhand eines kleinen Bilddatensatzes zu trainieren.

1, Datensatz und Ziel

In diesem Beispiel verwenden wir den MNIST-Datensatz mit Ziffernbildern von 0 bis 9. Seine Form ist wie in der folgenden Abbildung dargestellt:

Eine Anleitung zum Trainieren von Bildklassifizierungsmodellen mit TensorFlow Der Zweck des Trainings dieses Modells besteht darin, Bilder unter ihren jeweiligen Bezeichnungen zu klassifizieren, das heißt: sie sind auf entsprechende Zahlen in der Abbildung. Typischerweise stellt eine tiefe neuronale Netzwerkarchitektur eine Eingabe, eine Ausgabe, zwei verborgene Schichten (Hidden Layers) und eine Dropout-Schicht zum Trainieren des Modells bereit. CNN oder Convolutional Neural Network ist die erste Wahl zur Identifizierung größerer Bilder. Es kann relevante Informationen erfassen und gleichzeitig die Eingabemenge reduzieren.

2. Vorbereitung

Übergeben wir zunächst TensorFlow, to_categorical (wird zum Konvertieren numerischer Klassenwerte in andere Kategorien verwendet), Sequential, Flatten, Dense und Verwenden Sie Dropout zum Aufbau einer neuronalen Netzwerkarchitektur, um alle relevanten Codebibliotheken zu importieren. Einige der hier genannten Codebibliotheken sind Ihnen möglicherweise etwas unbekannt. Ich erkläre sie weiter unten im Detail.

3. Hyperparameter

Ich werde den richtigen Satz von Hyperparametern anhand der folgenden Aspekte auswählen:
  • #🎜 🎜#
  • Zuerst definieren wir einige Hyperparameter als Ausgangspunkt. Später können Sie es an unterschiedliche Bedürfnisse anpassen. Hier habe ich 128 als kleinere Losgröße gewählt. Tatsächlich kann die Batch-Größe einen beliebigen Wert annehmen, aber eine Potenz von 2 verbessert oft die Speichereffizienz und sollte daher die erste Wahl sein. Es ist erwähnenswert, dass der Hauptgrund für die Entscheidung über eine geeignete Stapelgröße darin besteht, dass eine zu kleine Stapelgröße die Konvergenz zu umständlich macht, während eine zu große Stapelgröße möglicherweise nicht in den Speicher Ihres Computers passt.
  • Lassen Sie uns die Anzahl der Epochen (jede Probe im Trainingssatz nimmt an einem Training teil) auf 50 belassen, um ein schnelles Training des Modells zu erreichen. Je niedriger der Epochenwert ist, desto besser eignet er sich für kleine und einfache Datensätze.
  • Als nächstes müssen Sie eine ausgeblendete Ebene hinzufügen. Hier habe ich 128 Neuronen für jede verborgene Schicht reserviert. Natürlich können Sie auch mit 64 und 32 Neuronen testen. Für dieses Beispiel würde ich nicht empfehlen, höhere Werte für einen einfachen Datensatz wie MINST zu verwenden.
  • Sie können verschiedene Lernraten ausprobieren, z. B. 0,01, 0,05 und 0,1. In diesem Fall belasse ich den Wert bei 0,01.
  • Für andere Hyperparameter habe ich die Abklingschritte und die Abklingrate auf 2000 bzw. 0,9 gewählt. Und mit fortschreitendem Training können sie dazu genutzt werden, die Lernrate zu reduzieren.
  • Hier wähle ich Adamax als Optimierer. Natürlich können Sie auch andere Optimierer wie Adam, RMSProp, SGD usw. wählen.
  • import tensorflow as tf
    from tensorflow.keras.utils import to_categorical
    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Flatten, Dense, Dropout
    params = {
    'dropout': 0.25,
    'batch-size': 128,
    'epochs': 50,
    'layer-1-size': 128,
    'layer-2-size': 128,
    'initial-lr': 0.01,
    'decay-steps': 2000,
    'decay-rate': 0.9,
    'optimizer': 'adamax'
    }
    mnist = tf.keras.datasets.mnist
    num_class = 10
    # split between train and test sets
    (x_train, y_train), (x_test, y_test) = mnist.load_data()
    # reshape and normalize the data
    x_train = x_train.reshape(60000, 784).astype("float32")/255
    x_test = x_test.reshape(10000, 784).astype("float32")/255
    # convert class vectors to binary class matrices
    y_train = to_categorical(y_train, num_class)
    y_test = to_categorical(y_test, num_class)
    Nach dem Login kopieren
  • 4. Erstellen Sie Trainings- und Testsätze
Da die TensorFlow-Bibliothek auch den MNIST-Datensatz enthält, können Sie datasets.mnist für das Objekt aufrufen und dann aufrufen die Methode „load_data()“, um die Trainings- (60.000 Proben) bzw. Testdatensätze (10.000 Proben) zu erhalten.

Als nächstes müssen Sie die Trainings- und Testbilder umformen und normalisieren. Unter anderem begrenzt die Normalisierung die Pixelintensität des Bildes auf 0 bis 1.

Schließlich verwenden wir die to_categorical-Methode, die wir zuvor importiert haben, um die Trainings- und Testetiketten in klassifizierte Etiketten umzuwandeln. Dies ist sehr wichtig, um dem TensorFlow-Framework zu vermitteln, dass die Ausgabebezeichnungen (z. B. 0 bis 9) Klassen und keine numerischen Typen sind.

5. Entwerfen Sie die neuronale Netzwerkarchitektur

Lassen Sie uns als Nächstes verstehen, wie die neuronale Netzwerkarchitektur im Detail entworfen wird.

Wir konvertieren die 2D-Bildmatrix in Vektoren, indem wir Flatten hinzufügen, um die Struktur des DNN (Deep Neural Network) zu definieren. Die Eingabeneuronen entsprechen hier den Zahlen im Vektor.

Als nächstes verwende ich die Methode Dense(), um zwei versteckte dichte Ebenen hinzuzufügen und jeden Hyperparameter aus dem zuvor definierten Wörterbuch „params“ zu extrahieren. Als Aktivierungsfunktion dieser Schichten können wir „relu“ (Rectified Linear Unit) verwenden. Es ist eine der am häufigsten verwendeten Aktivierungsfunktionen in verborgenen Schichten neuronaler Netze.

Dann fügen wir die Dropout-Ebene mit der Dropout-Methode hinzu. Es wird verwendet, um eine Überanpassung beim Training neuronaler Netze zu vermeiden. Schließlich neigen überangepasste Modelle dazu, sich den Trainingssatz genau zu merken und können nicht auf unsichtbare Datensätze verallgemeinern.

输出层是我们网络中的最后一层,它是使用Dense() 方法来定义的。需要注意的是,输出层有10个神经元,这对应于类(数字)的数量。

# Model Definition
# Get parameters from logged hyperparameters
model = Sequential([
Flatten(input_shape=(784, )),
Dense(params('layer-1-size'), activatinotallow='relu'),
Dense(params('layer-2-size'), activatinotallow='relu'),
Dropout(params('dropout')),
Dense(10)
])
lr_schedule =
tf.keras.optimizers.schedules.ExponentialDecay(
initial_learning_rate=experiment.get_parameter('initial-lr'),
decay_steps=experiment.get_parameter('decay-steps'),
decay_rate=experiment.get_parameter('decay-rate')
)
loss_fn = tf.keras.losses.CategoricalCrossentropy(from_logits=True)
model.compile(optimizer='adamax',
loss=loss_fn,
metrics=['accuracy'])
model.fit(x_train, y_train,
batch_size=experiment.get_parameter('batch-size'),
epochs=experiment.get_parameter('epochs'),
validation_data=(x_test, y_test),)
score = model.evaluate(x_test, y_test)
# Log Model
model.save('tf-mnist-comet.h5')
Nach dem Login kopieren

6、训练

至此,我们已经定义好了架构。下面让我们用给定的训练数据,来编译和训练神经网络。

首先,我们以初始学习率、衰减步骤和衰减率作为参数,使用ExponentialDecay(指数衰减学习率)来定义学习率计划。

其次,将损失函数定义为CategoricalCrossentropy(用于多类式分类)。

接着,通过将优化器 (即:adamax)、损失函数、以及各项指标(由于所有类都同等重要、且均匀分布,因此我选择了准确性)作为参数,来编译模型。

然后,我们通过使用x_train、y_train、batch_size、epochs和validation_data去调用一个拟合方法,并拟合出模型。

同时,我们调用模型对象的评估方法,以获得模型在不可见数据集上的表现分数。

最后,您可以使用在模型对象上调用的save方法,保存要在生产环境中部署的模型对象。

7、小结

综上所述,我们讨论了为图像分类任务,训练深度神经网络的一些入门级的知识。您可以将其作为熟悉使用神经网络,进行图像分类的一个起点。据此,您可了解到该如何选择正确的参数集、以及架构背后的思考逻辑。

原文链接:https://www.kdnuggets.com/2022/12/guide-train-image-classification-model-tensorflow.html

Das obige ist der detaillierte Inhalt vonEine Anleitung zum Trainieren von Bildklassifizierungsmodellen mit TensorFlow. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Das weltweit leistungsstärkste Open-Source-MoE-Modell ist da, mit chinesischen Fähigkeiten, die mit GPT-4 vergleichbar sind, und der Preis beträgt nur fast ein Prozent von GPT-4-Turbo Das weltweit leistungsstärkste Open-Source-MoE-Modell ist da, mit chinesischen Fähigkeiten, die mit GPT-4 vergleichbar sind, und der Preis beträgt nur fast ein Prozent von GPT-4-Turbo May 07, 2024 pm 04:13 PM

Stellen Sie sich ein Modell der künstlichen Intelligenz vor, das nicht nur die Fähigkeit besitzt, die traditionelle Datenverarbeitung zu übertreffen, sondern auch eine effizientere Leistung zu geringeren Kosten erzielt. Dies ist keine Science-Fiction, DeepSeek-V2[1], das weltweit leistungsstärkste Open-Source-MoE-Modell, ist da. DeepSeek-V2 ist ein leistungsstarkes MoE-Sprachmodell (Mix of Experts) mit den Merkmalen eines wirtschaftlichen Trainings und einer effizienten Inferenz. Es besteht aus 236B Parametern, von denen 21B zur Aktivierung jedes Markers verwendet werden. Im Vergleich zu DeepSeek67B bietet DeepSeek-V2 eine stärkere Leistung, spart gleichzeitig 42,5 % der Trainingskosten, reduziert den KV-Cache um 93,3 % und erhöht den maximalen Generierungsdurchsatz auf das 5,76-fache. DeepSeek ist ein Unternehmen, das sich mit allgemeiner künstlicher Intelligenz beschäftigt

KI untergräbt die mathematische Forschung! Der Gewinner der Fields-Medaille und der chinesisch-amerikanische Mathematiker führten 11 hochrangige Arbeiten an | Gefällt mir bei Terence Tao KI untergräbt die mathematische Forschung! Der Gewinner der Fields-Medaille und der chinesisch-amerikanische Mathematiker führten 11 hochrangige Arbeiten an | Gefällt mir bei Terence Tao Apr 09, 2024 am 11:52 AM

KI verändert tatsächlich die Mathematik. Vor kurzem hat Tao Zhexuan, der diesem Thema große Aufmerksamkeit gewidmet hat, die neueste Ausgabe des „Bulletin of the American Mathematical Society“ (Bulletin der American Mathematical Society) weitergeleitet. Zum Thema „Werden Maschinen die Mathematik verändern?“ äußerten viele Mathematiker ihre Meinung. Der gesamte Prozess war voller Funken, knallhart und aufregend. Der Autor verfügt über eine starke Besetzung, darunter der Fields-Medaillengewinner Akshay Venkatesh, der chinesische Mathematiker Zheng Lejun, der NYU-Informatiker Ernest Davis und viele andere bekannte Wissenschaftler der Branche. Die Welt der KI hat sich dramatisch verändert. Viele dieser Artikel wurden vor einem Jahr eingereicht.

Hallo, elektrischer Atlas! Der Boston Dynamics-Roboter erwacht wieder zum Leben, seltsame 180-Grad-Bewegungen machen Musk Angst Hallo, elektrischer Atlas! Der Boston Dynamics-Roboter erwacht wieder zum Leben, seltsame 180-Grad-Bewegungen machen Musk Angst Apr 18, 2024 pm 07:58 PM

Boston Dynamics Atlas tritt offiziell in die Ära der Elektroroboter ein! Gestern hat sich der hydraulische Atlas einfach „unter Tränen“ von der Bühne der Geschichte zurückgezogen. Heute gab Boston Dynamics bekannt, dass der elektrische Atlas im Einsatz ist. Es scheint, dass Boston Dynamics im Bereich kommerzieller humanoider Roboter entschlossen ist, mit Tesla zu konkurrieren. Nach der Veröffentlichung des neuen Videos wurde es innerhalb von nur zehn Stunden bereits von mehr als einer Million Menschen angesehen. Die alten Leute gehen und neue Rollen entstehen. Das ist eine historische Notwendigkeit. Es besteht kein Zweifel, dass dieses Jahr das explosive Jahr der humanoiden Roboter ist. Netizens kommentierten: Die Weiterentwicklung der Roboter hat dazu geführt, dass die diesjährige Eröffnungsfeier wie Menschen aussieht, und der Freiheitsgrad ist weitaus größer als der von Menschen. Aber ist das wirklich kein Horrorfilm? Zu Beginn des Videos liegt Atlas ruhig auf dem Boden, scheinbar auf dem Rücken. Was folgt, ist atemberaubend

KAN, das MLP ersetzt, wurde durch Open-Source-Projekte auf Faltung erweitert KAN, das MLP ersetzt, wurde durch Open-Source-Projekte auf Faltung erweitert Jun 01, 2024 pm 10:03 PM

Anfang dieses Monats schlugen Forscher des MIT und anderer Institutionen eine vielversprechende Alternative zu MLP vor – KAN. KAN übertrifft MLP in Bezug auf Genauigkeit und Interpretierbarkeit. Und es kann MLP, das mit einer größeren Anzahl von Parametern ausgeführt wird, mit einer sehr kleinen Anzahl von Parametern übertreffen. Beispielsweise gaben die Autoren an, dass sie KAN nutzten, um die Ergebnisse von DeepMind mit einem kleineren Netzwerk und einem höheren Automatisierungsgrad zu reproduzieren. Konkret verfügt DeepMinds MLP über etwa 300.000 Parameter, während KAN nur etwa 200 Parameter hat. KAN hat eine starke mathematische Grundlage wie MLP und basiert auf dem universellen Approximationssatz, während KAN auf dem Kolmogorov-Arnold-Darstellungssatz basiert. Wie in der folgenden Abbildung gezeigt, hat KAN

Google ist begeistert: JAX-Leistung übertrifft Pytorch und TensorFlow! Es könnte die schnellste Wahl für das GPU-Inferenztraining werden Google ist begeistert: JAX-Leistung übertrifft Pytorch und TensorFlow! Es könnte die schnellste Wahl für das GPU-Inferenztraining werden Apr 01, 2024 pm 07:46 PM

Die von Google geförderte Leistung von JAX hat in jüngsten Benchmark-Tests die von Pytorch und TensorFlow übertroffen und belegt bei 7 Indikatoren den ersten Platz. Und der Test wurde nicht auf der TPU mit der besten JAX-Leistung durchgeführt. Obwohl unter Entwicklern Pytorch immer noch beliebter ist als Tensorflow. Aber in Zukunft werden möglicherweise mehr große Modelle auf Basis der JAX-Plattform trainiert und ausgeführt. Modelle Kürzlich hat das Keras-Team drei Backends (TensorFlow, JAX, PyTorch) mit der nativen PyTorch-Implementierung und Keras2 mit TensorFlow verglichen. Zunächst wählen sie eine Reihe von Mainstream-Inhalten aus

FisheyeDetNet: der erste Zielerkennungsalgorithmus basierend auf einer Fischaugenkamera FisheyeDetNet: der erste Zielerkennungsalgorithmus basierend auf einer Fischaugenkamera Apr 26, 2024 am 11:37 AM

Die Zielerkennung ist ein relativ ausgereiftes Problem in autonomen Fahrsystemen, wobei die Fußgängererkennung einer der ersten Algorithmen ist, die eingesetzt werden. In den meisten Arbeiten wurde eine sehr umfassende Recherche durchgeführt. Die Entfernungswahrnehmung mithilfe von Fischaugenkameras für die Rundumsicht ist jedoch relativ wenig untersucht. Aufgrund der großen radialen Verzerrung ist es schwierig, die standardmäßige Bounding-Box-Darstellung in Fischaugenkameras zu implementieren. Um die obige Beschreibung zu vereinfachen, untersuchen wir erweiterte Begrenzungsrahmen-, Ellipsen- und allgemeine Polygondesigns in Polar-/Winkeldarstellungen und definieren eine mIOU-Metrik für die Instanzsegmentierung, um diese Darstellungen zu analysieren. Das vorgeschlagene Modell „fisheyeDetNet“ mit polygonaler Form übertrifft andere Modelle und erreicht gleichzeitig 49,5 % mAP auf dem Valeo-Fisheye-Kameradatensatz für autonomes Fahren

Tesla-Roboter arbeiten in Fabriken, Musk: Der Freiheitsgrad der Hände wird dieses Jahr 22 erreichen! Tesla-Roboter arbeiten in Fabriken, Musk: Der Freiheitsgrad der Hände wird dieses Jahr 22 erreichen! May 06, 2024 pm 04:13 PM

Das neueste Video von Teslas Roboter Optimus ist veröffentlicht und er kann bereits in der Fabrik arbeiten. Bei normaler Geschwindigkeit sortiert es Batterien (Teslas 4680-Batterien) so: Der Beamte hat auch veröffentlicht, wie es bei 20-facher Geschwindigkeit aussieht – auf einer kleinen „Workstation“, pflücken und pflücken und pflücken: Dieses Mal wird es freigegeben. Eines der Highlights Der Vorteil des Videos besteht darin, dass Optimus diese Arbeit in der Fabrik völlig autonom und ohne menschliches Eingreifen während des gesamten Prozesses erledigt. Und aus Sicht von Optimus kann es auch die krumme Batterie aufnehmen und platzieren, wobei der Schwerpunkt auf der automatischen Fehlerkorrektur liegt: In Bezug auf die Hand von Optimus gab der NVIDIA-Wissenschaftler Jim Fan eine hohe Bewertung ab: Die Hand von Optimus ist der fünffingrige Roboter der Welt am geschicktesten. Seine Hände sind nicht nur taktil

DualBEV: BEVFormer und BEVDet4D deutlich übertreffen, öffnen Sie das Buch! DualBEV: BEVFormer und BEVDet4D deutlich übertreffen, öffnen Sie das Buch! Mar 21, 2024 pm 05:21 PM

In diesem Artikel wird das Problem der genauen Erkennung von Objekten aus verschiedenen Blickwinkeln (z. B. Perspektive und Vogelperspektive) beim autonomen Fahren untersucht, insbesondere wie die Transformation von Merkmalen aus der Perspektive (PV) in den Raum aus der Vogelperspektive (BEV) effektiv ist implementiert über das Modul Visual Transformation (VT). Bestehende Methoden lassen sich grob in zwei Strategien unterteilen: 2D-zu-3D- und 3D-zu-2D-Konvertierung. 2D-zu-3D-Methoden verbessern dichte 2D-Merkmale durch die Vorhersage von Tiefenwahrscheinlichkeiten, aber die inhärente Unsicherheit von Tiefenvorhersagen, insbesondere in entfernten Regionen, kann zu Ungenauigkeiten führen. Während 3D-zu-2D-Methoden normalerweise 3D-Abfragen verwenden, um 2D-Features abzutasten und die Aufmerksamkeitsgewichte der Korrespondenz zwischen 3D- und 2D-Features über einen Transformer zu lernen, erhöht sich die Rechen- und Bereitstellungszeit.

See all articles