国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Inhaltsverzeichnis
1 Die Struktur der Trainingsdatenpipeline. Schauen wir uns zun?chst den Pseudocode des Modelltrainings an die n?chste Mini-Charge. In Schritt 2 werden sie an die Funktion train_step übergeben, die sie auf die GPU kopiert, einen Vorw?rts- und Rückw?rtsdurchlauf durchführt, um den Verlust und den Gradienten zu berechnen, und die Gewichte des Optimierers aktualisiert.
Da diese APIs auf Multithreading basieren, k?nnen sie durch den Python Global Interpreter Lock (GIL) eingeschr?nkt sein. Pythons GIL beschr?nkt den Bytecode auf jeweils nur einen Thread, der gleichzeitig ausgeführt wird. Wenn Sie reinen TensorFlow-Code in Ihrer Pipeline verwenden, leiden Sie im Allgemeinen nicht unter dieser Einschr?nkung, da die TensorFlow-Kernausführungs-Engine au?erhalb des Geltungsbereichs der GIL arbeitet. Wenn die verwendete Bibliothek eines Drittanbieters jedoch die GIL-Beschr?nkungen nicht aufhebt oder Python zur Durchführung einer gro?en Anzahl von Berechnungen verwendet, ist es nicht m?glich, sich auf Multithreading zur Parallelisierung der Pipeline zu verlassen.
Als n?chstes verwenden Sie den Generator in einer Dummy-Trainingspipeline und messen die durchschnittliche Zeit, die zum Generieren von Mini-Datenmengen ben?tigt wird.
Ray verfügt über eine Dienstprogrammfunktion from_iterators, mit der parallele Iteratoren erstellt werden k?nnen, und Entwickler k?nnen damit die Generatorfunktion data_generator umschlie?en.
Heim Technologie-Peripherieger?te KI Erstellen Sie mit Ray effiziente Deep-Learning-Datenpipelines

Erstellen Sie mit Ray effiziente Deep-Learning-Datenpipelines

Nov 02, 2023 pm 08:17 PM
Tiefes Lernen ray

Die für das Deep-Learning-Modelltraining erforderliche GPU ist leistungsstark, aber teuer. Um die GPU vollst?ndig nutzen zu k?nnen, ben?tigen Entwickler einen effizienten Datenübertragungskanal, der Daten schnell an die GPU übertragen kann, wenn diese für die Berechnung des n?chsten Trainingsschritts bereit ist. Die Verwendung von Ray kann die Effizienz des Datenübertragungskanals erheblich verbessern.

1 Die Struktur der Trainingsdatenpipeline. Schauen wir uns zun?chst den Pseudocode des Modelltrainings an die n?chste Mini-Charge. In Schritt 2 werden sie an die Funktion train_step übergeben, die sie auf die GPU kopiert, einen Vorw?rts- und Rückw?rtsdurchlauf durchführt, um den Verlust und den Gradienten zu berechnen, und die Gewichte des Optimierers aktualisiert.

Bitte erfahren Sie mehr über Schritt 1. Wenn der Datensatz zu gro? ist, um in den Speicher zu passen, ruft Schritt 1 den n?chsten Mini-Batch von der Festplatte oder dem Netzwerk ab. Darüber hinaus beinhaltet Schritt 1 auch eine gewisse Vorverarbeitung. Eingabedaten müssen in numerische Tensoren oder Tensorsammlungen umgewandelt werden, bevor sie dem Modell zugeführt werden. In einigen F?llen werden auch andere Transformationen am Tensor durchgeführt, bevor sie an das Modell übergeben werden, z. B. Normalisierung, Drehung um die Achse, zuf?lliges Mischen usw.

Wenn der Workflow streng nacheinander ausgeführt wird, ist Schritt 1 der Fall Zuerst ausführen und dann Schritt 2 ausführen, muss das Modell immer auf die Eingabe-, Ausgabe- und Vorverarbeitungsvorg?nge des n?chsten Datenstapels warten. Die GPU wird nicht effizient genutzt und bleibt beim Laden des n?chsten Mini-Datenstapels im Leerlauf.

Um dieses Problem zu l?sen, kann die Datenpipeline als Producer-Consumer-Problem betrachtet werden. Die Datenpipeline generiert kleine Datenmengen und schreibt sie in begrenzte Puffer. Das Modell/die GPU verbraucht kleine Datenmengen aus dem Puffer, führt Vorw?rts-/Rückw?rtsberechnungen durch und aktualisiert die Modellgewichtungen. Wenn die Datenpipeline kleine Datenmengen so schnell generieren kann, wie das Modell/die GPU sie verbraucht, ist der Trainingsprozess sehr effizient.

