Heim Technologie-Peripheriegeräte KI Bildklassifizierung mit JAX, Flachs und Optax

Bildklassifizierung mit JAX, Flachs und Optax

Mar 18, 2025 am 11:50 AM

Dieses Tutorial zeigt, dass ein Faltungsnetz (CNN) für die MNIST -Ziffernklassifizierung unter Verwendung von JAX, Flachs und Optax aufgebaut, trainiert und bewertet wird. Wir werden alles von Umgebungsaufbau- und Datenvorverarbeitung bis hin zu Modellarchitektur, Schulungsschleife, Metrikvisualisierung und schließlich Vorhersage für benutzerdefinierte Bilder abdecken. Dieser Ansatz unterstreicht die synergistischen Stärken dieser Bibliotheken für effizientes und skalierbares tiefes Lernen.

Lernziele:

  • Beherrschen Sie die Integration von Jax, Flachs und Optax für die Entwicklung des neuronalen Netzwerks.
  • Erfahren Sie, dass Datensätze mithilfe von TensorFlow -Datensätzen (TFDs) vorgefertigt und geladen werden.
  • Implementieren Sie ein CNN für eine effektive Bildklassifizierung.
  • Visualisieren Sie den Trainingsfortschritt mithilfe wichtiger Metriken (Verlust und Genauigkeit).
  • Bewerten Sie die Leistung des Modells auf benutzerdefinierten Bildern.

Dieser Artikel ist Teil des Datenwissenschaftsblogathons.

Inhaltsverzeichnis:

  • Lernziele
  • Das JAX-, Flachs- und Optax -Kraftpaket
  • JAX -Setup: Installation und Importe
  • MNIST -Daten: Laden und Vorverarbeitung
  • Konstruktion des CNN
  • Modellbewertung: Metriken und Verfolgung
  • Die Trainingsschleife
  • Ausführung von Schulungen und Bewertung
  • Visualisierung der Leistung
  • Vorhersage mit benutzerdefinierten Bildern
  • Abschluss
  • Häufig gestellte Fragen

Das Powerhouse Jax, Flachs und Optax:

Effizienter, skalierbares Deep -Learning erfordert leistungsstarke Tools für Berechnung, Modelldesign und Optimierung. Jax, Flachs und Optax befassen sich gemeinsam mit diesen Anforderungen:

JAX: Numerical Computing Excellence:

JAX bietet eine leistungsstarke numerische Berechnung mit einer numpy-ähnlichen Schnittstelle. Zu den wichtigsten Funktionen gehören:

  • Automatische Differenzierung (AUTOGRAD): Mühelose Gradientenberechnung für komplexe Funktionen.
  • Just-in-Time (JIT) -Kompilation: Beschleunigte Ausführung von CPUs, GPUs und TPUs.
  • Vektorisierung: Vereinfachte Stapelverarbeitung über vmap .
  • Hardwarebeschleunigung: Native Unterstützung für GPUs und TPUs.

Flachs: Flexible neuronale Netzwerke:

Flax, eine JAX-basierte Bibliothek, bietet einen benutzerfreundlichen und hoch anpassbaren Ansatz für die Konstruktion neuronaler Netzwerke:

  • Stateful Module: Vereinfachter Parameter und Zustandsmanagement.
  • Concise API: Intuitive Modelldefinition mit dem Dekorator @nn.compact .
  • Anpassungsfähigkeit: Geeignet für verschiedene Architekturen von einfach bis komplex.
  • Seamless JAX -Integration: Mühelose Nutzung der Fähigkeiten von JAX.

Optax: umfassende Optimierung:

Optax stromabreiche Gradientenhandhabung und -optimierung, bereitgestellt:

  • Optimierer -Sorte: Eine breite Palette von Optimierern, einschließlich SGD, Adam und RMSProp.
  • Gradientenmanipulation: Werkzeuge zum Ausschneiden, Skalieren und Normalisierung.
  • Modulares Design: Einfache Kombination von Gradiententransformationen und Optimierern.

Dieser kombinierte Rahmen bietet ein leistungsstarkes, modulares Ökosystem für die effiziente Entwicklung des Deep -Learning -Modells.

Bildklassifizierung mit JAX, Flachs und Optax

JAX -Setup: Installation und Importe:

Installieren Sie die erforderlichen Bibliotheken:

 !
Nach dem Login kopieren

Wesentliche Bibliotheken importieren:

 Jax importieren
Importieren Sie Jax.numpy als JNP
von Flachs importieren Leinen als nn
von flax.training import Train_state
Optax importieren
Numph als NP importieren
Tensorflow_Datasets als TFDS importieren
matplotlib.pyplot als pLT importieren
Nach dem Login kopieren

MNIST -Daten: Laden und Vorverarbeitung:

