tf.compat.v1.data.experimental.make_csv_dataset
Читает файлы CSV в набор данных.
tf.compat.v1.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. Словарь признаков сопоставляет имена столбцов признаков с Tensors, содержащими соответствующие данные признаков, а метки — это 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 или 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. Словарь признаков сопоставляет имена столбцов признаков с Tensors, содержащими данные соответствующих столбцов, а метки — это 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/compat/v1/data/experimental/make_csv_dataset