tf.data.experimental.make_csv_dataset
| Просмотреть исходный код на GitHub |
Считывает CSV-файлы в набор данных.
tf.data.experimental.make_csv_dataset(
file_pattern,
batch_size,
column_names=None,
column_defaults=None,
label_name=None,
select_columns=None,
field_delim=',',
use_quote_delim=True,
na_value='',
header=True,
num_epochs=None,
shuffle=True,
shuffle_buffer_size=10000,
shuffle_seed=None,
prefetch_buffer_size=None,
num_parallel_reads=None,
sloppy=False,
num_rows_for_inference=100,
compression_type=None,
ignore_errors=False
)
Считывает CSV-файлы в набор данных, где каждый элемент набора данных — это кортеж (признаки, метки), соответствующий пакету строк CSV. Словарь признаков сопоставляет имена столбцов признаков с Tensor содержащими соответствующие данные признаков, а метки — с Tensor содержащими данные меток пакета.
По умолчанию ожидается, что первые строки CSV-файлов являются заголовками, перечисляющими имена столбцов. Если первые строки не являются заголовками, установите header=False и укажите имена столбцов с помощью аргумента column_names.
По умолчанию набор данных повторяется бесконечно, каждый раз перемешивая порядок. Это поведение можно изменить, установив аргументы num_epochs и shuffle.
Например, предположим, что у вас есть CSV-файл, содержащий
| Feature_A | Feature_B |
|---|---|
| 1 | "a" |
| 2 | "b" |
| 3 | "c" |
| 4 | "d" |
# No label column specified
dataset = tf.data.experimental.make_csv_dataset(filename, batch_size=2)
iterator = dataset.as_numpy_iterator()
print(dict(next(iterator)))
# prints a dictionary of batched features:
# OrderedDict([('Feature_A', array([1, 4], dtype=int32)),
# ('Feature_B', array([b'a', b'd'], dtype=object))])
# Set Feature_B as label column
dataset = tf.data.experimental.make_csv_dataset(
filename, batch_size=2, label_name="Feature_B")
iterator = dataset.as_numpy_iterator()
print(next(iterator))
# prints (features, labels) tuple:
# (OrderedDict([('Feature_A', array([1, 2], dtype=int32))]),
# array([b'a', b'b'], dtype=object))
См. руководство по загрузке данных CSV для получения дополнительных примеров использования make_csv_dataset для чтения данных CSV.
| Аргументы | |
|---|---|
file_pattern | Список файлов или шаблонов путей к файлам, содержащим записи CSV. См. tf.io.gfile.glob для правил шаблонов. |
batch_size | Целое число, представляющее количество записей, объединяемых в одном пакете. |
column_names | Необязательный список строк, соответствующий столбцам CSV в порядке. По одному на каждый столбец входной записи. Если это не указано, имена столбцов извлекаются из первой строки записей. Эти имена будут ключами словаря признаков каждого элемента набора данных. |
column_defaults | Необязательный список значений по умолчанию для полей CSV. По одному элементу на выбранный столбец входной записи. Каждый элемент в списке — это допустимый тип данных CSV (float32, float64, int32, int64 или строка) или Tensor с одним из указанных типов. Тензор может быть скалярным значением по умолчанию (если столбец необязателен) или пустым тензором (если столбец обязателен). Если вместо тензора указан тип данных, столбец также рассматривается как обязательный. Если этот список не указан, пытается определить типы на основе чтения первых num_rows_for_inference строк указанных файлов и предполагает, что все столбцы необязательны, используя 0 для числовых значений и "" для строковых значений. Если указаны как этот, так и select_columns, они должны иметь одинаковую длину, и предполагается, что column_defaults отсортирован в порядке возрастания индекса столбца. |
label_name | Необязательная строка, соответствующая столбцу меток. Если указано, данные для этого столбца возвращаются как отдельный Tensor из словаря признаков, чтобы набор данных соответствовал формату, ожидаемому функцией ввода tf.Estimator.train или tf.Estimator.evaluate. |
select_columns | Необязательный список целочисленных индексов или имен столбцов, которые указывают подмножество столбцов данных CSV для выбора. Если указаны имена столбцов, они должны соответствовать именам, указанным в column_names или определённым из строк заголовков файлов. При указании этого аргумента будут анализироваться и возвращаться только подмножество столбцов CSV, соответствующих указанным столбцам. Использование этого приводит к более быстрому анализу и меньшему потреблению памяти. Если указаны как этот, так и column_defaults, они должны иметь одинаковую длину, и column_defaults предполагается отсортированным в порядке возрастания индекса столбца. |
field_delim | Необязательный string. По умолчанию ",". Разделитель символов для разделения полей в записи. |
use_quote_delim | Необязательный bool. По умолчанию True. Если ложь, рассматривает двойные кавычки как обычные символы внутри строковых полей. |
na_value | Дополнительная строка, распознаваемая как NA/NaN. |
header | Bool, указывающий, соответствуют ли первые строки предоставленных CSV-файлов строкам заголовков с именами столбцов и не должны быть включены в данные. |
num_epochs | Целое число, определяющее количество повторений этого набора данных. Если None, циклически проходит через набор данных бесконечно. |
shuffle | Bool, указывающий, должен ли ввод перемешиваться. |
shuffle_buffer_size | Размер буфера для перемешивания. Большой размер буфера обеспечивает лучшее перемешивание, но увеличивает потребление памяти и время запуска. |
shuffle_seed | Семечко для рандомизации при перемешивании. |
prefetch_buffer_size | Целое число, определяющее количество пакетов признаков, подготавливаемых для повышения производительности. Рекомендуемое значение — количество пакетов, потребляемых на шаге обучения. По умолчанию — автоматическая настройка. |
num_parallel_reads | Количество потоков, используемых для чтения записей CSV из файлов. Если >1, результаты будут интерлинованы. По умолчанию 1. |
sloppy | Если True, производительность чтения будет улучшена за счёт недетерминированного порядка. Если False, порядок элементов, создаваемых до перемешивания, является детерминированным (элементы по-прежнему рандомизируются, если shuffle=True. Обратите внимание, что если семечко задано, порядок элементов после перемешивания является детерминированным). По умолчанию False. |
num_rows_for_inference | Количество строк файла, используемых для определения типа, если record_defaults не указан. Если None, считываются все строки всех файлов. По умолчанию 100. |
compression_type | (Необязательно.) tf.string скаляр, оцениваемый как один из "" (без сжатия), "ZLIB", или "GZIP". По умолчанию без сжатия. |
ignore_errors | (Необязательно.) Если True, игнорирует ошибки при анализе CSV-файла, такие как неправильные данные или пустые строки, и переходит к следующей допустимой записи CSV. В противном случае набор данных генерирует ошибку и прекращает обработку при обнаружении любой неверной записи. По умолчанию False. |
| Возвращает | |
|---|---|
Набор данных, где каждый элемент — кортеж (признаки, метки), соответствующий пакету batch_size строк CSV. Словарь признаков сопоставляет имена столбцов признаков с Tensor содержащими соответствующие данные столбцов, а метки — с Tensor содержащими данные столбца меток, указанного в label_name. |
| Возбуждает | |
|---|---|
ValueError | Если любой из аргументов имеет неправильный формат. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/data/experimental/make_csv_dataset