Bilder

Erstellen Sie mit Ray effiziente Deep-Learning-Datenpipelines2. Tensorflow tf.data APITensorflow tf.data API bietet eine Vielzahl von Funktionen, die zum effizienten Erstellen von Datenpipelines verwendet werden k?nnen, indem Hintergrundthreads verwendet werden, um kleine Datenmengen abzurufen Das Modell muss nicht warten. Das Vorababrufen der Daten reicht nicht aus. Wenn das Generieren kleiner Datenmengen langsamer ist, als die GPU die Daten verbrauchen kann, müssen Sie Parallelisierung verwenden, um das Lesen und Umwandeln der Daten zu beschleunigen. Zu diesem Zweck bietet Tensorflow Interleave-Funktionalit?t, um mehrere Threads zum parallelen Lesen von Daten zu nutzen, und parallele Mapping-Funktionalit?t, um mehrere Threads zum Transformieren kleiner Datenmengen zu verwenden.

Da diese APIs auf Multithreading basieren, k?nnen sie durch den Python Global Interpreter Lock (GIL) eingeschr?nkt sein. Pythons GIL beschr?nkt den Bytecode auf jeweils nur einen Thread, der gleichzeitig ausgeführt wird. Wenn Sie reinen TensorFlow-Code in Ihrer Pipeline verwenden, leiden Sie im Allgemeinen nicht unter dieser Einschr?nkung, da die TensorFlow-Kernausführungs-Engine au?erhalb des Geltungsbereichs der GIL arbeitet. Wenn die verwendete Bibliothek eines Drittanbieters jedoch die GIL-Beschr?nkungen nicht aufhebt oder Python zur Durchführung einer gro?en Anzahl von Berechnungen verwendet, ist es nicht m?glich, sich auf Multithreading zur Parallelisierung der Pipeline zu verlassen.

3 Verwenden Sie eine Multiprozessparallelisierung der Daten Pipeline

Betrachten Sie die folgende Generatorfunktion. Die Funktion simuliert das Laden und Durchführen einiger Berechnungen, um Mini-Batches von Datenbeispielen und Etiketten zu generieren.

for step in range(num_steps):sample, target = next(dataset) # 步驟1train_step(sample, target) # 步驟2

Als n?chstes verwenden Sie den Generator in einer Dummy-Trainingspipeline und messen die durchschnittliche Zeit, die zum Generieren von Mini-Datenmengen ben?tigt wird.

def data_generator():for _ in range(10):# 模擬獲取# 從磁盤/網(wǎng)絡(luò)time.sleep(0.5)# 模擬計算for _ in range(10000):passyield (np.random.random((4, 1000000, 3)).astype(np.float32), np.random.random((4, 1)).astype(np.float32))

Es ??wurde beobachtet, dass die durchschnittliche ben?tigte Zeit etwa 0,57 Sekunden betrug (gemessen auf einem Mac-Laptop mit Intel Core i7-Prozessor). Wenn es sich um eine echte Trainingsschleife handeln würde, w?re die GPU-Auslastung ziemlich gering, sie würde nur 0,1 Sekunden für die Berechnung aufwenden und dann 0,57 Sekunden im Leerlauf bleiben und auf den n?chsten Datenstapel warten.

Um das Laden der Daten zu beschleunigen, k?nnen Sie einen Multiprozessgenerator verwenden.

generator_dataset = tf.data.Dataset.from_generator(data_generator,output_types=(tf.float64, tf.float64),output_shapes=((4, 1000000, 3), (4, 1))).prefetch(tf.data.experimental.AUTOTUNE)st = time.perf_counter()times = []for _ in generator_dataset:en = time.perf_counter()times.append(en - st)# 模擬訓(xùn)練步驟time.sleep(0.1)st = time.perf_counter()print(np.mean(times))

Wenn wir nun die Zeit messen, die wir mit dem Warten auf den n?chsten Mini-Datenstapel verbringen, erhalten wir eine durchschnittliche Zeit von 0,08 Sekunden. Das ist fast eine 7-fache Beschleunigung, aber idealerweise sollte diese Zeit nahe bei 0 liegen.

