Spec-Zone.ru › TensorFlow 2.9

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
)

Читает файлы 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 Необязательный булево значение. По умолчанию True. Если ложь, двойные кавычки обрабатываются как обычные символы внутри строковых полей.
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 (Необязательно.) 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/compat/v1/data/experimental/make_csv_dataset

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API