tf.data.experimental.make_csv_dataset
Читает 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,
encoding='utf-8'
)
Используется в блокнотах
| Используется в руководстве | Используется в учебных материалах |
|---|---|
Читает 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))
Дополнительные примеры использования make_csv_dataset для чтения данных CSV приведены в руководстве по загрузке данных CSV.
| Аргументы | |
|---|---|
file_pattern | Список файлов или шаблонов путей к файлам, содержащим записи CSV. Правила составления шаблонов см. в разделе tf.io.gfile.glob. |
batch_size | Целое число, задающее количество записей для объединения в один пакет. |
column_names | Необязательный список строк, соответствующих столбцам CSV в указанном порядке. По одной строке на каждый столбец входной записи. Если список не задан, имена столбцов определяются по первой строке записей. Эти имена становятся ключами словаря признаков каждого элемента набора данных. |
column_defaults | Необязательный список значений по умолчанию для полей CSV. По одному элементу на каждый выбранный столбец входной записи. Каждый элемент списка должен быть допустимым типом данных CSV (float32, float64, int32, int64 или string) либо Tensor одного из указанных типов. Тензор может быть скалярным значением по умолчанию (если столбец необязательный) или пустым тензором (если столбец обязательный). Если вместо тензора указан тип данных, столбец также считается обязательным. Если список не задан, типы определяются при чтении первых num_rows_for_inference строк указанных файлов; при этом предполагается, что все столбцы необязательные, а значением по умолчанию для числовых значений является 0, а для строковых — "". Если заданы и этот аргумент, и select_columns, их длины должны совпадать, а column_defaults должен быть отсортирован по возрастанию индексов столбцов. |
label_name | Необязательная строка, соответствующая столбцу меток. Если она задана, данные этого столбца возвращаются отдельно от словаря признаков в виде Tensor. |
select_columns | Необязательный список целочисленных индексов или имен столбцов, задающий подмножество столбцов данных CSV для выбора. Если указаны имена столбцов, они должны соответствовать именам, заданным в column_names или определенным по строкам заголовка файла. Если задан этот аргумент, разбирается и возвращается только указанное подмножество столбцов CSV. Это ускоряет разбор и снижает потребление памяти. Если заданы и этот аргумент, и column_defaults, их длины должны совпадать, а column_defaults должен быть отсортирован по возрастанию индексов столбцов. |
field_delim | Необязательный string. Значение по умолчанию — ",". Символ-разделитель полей в записи. |
use_quote_delim | Необязательное логическое значение. По умолчанию — True. Если значение равно false, двойные кавычки считаются обычными символами внутри строковых полей. |
na_value | Дополнительная строка, распознаваемая как NA/NaN. |
header | Логическое значение, указывающее, соответствуют ли первые строки предоставленных CSV-файлов строкам заголовка с именами столбцов и следует ли исключить их из данных. |
num_epochs | Целое число, задающее количество повторений набора данных. Если значение равно None, набор данных циклически повторяется бесконечно. |
shuffle | Логическое значение, указывающее, нужно ли перемешивать входные данные. |
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. |
encoding | Кодировка для чтения. По умолчанию — UTF-8. |
| Возвращает | |
|---|---|
Набор данных, каждый элемент которого представляет собой кортеж (признаки, метки), соответствующий пакету из 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/api_docs/python/tf/data/experimental/make_csv_dataset