Wir laden und werden den MNIST -Datensatz mit TFDS geladen:

 Def get_datasets ():
  ds_builder = tfds.builder ('mnist')
  ds_builder.download_and_prepare ()
  train_ds = tfds.as_numpy (ds_builder.as_dataset (split = 'train', batch_size = -1))
  test_ds = tfds.as_numpy (ds_builder.as_dataset (split = 'test', batch_size = -1))
  Train_ds ['Bild'] = jnp.float32 (train_ds ['Bild']) / 255.0
  test_ds ['Bild'] = jnp.float32 (test_ds ['Bild']) / 255.0
  return train_ds, test_ds

train_ds, test_ds = get_datasets ()
Nach dem Login kopieren

Bilder werden auf den Bereich normalisiert [0, 1].

Bildklassifizierung mit JAX, Flachs und Optax

Konstruktion des CNN:

Unsere CNN -Architektur:

 Klasse cnn (nn.module):
  @nn.comPact
  def __call __ (self, x):
    x = nn.conv (features = 32, kernel_size = (3, 3)) (x)
    x = nn.relu (x)
    x = nn.avg_pool (x, window_shape = (2, 2), strides = (2, 2))
    x = nn.conv (features = 64, kernel_size = (3, 3)) (x)
    x = nn.relu (x)
    x = nn.avg_pool (x, window_shape = (2, 2), strides = (2, 2))
    x = x.reshape ((x.Shape [0], -1))
    x = nn.dense (features = 256) (x)
    x = nn.relu (x)
    x = nn.dense (features = 10) (x)
    Rückkehr x
Nach dem Login kopieren

Dies umfasst Faltungsschichten, Bündelungsschichten, eine Abflachungsschicht und dichte Schichten.

Modellbewertung: Metriken und Verfolgung:

Wir definieren Funktionen zur Berechnung des Verlusts und der Genauigkeit:

 Def compute_metrics (Protokolls, Beschriftungen):
  LUST = JNP.MEAN (optax.softmax_cross_entropy (logits, jax.nn.one_hot (Labels, num_classeses = 10)))
  accuracy = jnp.mean (jnp.argmax (logits, -1) == Labels)
  Metriken = {'Verlust': Verlust, 'Genauigkeit': Genauigkeit}
  Metriken zurückgeben

# ... (train_step und eval_step -Funktionen bleiben weitgehend gleich) ...
Nach dem Login kopieren

(Die Funktionen von Train_Step und Eval_Step würden hier enthalten, ähnlich wie der ursprüngliche Code.)

Die Trainingsschleife:

Die Trainingsschleife aktualisiert iterativ das Modell:

 # ... (Train_epoch und Eval_Model -Funktionen bleiben weitgehend gleich) ...
Nach dem Login kopieren

(Die Funktionen von Train_epoch und Eval_Model würden hier enthalten, ähnlich wie der ursprüngliche Code.)

Ausführung von Schulungen und Bewertung:

Wir führen den Schulungs- und Bewertungsprozess aus:

 # ... (Trainings- und Bewertungsausführungscode bleibt weitgehend gleich) ...
Nach dem Login kopieren

(Der Ausführungscode für Schulungen und Bewertung, einschließlich Parameterinitialisierung, Optimierer -Setup und die Trainingsschleife, werden hier enthalten, ähnlich dem ursprünglichen Code.)

Visualisierung der Leistung:

Wir visualisieren Trainings- und Testmetriken mit Matplotlib:

 # ... (Matplotlib -Plotcode bleibt weitgehend gleich) ...
Nach dem Login kopieren

(Der Matplotlib -Plotcode zur Visualisierung von Verlust und Genauigkeit würde hier ähnlich wie der ursprüngliche Code enthalten.)

Vorhersagen mit benutzerdefinierten Bildern:

Dieser Abschnitt zeigt die Vorhersage auf benutzerdefinierten Bildern (Code bleibt weitgehend das gleiche wie das Original).

 # ... (Code zum Hochladen, Vorverarbeitung und Vorhersagen auf benutzerdefinierten Bildern bleibt weitgehend gleich) ...
Nach dem Login kopieren

Abschluss:

Dieses Tutorial zeigte die Effizienz und Flexibilität von Jax, Flachs und Optax für den Bau und die Schulung eines CNN. Die Verwendung von TFDs vereinfachte die Datenbearbeitung und die metrische Visualisierung lieferte wertvolle Erkenntnisse. Die Fähigkeit, das Modell auf benutzerdefinierten Bildern zu testen, unterstreicht seine praktische Anwendbarkeit.

Häufig gestellte Fragen:

(FAQs bleiben weitgehend das Gleiche wie das Original.)

Der bereitgestellte Colab -Link würde hier enthalten. Denken Sie daran, /uploads/....webp Webp -Bildpfade durch die tatsächlichen Pfade zu Ihren Bildern zu ersetzen.

