Загрузить данные CSV в Tensorflow

Front-end и back-end разработка Программирование и разработка

В этой статье будут рассмотрены способы загрузки CSV-данных на языке программирования Python с помощью TensorFlow.

Библиотека TensorFlow предоставляет функцию make_csv_dataset(), которая используется для чтения данных и их использования в наших программах.

Загрузка одного файла CSV

Чтобы получить один файл данных CSV из URL-адреса, мы используем функцию Keras get_file. Здесь мы будем использовать набор данных Titanic.

Чтобы использовать это, мы добавляем следующие строки в наш код:

Python3

import tensorflow as tf
from tensorflow.keras import layers
import pandas as pd
 
data_path = tf.keras.utils.get_file("data_train.csv"
                    "https://storage.googleapis.com/tf-datasets/titanic/train.csv")
 
data_train_tf = tf.data.experimental.make_csv_dataset(
    data_path,
    batch_size=10,
    label_name='survived',
    num_epochs=1,
    ignore_errors=True,)

Теперь данные можно использовать как словарь, где ключ — это имя столбца, а значения — записи данных. Первый элемент в наборе данных — это наши столбцы данных; другой — данные этикетки. В нашем пакете данных каждое имя столбца/функции действует как ключ, и все значения в столбце являются его значением.

Python3

for batch, label in data_train_tf.take(1):
    for key, value in batch.items():
        print(f"{key:10s}: {value}")

Выход:

Первый элемент в наборе данных — это наши столбцы данных

 

Загрузка нескольких файлов CSV

Основное использование метода make_csv_dataset можно увидеть, когда нам нужно импортировать несколько файлов CSV в наш набор данных. Мы будем использовать набор данных шрифтов, который содержит шрифты для разных языков.

Пример. В этом примере мы используем функцию Keras get_file для чтения нескольких наборов данных на диск, а cache_dir и cache_subdir определяют, где их хранить.

После сохранения наборов данных с помощью команды file_pattern в нашем наборе данных make_csv_data мы можем указать путь ко всем файлам для импорта. Создайте новый файл и выполните следующий код:

Python3

fonts = tf.keras.utils.get_file('fonts.zip'
    "https://archive.ics.uci.edu/ml/machine-learning-databases/00417/fonts.zip",
    cache_dir='.', cache_subdir='fonts',
    extract=True)
 
fonts_data = tf.data.experimental.make_csv_dataset(
    file_pattern="fonts/*.csv",
    batch_size=10, num_epochs=1,
    num_parallel_reads=4,
    shuffle_buffer_size=10000)
 
for features in fonts_data.take(1):
    for i, (name, value) in enumerate(features.items()):
        if i > 15:
            break
        print(f"{name:20s}: {value}")
    print(f"[total: {len(features)} features]")

Мы отображаем первые 15 функций каждого набора данных и их значения. Окончательный подсчет общего признака отображается с помощью функции len(). В этом примере у нас всего 412 функций.

Выход:

Теперь данные можно использовать как словарь

Читайте также:  Неупорядоченная карта в C++
Оцените статью
bestprogrammer.ru
Добавить комментарий