Преобразование DatasetV1Adapter в тензоры в Petastorm
Я сохранил свои данные после предварительной обработки и масштабирования в паркетном файле. И теперь я хочу читать эти данные партиями, чтобы обучить свою модель.
Задача, с которой я сталкиваюсь, состоит в том, чтобы преобразовать паркетные данные в тензор. Я до сих пор пробовал 2 подхода:
1-й подход с использованием make_reader/make_batch_reader:
with make_batch_reader('file:///config/workspace/TrainingWithPyspark/scaled.parquet') as reader:
dataset = make_petastorm_dataset(reader).map(lambda x: (tf.convert_to_tensor(x))).batch(5, drop_remainder = True)
print('dataset generate hua')
iterator = dataset.make_one_shot_iterator()
tensor = tf.reshape(iterator.get_next(),(5,1,15))
with tf.Session() as sess:
X_train=sess.run(X_train)
model.fit(X_train, X_train, epochs=1, batch_size=5).history
ошибка, которую я получаю:
как мне прочитать файл паркета, чтобы он не выдавал ошибку после передачи последней партии в модель?
2-й подход с использованием make_spark_converter:
df=spark.read.parquet("/config/workspace/TrainingWithPyspark/scaled.parquet")
spark.conf.set(SparkDatasetConverter.PARENT_CACHE_DIR_URL_CONF, "file:///config/workspace/TrainingWithPyspark/")
converter_train = make_spark_converter(df)
with converter_train.make_tf_dataset(batch_size=2, num_epochs=4, seed=1) as train:
model.fit(train,train)
Ошибка, которую я получаю, находится в model.fit(train,train)
Когда я пытаюсь получить тип данных поезда, я получаю следующий тип данных:
<класс 'tensorflow.python.data.ops.dataset_ops.DatasetV1Adapter'>
ЗначениеОшибка:
Аргумент не поддерживается при использовании набора данных в качестве входных данных.
Это модель обнаружения аномалий, поэтому я подбираю те же данные вместо целевой переменной при подгонке модели.
Таким образом, мне нужна помощь с двумя вещами:
- Выяснение того, что должно быть правильным подходом, make_batch_reader или использование искрового преобразователя.
- Выясните, как получить данные в тензорном формате и обучить модель.