Самый эффективный способ анализа набора данных, созданного с помощью petastorm из паркета.

Версии: Python3.7.13, Tensorflow-2.9.1, Petastorm-0.12.1.

Я пытаюсь реализовать структуру загрузки данных, которая создает tf.data.Dataset из паркета, хранящегося в S3, с помощью petastorm.

Создание набора данных следующим образом:

      cols = [col1_nm, col2_nm, ...]
def parse(e):
    x_features = []
    for c in cols:
        x_features.append(getattr(e,c))
    X = tf.stack(x_features, axis=1)
    y = getattr(e, 'target')
    return X, y

with make_batch_reader(s3_paths, schema_fields=cols+['target']) as reader:
    dataset = make_petastorm_dataset(reader).map(parse)
    for e in dataset.take(3):
        print(e)

Все хорошо, но хотелось бы знать, есть ли альтернативный (более эффективный и удобный в обслуживании) способ.

перед анализом набора данных имеет типDatasetV1Adapterи каждый элемент(e) в наборе данных (полученный с помощью dataset.take(1)) имеет типinferred_schema_viewкоторые состоят изEagerTensorдля каждой функции.

Я пробовал использовать индекс для разделения X, y, однако чтение последнего элемента через [-1] не возвращает нетерпеливый тензор цели.

0 ответов

Другие вопросы по тегам