Das obige ist der detaillierte Inhalt vonBildklassifizierung mit JAX, Flachs und Optax. 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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

<🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusionssystem, erklärt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen 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)

Heiße Themen

Java-Tutorial
1672
14
PHP-Tutorial
1277
29
C#-Tutorial
1257
24
Wie baue ich multimodale KI -Agenten mit AGNO -Framework auf? Wie baue ich multimodale KI -Agenten mit AGNO -Framework auf? Apr 23, 2025 am 11:30 AM

Während der Arbeit an Agentic AI navigieren Entwickler häufig die Kompromisse zwischen Geschwindigkeit, Flexibilität und Ressourceneffizienz. Ich habe den Agenten-KI-Framework untersucht und bin auf Agno gestoßen (früher war es phi-

Wie füge ich eine Spalte in SQL hinzu? - Analytics Vidhya Wie füge ich eine Spalte in SQL hinzu? - Analytics Vidhya Apr 17, 2025 am 11:43 AM

SQL -Änderungstabellanweisung: Dynamisches Hinzufügen von Spalten zu Ihrer Datenbank Im Datenmanagement ist die Anpassungsfähigkeit von SQL von entscheidender Bedeutung. Müssen Sie Ihre Datenbankstruktur im laufenden Flug anpassen? Die Änderungstabelleerklärung ist Ihre Lösung. Diese Anleitung Details Hinzufügen von Colu

OpenAI-Verschiebungen Fokus mit GPT-4.1, priorisiert die Codierung und Kosteneffizienz OpenAI-Verschiebungen Fokus mit GPT-4.1, priorisiert die Codierung und Kosteneffizienz Apr 16, 2025 am 11:37 AM

Die Veröffentlichung umfasst drei verschiedene Modelle, GPT-4.1, GPT-4.1 Mini und GPT-4.1-Nano, die einen Zug zu aufgabenspezifischen Optimierungen innerhalb der Landschaft des Großsprachenmodells signalisieren. Diese Modelle ersetzen nicht sofort benutzergerichtete Schnittstellen wie

Neuer kurzer Kurs zum Einbetten von Modellen von Andrew NG Neuer kurzer Kurs zum Einbetten von Modellen von Andrew NG Apr 15, 2025 am 11:32 AM

Schalte die Kraft des Einbettungsmodelle frei: einen tiefen Eintauchen in den neuen Kurs von Andrew Ng Stellen Sie sich eine Zukunft vor, in der Maschinen Ihre Fragen mit perfekter Genauigkeit verstehen und beantworten. Dies ist keine Science -Fiction; Dank der Fortschritte in der KI wird es zu einem R

Raketenstartsimulation und -analyse unter Verwendung von Rocketpy - Analytics Vidhya Raketenstartsimulation und -analyse unter Verwendung von Rocketpy - Analytics Vidhya Apr 19, 2025 am 11:12 AM

Simulieren Raketenstarts mit Rocketpy: Eine umfassende Anleitung Dieser Artikel führt Sie durch die Simulation von Rocketpy-Starts mit hoher Leistung mit Rocketpy, einer leistungsstarken Python-Bibliothek. Wir werden alles abdecken, von der Definition von Raketenkomponenten bis zur Analyse von Simula

Google enthüllt die umfassendste Agentenstrategie bei Cloud nächsten 2025 Google enthüllt die umfassendste Agentenstrategie bei Cloud nächsten 2025 Apr 15, 2025 am 11:14 AM

Gemini als Grundlage der KI -Strategie von Google Gemini ist der Eckpfeiler der AI -Agentenstrategie von Google und nutzt seine erweiterten multimodalen Funktionen, um Antworten auf Text, Bilder, Audio, Video und Code zu verarbeiten und zu generieren. Entwickelt von Deepm

Open Source Humanoide Roboter, die Sie 3D selbst ausdrucken können: Umarme Gesicht kauft Pollenroboter Open Source Humanoide Roboter, die Sie 3D selbst ausdrucken können: Umarme Gesicht kauft Pollenroboter Apr 15, 2025 am 11:25 AM

"Super froh, Ihnen mitteilen zu können, dass wir Pollenroboter erwerben, um Open-Source-Roboter in die Welt zu bringen", sagte Hugging Face auf X.

DeepCoder-14b: Der Open-Source-Wettbewerb mit O3-Mini und O1 DeepCoder-14b: Der Open-Source-Wettbewerb mit O3-Mini und O1 Apr 26, 2025 am 09:07 AM

In einer bedeutenden Entwicklung für die KI-Community haben Agentica und gemeinsam KI ein Open-Source-KI-Codierungsmodell namens DeepCoder-14b veröffentlicht. Angebotsfunktionen der Codegenerierung mit geschlossenen Wettbewerbern wie OpenAI,

See all articles