Aidemy 2020/10/
Hallo, es ist ja! Ich bin eine knusprige Literaturschule, aber ich war an den Möglichkeiten der KI interessiert, also ging ich zur KI-Fachschule "Aidemy", um zu studieren. Ich möchte das hier gewonnene Wissen mit Ihnen teilen und habe es in Qiita zusammengefasst. Ich freue mich sehr, dass viele Menschen den vorherigen zusammenfassenden Artikel gelesen haben. Vielen Dank! Dies ist der dritte Beitrag zum Umgang mit Daten. Freut mich, dich kennenzulernen.
Bitte beachten Sie, dass dieses Kapitel esoterisch ist und ich es nicht vollständig verstehe.
Dieser Artikel ist eine Zusammenfassung dessen, was Sie in "Aidemy" "in Ihren eigenen Worten" gelernt haben. Es kann Fehler und Missverständnisse enthalten. Bitte beachten Sie.
Was diesmal zu lernen ・ Über Protokollpuffer ・ Über hdf5 ・ Über TF Record
Protokollpuffer werden von Google verwendet, um Daten zu speichern und alle Arten von strukturierten Informationen auszutauschen. (Zitat: Wikipedia-Protokollpuffer "https://ja.wikipedia.org/wiki/Protocol_Buffers")
・ Lassen Sie uns zunächst sehen, wie Sie es mit Bezug auf den Nachrichtentyp-Quellcode schreiben, der die Familienstruktur zusammenfasst.
・ Code![Screenshot 2020-10-28 22.39.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/c16c44d0-1883-12cd- a3b4-81fd090d4650.png)
-Erläutern Sie die Verwendung von proto2 mit __ "syntax =" proto2 ";" . Stellen Sie sicher, dass am Ende der Zeile ";" steht. - "Message Person {}" __ repräsentiert eine Klasse namens "Person". -Kommentare können durch __ "//" __ in einer Zeile und __ "/ * * /" __ in mehreren Zeilen dargestellt werden. -Für "Erforderlicher Stringname = 1;", __ "Stringname" __ gibt an, dass "Name" vom Typ str ist. Diese beiden Wörter werden zusammen field genannt. Der __ "= 1" __ Teil wird als __ Tag __ bezeichnet und hat die Aufgabe, die Daten bei der Ausgabe der Daten zu unterscheiden. __ "Erforderlich" __ muss an "Erforderliche Elemente" angehängt werden.
Ähnlich wie "erforderlich int32 age = 2;" bedeutet dies, dass "age" vom Typ int ist und das Tag 2 ist.
"Enum Relationship {}" definiert neu "Typen" wie str und int. Hier heißt es "Beziehungstyp". -In enum muss jedem Wert ein neues Tag hinzugefügt werden (MUTTER usw.). Tags in enum beginnen mit "0".
"Erforderliche Beziehungsbeziehung = 4;" ist dasselbe wie "str name", was bedeutet, dass "Beziehung" ein Beziehungstyp ist und das Tag 4 ist.
"Nachrichtenfamilie {}" ist dieselbe wie Person und repräsentiert die Familienklasse. -__ "Wiederholt" __ von "Wiederholte Person Person = 1;" ist wie eine "Liste". In diesem Fall werden Personentypdaten aufgelistet.
-Die Datei, in die der obige Code geschrieben ist, heißt "family.proto". Verwenden Sie einen Befehl, um diese Datei mit Python zu bearbeiten __protoc --python_out = Zieldateipfad speichern Nachrichtentyp Dateiname __ Eingeben.
・ Code![Screenshot 2020-10-28 22.40.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/9b0bb720-d9c4-5b63- b475-8c496b12dd63.png)
・ Ergebnis (nur Teil)![Screenshot 2020-10-28 22.41.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/b2c53d35 -0695-7324-2d0f-fc31d5fe81b7.png)
-Hdf5 ist ein Datenformat, das von Keras verwendet wird, beispielsweise beim Speichern eines von Keras erstellten Trainingsmodells. -In hdf5 kann die hierarchische Struktur in einer Datei vervollständigt werden. __ Mit anderen Worten, selbst wenn mehrere Ordner (Verzeichnisse) hierarchisch erstellt werden, kann die hdf5-Seite Dateien umfassend erstellen.
・ Code![Screenshot 2020-10-28 22.43.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/aec2bdea-e1da-2327- 6f2b-9684858f1cbb.png)
· Öffnen Sie die hdf5-Datei: __ hdf5.File ("Dateiname") __ -Erstellen Sie eine Gruppe (Verzeichnis): __ Datei .create_group ("Gruppenname") __ -Schreibe die Datei mit __flush () __ und schließe sie mit __close () __.
TFRecord ist "ein einfaches aufzeichnungsorientiertes Binärformat, das große Datenmengen verarbeiten kann, die nicht in den Speicher passen". Quote: So erstellen und lesen Sie tdl TensorFlow empfohlenes Format "TFRecord" [https://www.tdi.co.jp/miso/tensorflow-tfrecord-01#:~:text=TFRecord%E3%81%AF%E3%80%81%E3%80%8C%E3%83%A1%E3%83%A2%E3%83%AA%E3%81%AB%E5%8F%8E%E3%81%BE%E3%82%89,%E3%81%AE%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88%E3%80%8D%E3%81%A8%E3%81%84%E3%81%86%E3%81%93%E3%81%A8%E3%81%A7%E3%81%99%E3%80%82]
-TFRecord ist ein in TensorFlow verwendetes Datenformat, das die Verarbeitung großer Datenmengen wie oben beschrieben ermöglicht.
-Der Ablauf ist wie "Lesen eines Bildes", "Definieren des zu schreibenden Inhalts" und "Schreiben". ・ Gehen Sie wie folgt vor (Dateipfad ist fiktiv)
・ Code![Screenshot 2020-10-28 22.45.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/259f8e5c-c321-d243- 1ae8-5ba83afb733a.png)
-Für den Teil "Schreiben" ist __ "tf.python_io.TFRecordWriter ('Dateiname')" __ die TFRecord-Version von "open ('w')". -__ "fp.write (my_Example.SerializePartialToString ())" __, vervollständigen Sie, wenn Sie endlich schreiben.
-Die Liste enthält allgemeine variable Länge, deren Länge geändert werden kann, und fixierte Länge, die nur feste Daten enthalten kann. -Die Liste von Python hat normalerweise eine variable Länge, aber "tf.train.Example ()" im vorherigen Abschnitt hat eine feste Länge.
Diese Zeit ist vorbei. Vielen Dank für das Lesen bis zum Ende.
Recommended Posts