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. Словарь признаков сопоставляет имена столбцов признаков с 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 из словаря признаков. |
select_columns | Необязательный список целочисленных индексов или имен столбцов, который указывает подмножество столбцов данных CSV для выбора. Если указаны имена столбцов, они должны соответствовать именам, указанным в column_names или полученным из заголовков строк файла. При указании этого аргумента будут анализироваться и возвращаться только подмножество столбцов CSV, соответствующее указанным столбцам. Это приводит к более быстрому анализу и меньшему потреблению памяти. Если оба этот и column_defaults указаны, они должны иметь одинаковую длину, а column_defaults предполагается отсортированным в порядке возрастания индекса столбца. |
field_delim | Необязательный string. По умолчанию ",". Разделитель символов для разделения полей в записи. |
use_quote_delim | Необязательный bool. По умолчанию 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. Обратите внимание, что если seed установлен, то порядок элементов после перемешивания является детерминированным. По умолчанию False. |
num_rows_for_inference | Количество строк файла, используемых для определения типа, если record_defaults не указано. Если None, считываются все строки всех файлов. По умолчанию 100. |
compression_type | (Необязательно.) A 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/compat/v1/data/experimental/make_csv_dataset