Praktyczny przewodnik po TFRecords

Blog

Niestandardowy format danych TFRecord firmy TensorFlow jest naprawdę przydatny. Pliki są obsługiwane natywnie przez niesamowicie szybkie API tf.data, obsługują rozproszone zestawy danych, wykorzystują równoległe operacje we/wy. Ale na początku są nieco przytłaczające. Ten post służy jako praktyczne wprowadzenie.



Przegląd

Najpierw omówimy koncepcję plików TFRecord. Mając to na uwadze, możemy przejść do pracy z danymi obrazu; użyjemy zarówno małego, jak i dużego zbioru danych. Poszerzając naszą wiedzę, pracujemy następnie z danymi audio. Ostatnią dużą domeną jest domena tekstowa, którą również omówimy. Aby to wszystko połączyć, tworzymy sztuczny zbiór danych z wieloma typami danych i, jak się domyślasz, zapisujemy go również do TFRecords.

Układ TFRecord

Kiedy rozpocząłem badania nad głębokim uczeniem, naiwnie przechowywałem swoje dane porozrzucane po dysku. Co gorsza, zanieczyściłem swoje katalogi tysiącami małych plików, rzędu kilku KB. Klaster, nad którym wtedy pracowałem, nie był rozbawiony. Załadowanie wszystkich tych plików zajęło trochę czasu.



Tutaj przydają się TFRecords (lub duże tablice numpy, jeśli o to chodzi): zamiast przechowywać dane rozproszone, zmuszając dyski do przeskakiwania między blokami, po prostu przechowujemy dane w układzie sekwencyjnym. Możemy zwizualizować tę koncepcję w następujący sposób:



Wizualizacja stworzona przez autora

jak podłączyć hp deskjet 2622 do wifi?

Plik TFRecord może być postrzegany jako opakowanie wokół wszystkich pojedynczych próbek danych. Każda pojedyncza próbka danych jest nazywana an Przykład i jest zasadniczo słownikiem przechowującym mapowanie między kluczem a naszymi rzeczywistymi danymi.

Teraz pozornie skomplikowana część jest taka: Kiedy chcesz zapisać swoje dane do TFRecords, musisz najpierw przekonwertować je na Funkcja . Te cechy są zatem wewnętrznymi składnikami jednego przykładu:

firefox nie działa w systemie Windows 10

Wizualizacja stworzona przez autora

Jak na razie dobrze. Ale jaka jest teraz różnica w przechowywaniu danych w skompresowanej tablicy numpy lub pliku pikle? Dwie rzeczy: plik TFRecord jest przechowywany sekwencyjnie, umożliwiając szybkie przesyłanie strumieniowe ze względu na krótki czas dostępu. Po drugie, pliki TFRecord są natywnie zintegrowane z API tf.data TensorFlows, co umożliwia łatwe grupowanie, tasowanie, buforowanie i tym podobne.

Jako bonus, jeśli kiedykolwiek będziesz miał szansę i zasoby komputerowe, aby przeprowadzić szkolenie dla wielu pracowników, możesz rozprowadzić zestaw danych na swoich maszynach.

Na poziomie kodu tworzenie funkcji odbywa się za pomocą tych wygodnych metod, o których powiemy później:

Aby zapisać dane w plikach TFRecord, najpierw utwórz słownik, który mówi

Chcę zapisać ten punkt danych pod tym kluczem

Czytając z plików TFRecord, odwracasz ten proces, tworząc słownik, który mówi

malina pi 10 gb ethernet

Mam te klucze, wypełnij ten symbol zastępczy wartością zapisaną pod tym kluczem

Zobaczmy, jak to wygląda w akcji.

#tensorflow #python #nauka o danych #głęboka nauka

kierunekdatascience.com

Praktyczny przewodnik po TFRecords

Niestandardowy format danych TFRecord firmy TensorFlow jest naprawdę przydatny. W tym poście przedstawimy Praktyczny przewodnik po TFRecords