Wenn Sie es analysieren, k?nnen Sie feststellen, dass viel Zeit für die Vorbereitung der Deserialisierung von Daten aufgewendet wird. In einem Multiprozessgenerator gibt der Produzentenprozess gro?e NumPy-Arrays zurück, die vorbereitet und dann im Hauptprozess deserialisiert werden müssen. Wie l?sst sich also die Effizienz beim übergeben gro?er Arrays zwischen Prozessen verbessern?

4. Verwenden Sie Ray, um die Datenpipeline zu parallelisieren.

Hier kommt Ray ins Spiel. Ray ist ein Framework zum Ausführen verteilter Datenverarbeitung in Python. Es verfügt über einen Shared-Memory-Objektspeicher, um Objekte effizient zwischen verschiedenen Prozessen zu übertragen. Insbesondere k?nnen Numpy-Arrays im Objektspeicher ohne Serialisierung und Deserialisierung von Workern auf demselben Knoten gemeinsam genutzt werden. Ray macht es au?erdem einfach, das Laden von Daten auf mehrere Maschinen zu skalieren und Apache Arrow zu verwenden, um gro?e Arrays effizient zu serialisieren und zu deserialisieren.

Ray verfügt über eine Dienstprogrammfunktion from_iterators, mit der parallele Iteratoren erstellt werden k?nnen, und Entwickler k?nnen damit die Generatorfunktion data_generator umschlie?en.

from multiprocessing import Queue, cpu_count, Processdef mp_data_generator():def producer(q):for _ in range(10):# 模擬獲取# 從磁盤/網(wǎng)絡(luò)time.sleep(0.5)# 模擬計算for _ in range(10000000):passq.put((np.random.random((4, 1000000, 3)).astype(np.float32),np.random.random((4, 1)).astype(np.float32)))q.put("DONE")queue = Queue(cpu_count()*2)num_parallel_processes = cpu_count()producers = []for _ in range(num_parallel_processes):p = Process(target=producer, args=(queue,))p.start()producers.append(p)done_counts = 0while done_counts <p>Mit ray_generator wurde die Wartezeit auf den n?chsten Mini-Datenstapel mit 0,02 Sekunden gemessen, was viermal schneller ist als mit der Multiprozessverarbeitung. </p>

Das obige ist der detaillierte Inhalt vonErstellen Sie mit Ray effiziente Deep-Learning-Datenpipelines. 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

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

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.

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?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

PHP-Tutorial
1502
276
Analyse h?ufig verwendeter KI-Aktivierungsfunktionen: Deep-Learning-Praxis von Sigmoid, Tanh, ReLU und Softmax Analyse h?ufig verwendeter KI-Aktivierungsfunktionen: Deep-Learning-Praxis von Sigmoid, Tanh, ReLU und Softmax Dec 28, 2023 pm 11:35 PM

Aktivierungsfunktionen spielen beim Deep Learning eine entscheidende Rolle. Sie k?nnen nichtlineare Eigenschaften in neuronale Netze einführen und es dem Netz erm?glichen, komplexe Eingabe-Ausgabe-Beziehungen besser zu lernen und zu simulieren. Die richtige Auswahl und Verwendung von Aktivierungsfunktionen hat einen wichtigen Einfluss auf die Leistung und Trainingsergebnisse neuronaler Netze. In diesem Artikel werden vier h?ufig verwendete Aktivierungsfunktionen vorgestellt: Sigmoid, Tanh, ReLU und Softmax. Beginnend mit der Einführung, den Verwendungsszenarien und den Vorteilen. Nachteile und Optimierungsl?sungen werden besprochen, um Ihnen ein umfassendes Verst?ndnis der Aktivierungsfunktionen zu vermitteln. 1. Sigmoid-Funktion Einführung in die Sigmoid-Funktionsformel: Die Sigmoid-Funktion ist eine h?ufig verwendete nichtlineare Funktion, die jede reelle Zahl auf Werte zwischen 0 und 1 abbilden kann. Es wird normalerweise verwendet, um das zu vereinheitlichen

Jenseits von ORB-SLAM3! SL-SLAM: Szenen mit wenig Licht, starkem Jitter und schwacher Textur werden verarbeitet Jenseits von ORB-SLAM3! SL-SLAM: Szenen mit wenig Licht, starkem Jitter und schwacher Textur werden verarbeitet May 30, 2024 am 09:35 AM

