‫Jetzt haben wir gesehen, wie ein Bild aussieht, eine intensivere Form. Lassen Sie uns diese kleine Funktion erstellen,
‫die die Schritte hier ausführt.
‫Was wir also tun könnten, ist sie einfach zu kopieren, damit wir sie unten sehen können.
‫Und ich werde hier einfach eine kleine Zelle schreiben.
‫Jetzt haben wir gesehen, wie ein Bild als Tensas aussieht.
‫Lassen Sie uns eine Funktion zur Vorverarbeitung erstellen.
‫Alles klar.
‫Was wir also tun könnten, ist hier eine Variable zu definieren, Bildgröße zwei, 24, und Sie fragen sich vielleicht.
‫Wie ich es immer tue, wenn ich Dinge wie diese sage, die nicht erklärt werden, was ist zwei und vierundzwanzig, wo habe ich
‫das her?
‫Nun, das werden wir in einem späteren Video sehen, wenn wir ein Modell für maschinelles Lernen auswählen, das wir verwenden
‫können.
‫Und so hängt viel maschinelles Lernen die Größe Ihrer Eingaben oder die Form Ihrer Eingaben ab.
‫In unserem Fall Bilder mit dem von Ihnen verwendeten Modell.
‫Auch dies werden wir später behandeln.
‫Aber im Wesentlichen stellen wir sicher, dass unsere Bilder, die wir in ein Modell für maschinelles Lernen einspeisen, diese Form
‫haben.
‫Also zwei vierundzwanzig hoch bis vierundzwanzig breit, denn das ist das Modell für maschinelles Lernen, das wir verwenden
‫werden, das auf Bildern in derselben Form trainiert wurde.
‫Denken Sie daran, wie wichtig es ist, Ihrem Modell für maschinelles Lernen Daten im gleichen Format und derselben Form zuzuführen, mit denen es
‫trainiert wurde, wenn Sie versuchen, Vorhersagen zu treffen.
‫Aber das wirst du später in der Praxis sehen.
‫Aber schreiben wir diese Funktion.
‫Erstellen Sie also eine Funktion zur Vorverarbeitung von Bildern.
‫Also nenne ich dieses nette und einfache Prozessabbild.
‫Als Eingabe wird ein Bildpfad verwendet.
‫Und.
‫Kleines Nachbessern könnte darin bestehen, einen Bilddateipfad zu verwenden und das Bild in ein Tensas zu verwandeln, so etwas Einfaches, wir
‫könnten es später etwas intuitiver machen.
‫Aber für den Anfang reicht das, um es für uns selbst zu erklären.
‫Wir wollen also eine Bilddatei eintauschen.
‫Und dazu speichern wir es in einer Variablen namens image.
‫Und wenn wir jetzt das Laden von Bildern durchlesen, können Sie dies für andere Datentypen zum Schreiben tun.
‫Da sind Textdaten.
‫Es gibt diesen Datenrahmen numpties ESV Aber wenn wir uns dort durchlesen, sehen wir, dass wir zu Eyo gehen können, um Eingaben
‫zu erhalten, Dateien zu lesen.
‫Na, bitte.
‫Was ist dieses Zeichen liest und gibt den gesamten Inhalt des Eingabedateinamens aus?
‫Nun, das macht Sinn, gibt einen Tenzer vom Typ string zurück.
‫Wunderschönen.
‫Lassen Sie uns den Bildpfad machen, aber vertrauen Sie nicht auf mein Wort.
‫Was wir tun werden, ist, und ich möchte, dass Sie diese Praxis auch übernehmen. Wenn Sie jemals eine Funktion sehen, bei der
‫Sie sich nicht ganz sicher sind, was sie tut, schreiben Sie sie Zeile für Zeile um.
‫Lassen Sie uns das also überprüfen.
‫Wir gehen Tensas gleich zwei, nachdem ich die Datei gelesen habe und dann brauchen wir einen Bildpfad, der Dateinamen wäre.
‫Ich bin sechsundzwanzig, also bekommen wir vier Namen.
‫Sechsundzwanzig.
‫Und wie sieht das aus?
‫Oh, es hat also die Form einer Schnur.
‫Und dann eine ganze Reihe von Zeichen, die ich nicht verstehe, aber das ist in Ordnung, weil der Computer
‫sie besser versteht als ich.
‫Es hat also nur den Dateinamen genommen und den Inhalt in umgewandelt.
‫So lange, Tenzer, wunderbar, also ist der nächste Schritt das Licht, um die Datei zu lesen, sie als Bild zu speichern.
‫Ja, wandeln Sie unser Bild als JPEG in Zeitformen um.
‫Okay, dann machen wir das.
‫Verwandeln Sie das JPEG-Bild in einen numerischen Tensor mit drei Farbkanälen.
‫Roter Regen.
‫Blau.
‫Und noch einmal, schauen Sie sich die Ladebilder und die Dokumentation an, also verwenden wir diese Variable hier wieder.
‫Jetzt werden wir es auf Teft- oder Bildpunktdecodierung zurücksetzen. Sehen Sie, wie wir einige Optionen haben. Hier gehen wir zu PNG, der Art
‫von Bilddatei, die wir verwenden werden JPEG, da unsere Bilder in JPEG vorliegen image und dann übergeben
‫wir die Variable.
‫Kanäle, die Kanäle gibt die gewünschte Anzahl von Kanälen für das dekodierte Bild an, in unserem Fall wollen wir drei,
‫vier rot, grün und blau.
‫Wunderschönen.
‫Wenn wir nun noch einmal genau überprüfen wollten, was dies bewirkt, nehmen wir Tenzer und gehen nach einem
‫Bild bis zum Code.
‫JPEG nimmt Tensas und dann gehen wir zu Kanälen gleich drei.
‫Oh, sieh dir das an.
‫Sie haben genau die gleichen Daten wie wir hier oben.
‫Wunderbar.
‫Gut.
‫Um Zeit zu sparen, werden wir jetzt noch ein paar Zeilen in diese Funktion schreiben, aber
‫wir werden die ähnlichen Schritte nicht ausführen.
‫Das ist, was ich will.
‫Ich möchte, dass Sie etwas üben.
‫Wenn Sie beispielsweise eine Funktion ausführen und neugierig sind, was sie tut.
‫Versuchen Sie, es Zeile für Zeile aufzuschreiben und sehen Sie, was passiert.
‫Sie müssen mir also einfach vertrauen, was diese Zeilen bewirken.
‫Konvertieren Sie also die Farbkanalwerte.
‫Dies wird daher als Normalisierung bezeichnet.
‫Ich schreibe zuerst den Code und erzähle Ihnen dann von null bis 255 bis zu
‫null bis eins Werten, also möchten wir Bild gleich nach Bild konvertieren Bild D-Typ-Bild in Float 32 umwandeln.
‫Nun, was ist hier eine Doktrin, konvertieren Sie das Bild in Daytop und skalieren Sie seine Werte bei Bedarf.
‫Von Bildern, die mit Gleitkommawerten dargestellt werden, werden Werte im Bereich Null Eins
‫erwartet.
‫Wunderbar.
‫Jetzt denkst du vielleicht wie.
‫Woher weißt du das, Daniel?
‫Woher wissen Sie, dass Sie es von Null auf 255 in zwischen Null und Eins umwandeln müssen?
‫Nun, eigentlich habe ich gelogen.
‫Ich sagte, wir würden uns das nicht ansehen, aber es ist gut, dies zu untersuchen.
‫Nur damit Sie sehen können, wir haben dort Werte zwischen null und 255 und jetzt.
‫Ich werde das laufen lassen, oh, nein, das will ich eigentlich nicht, äh, mich hier durcheinander bringen, das nochmal wiederholen.
‫Führen Sie dies erneut aus.
‫Also ich möchte nur zeigen, was das tut.
‫Also Bild konvertieren.
‫Also im Grunde alles, was es tut, ist es unsere Werte umzuwandeln, es skaliert sie anstatt zwischen null und 255 zu liegen, sie
‫liegen jetzt zwischen null und eins mit der gleichen Skala.
‫Schweben 32.
‫Oh.
‫Oberlicht 32.
‫Wunderbar.
‫Wir haben also die gleiche Form, aber jetzt liegen sie nicht zwischen Null und 255, sondern zwischen Null und
‫Eins, und jetzt macht diese Art von Prozess die Berechnung auf diesen effizienter.
‫Das ist das Wichtigste, was Sie wissen müssen.
‫Es heißt Normalisierung.
‫Und wieder, dies ist nur direkt aus den Ladebildern, der Dokumentation.
‫Was müssen wir nun tun?
‫Eigentlich glaube ich nicht, dass wir dafür einen Schritt hier hatten.
‫Sie müssen möglicherweise unser Bild normalisieren, in Kanalwerte von null bis 255 bis null zu eins konvertieren.
‫Ich bekomme fünf, sechs, OK, jetzt endlich können wir die Größe des Bildes jetzt ändern, ich glaube, Sie vertrauen mir und was diese Zeile
‫tun wird.
‫Wir werden es also nicht abtippen.
‫Das überlasse ich euch beiden.
‫Vierundzwanzig bis vierundzwanzig bis im Grunde ein Quadrat.
‫Exakt.
‫Eigentlich ein Quadrat.
‫Bildpunktgröße ändern.
‫Ressourcen, Bilder auf Größe mit der angegebenen Methode.
‫OK, und jetzt wollen wir die Größe des Bildes ändern und die Größe wird Hype sein.
‫Warten Sie, jetzt sehen Sie, warum wir das hier definieren, vielleicht könnten
‫wir, wenn wir diese Funktion etwas besser schreiben, die Bildgröße als Bildgröße importieren.
‫Das ist wahrscheinlich ein bisschen besser.
‫Wunderbar, und jetzt werden Sie diese Art von Übung bekommen, wenn Sie anfangen, Ihre eigenen Funktionen zu schreiben, wenn Sie zum ersten
‫Mal eine Funktion schreiben, und wahrscheinlich ziemlich schlecht, ziemlich schrecklich sein.
‫Aber wenn Sie beginnen, Ihren Arbeitsablauf herauszufinden, werden Sie verstehen, wie Sie eine bessere Funktion
‫schreiben können.
‫Jetzt können wir das Bild zurückgeben.
‫Was wird also gemacht?
‫Hat es genau das gemacht, was wir gerade gesagt haben, braucht es einen Bildpfad und eine Bildgröße, das können wir hier
‫definieren.
‫Es liest die Bilddatei aus dem POV-Namen Beautiful ein.
‫Es wandelt das JPEG in einen numerischen Tenzer um, also konvertieren wir es nur in einen Tenzer mit den drei
‫Farbkanälen Rot, Grün und Blau, da dies die Konvention für die meisten Deep-Learning-Bildmodelle ist.
‫Sie wollen rot.
‫Ich sagte, lese nicht, dass das eine schlechte Sache ist.
‫Lesen ist eine tolle Sache.
‫Wir haben dann die Farbkanäle von Null auf 255 auf Null auf Eins-Werte konvertiert und schließlich die Größe des Bildes auf unseren
‫gewünschten Wert geändert.
‫Jetzt haben wir eine Funktion geschrieben.
‫Das Schöne ist, dass wir das später verwenden können.
‫Das habe ich früher gemacht, oder?
‫Früher habe ich diese Codezeilen jedes Mal durchlaufen, wenn ich ein Bild verarbeiten wollte, ein schrecklicher Workflow, damit wir
‫diese tatsächlich entfernen können.
‫Denken Sie daran, wenn Sie überprüfen möchten, was die Funktion tatsächlich tut, brechen Sie sie Zeile für Zeile auf, schreiben
‫Sie einen Bildpfad als Eingabe und sehen Sie dann, was der Rest tut.
‫Nun, ich denke, das reicht für dieses Video.
‫Wir haben unsere Funktion erstellt, um einige Bilder vorzuverarbeiten.
‫Nun, wir könnten es jetzt wieder tun, wenn wir den Ladedaten-intensiven Fluss durchlesen würden.
‫Ich denke, es ist dieser.
‫Ja.
‫Hier hinten gibt es einen kleinen Abschnitt, der dazu neigt, zu fließen, Dinge gerne in Form von
‫Stapeln zu sehen.
‫Also werden wir im nächsten Video herausfinden, welche Chargen es gibt.