Самый эффективный способ анализа набора данных, созданного с помощью 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] не возвращает нетерпеливый тензор цели.