Heute diskutieren wir darüber, wie Deep-Learning-Technologie die Leistung von visionbasiertem SLAM (Simultaneous Localization and Mapping) in komplexen Umgebungen verbessern kann. Durch die Kombination von Methoden zur Tiefenmerkmalsextraktion und Tiefenanpassung stellen wir hier ein vielseitiges hybrides visuelles SLAM-System vor, das die Anpassung in anspruchsvollen Szenarien wie schlechten Lichtverh?ltnissen, dynamischer Beleuchtung, schwach strukturierten Bereichen und starkem Jitter verbessern soll. Unser System unterstützt mehrere Modi, einschlie?lich erweiterter Monokular-, Stereo-, Monokular-Tr?gheits- und Stereo-Tr?gheitskonfigurationen. Darüber hinaus wird analysiert, wie visuelles SLAM mit Deep-Learning-Methoden kombiniert werden kann, um andere Forschungen zu inspirieren. Durch umfangreiche Experimente mit ?ffentlichen Datens?tzen und selbst abgetasteten Daten demonstrieren wir die überlegenheit von SL-SLAM in Bezug auf Positionierungsgenauigkeit und Tracking-Robustheit.

Latente Raumeinbettung: Erkl?rung und Demonstration Latente Raumeinbettung: Erkl?rung und Demonstration Jan 22, 2024 pm 05:30 PM

Latent Space Embedding (LatentSpaceEmbedding) ist der Prozess der Abbildung hochdimensionaler Daten auf niedrigdimensionalen Raum. Im Bereich des maschinellen Lernens und des tiefen Lernens handelt es sich bei der Einbettung latenter R?ume normalerweise um ein neuronales Netzwerkmodell, das hochdimensionale Eingabedaten in einen Satz niedrigdimensionaler Vektordarstellungen abbildet. Dieser Satz von Vektoren wird oft als ?latente Vektoren“ oder ?latent“ bezeichnet Kodierungen". Der Zweck der Einbettung latenter R?ume besteht darin, wichtige Merkmale in den Daten zu erfassen und sie in einer pr?gnanteren und verst?ndlicheren Form darzustellen. Durch die Einbettung latenter R?ume k?nnen wir Vorg?nge wie das Visualisieren, Klassifizieren und Clustern von Daten im niedrigdimensionalen Raum durchführen, um die Daten besser zu verstehen und zu nutzen. Die Einbettung latenter R?ume findet in vielen Bereichen breite Anwendung, z. B. bei der Bilderzeugung, der Merkmalsextraktion, der Dimensionsreduzierung usw. Die Einbettung des latenten Raums ist das Wichtigste

Methoden und Schritte zur Verwendung von BERT für die Stimmungsanalyse in Python Methoden und Schritte zur Verwendung von BERT für die Stimmungsanalyse in Python Jan 22, 2024 pm 04:24 PM

BERT ist ein vorab trainiertes Deep-Learning-Sprachmodell, das 2018 von Google vorgeschlagen wurde. Der vollst?ndige Name lautet BidirektionalEncoderRepresentationsfromTransformers, der auf der Transformer-Architektur basiert und die Eigenschaften einer bidirektionalen Codierung aufweist. Im Vergleich zu herk?mmlichen Einweg-Codierungsmodellen kann BERT bei der Textverarbeitung gleichzeitig Kontextinformationen berücksichtigen, sodass es bei Verarbeitungsaufgaben in natürlicher Sprache eine gute Leistung erbringt. Seine Bidirektionalit?t erm?glicht es BERT, die semantischen Beziehungen in S?tzen besser zu verstehen und dadurch die Ausdrucksf?higkeit des Modells zu verbessern. Durch Vorschulungs- und Feinabstimmungsmethoden kann BERT für verschiedene Aufgaben der Verarbeitung natürlicher Sprache verwendet werden, wie z. B. Stimmungsanalyse und Benennung

Verstehen Sie in einem Artikel: die Zusammenh?nge und Unterschiede zwischen KI, maschinellem Lernen und Deep Learning Verstehen Sie in einem Artikel: die Zusammenh?nge und Unterschiede zwischen KI, maschinellem Lernen und Deep Learning Mar 02, 2024 am 11:19 AM

In der heutigen Welle rasanter technologischer Ver?nderungen sind künstliche Intelligenz (KI), maschinelles Lernen (ML) und Deep Learning (DL) wie helle Sterne und führen die neue Welle der Informationstechnologie an. Diese drei W?rter tauchen h?ufig in verschiedenen hochaktuellen Diskussionen und praktischen Anwendungen auf, aber für viele Entdecker, die neu auf diesem Gebiet sind, sind ihre spezifische Bedeutung und ihre internen Zusammenh?nge m?glicherweise noch immer r?tselhaft. Schauen wir uns also zun?chst dieses Bild an. Es ist ersichtlich, dass zwischen Deep Learning, maschinellem Lernen und künstlicher Intelligenz ein enger Zusammenhang und eine fortschreitende Beziehung besteht. Deep Learning ist ein spezifischer Bereich des maschinellen Lernens und des maschinellen Lernens

Super stark! Top 10 Deep-Learning-Algorithmen! Super stark! Top 10 Deep-Learning-Algorithmen! Mar 15, 2024 pm 03:46 PM

Fast 20 Jahre sind vergangen, seit das Konzept des Deep Learning im Jahr 2006 vorgeschlagen wurde. Deep Learning hat als Revolution auf dem Gebiet der künstlichen Intelligenz viele einflussreiche Algorithmen hervorgebracht. Was sind Ihrer Meinung nach die zehn besten Algorithmen für Deep Learning? Im Folgenden sind meiner Meinung nach die besten Algorithmen für Deep Learning aufgeführt. Sie alle nehmen hinsichtlich Innovation, Anwendungswert und Einfluss eine wichtige Position ein. 1. Hintergrund des Deep Neural Network (DNN): Deep Neural Network (DNN), auch Multi-Layer-Perceptron genannt, ist der am weitesten verbreitete Deep-Learning-Algorithmus. Als er erstmals erfunden wurde, wurde er aufgrund des Engpasses bei der Rechenleistung in Frage gestellt Jahre, Rechenleistung, Der Durchbruch kam mit der Datenexplosion. DNN ist ein neuronales Netzwerkmodell, das mehrere verborgene Schichten enth?lt. In diesem Modell übergibt jede Schicht Eingaben an die n?chste Schicht und

Sehen Sie sich von den Grundlagen bis zur Praxis die Entwicklungsgeschichte des Elasticsearch-Vektorabrufs an Sehen Sie sich von den Grundlagen bis zur Praxis die Entwicklungsgeschichte des Elasticsearch-Vektorabrufs an Oct 23, 2023 pm 05:17 PM

1. Einleitung Die Vektorabfrage ist zu einem Kernbestandteil moderner Such- und Empfehlungssysteme geworden. Es erm?glicht einen effizienten Abfrageabgleich und Empfehlungen, indem es komplexe Objekte (wie Text, Bilder oder T?ne) in numerische Vektoren umwandelt und ?hnlichkeitssuchen in mehrdimensionalen R?umen durchführt. Schauen Sie sich von den Grundlagen bis zur Praxis die Entwicklungsgeschichte von Elasticsearch Vector Retrieval_elasticsearch an. Als beliebte Open-Source-Suchmaschine hat die Entwicklung von Elasticsearch im Bereich Vektor Retrieval schon immer gro?e Aufmerksamkeit erregt. In diesem Artikel wird die Entwicklungsgeschichte des Elasticsearch-Vektorabrufs untersucht, wobei der Schwerpunkt auf den Merkmalen und dem Fortschritt jeder Phase liegt. Wenn Sie sich an der Geschichte orientieren, ist es für jeden praktisch, eine umfassende Palette zum Abrufen von Elasticsearch-Vektoren einzurichten.

TensorFlow Deep-Learning-Framework-Modell-Inferenzpipeline für Portr?tausschnitt-Inferenz TensorFlow Deep-Learning-Framework-Modell-Inferenzpipeline für Portr?tausschnitt-Inferenz Mar 26, 2024 pm 01:00 PM

übersicht Um ModelScope-Benutzern die schnelle und bequeme Nutzung verschiedener von der Plattform bereitgestellter Modelle zu erm?glichen, wird eine Reihe voll funktionsf?higer Python-Bibliotheken bereitgestellt, die die Implementierung offizieller ModelScope-Modelle sowie die erforderlichen Tools für die Verwendung dieser Modelle für Inferenzen umfassen , Feinabstimmung und andere Aufgaben im Zusammenhang mit der Datenvorverarbeitung, Nachverarbeitung, Effektbewertung und anderen Funktionen und bietet gleichzeitig eine einfache und benutzerfreundliche API und umfangreiche Anwendungsbeispiele. Durch den Aufruf der Bibliothek k?nnen Benutzer Aufgaben wie Modellinferenz, Schulung und Bewertung erledigen, indem sie nur wenige Codezeilen schreiben. Auf dieser Basis k?nnen sie auch schnell eine Sekund?rentwicklung durchführen, um ihre eigenen innovativen Ideen zu verwirklichen. Das derzeit von der Bibliothek bereitgestellte Algorithmusmodell ist:

See all articles