Создать набор данных Tensorflow на основе примеров

#tensorflow

#tensorflow

Вопрос:

Я следую этому руководству:https://medium.com/mostly-ai/tensorflow-records-what-they-are-and-how-to-use-them-c46bc4bbb564

и я создал некоторые из них SequentialExamples , как я могу создать tf.data.Dataset из них?

У меня есть одномерный список значений фондового рынка на Python, и я хочу в конечном итоге передать нейронной сети значения t1, t2, t3 и заставить ее предсказывать t4 и t5. Я вызову следующий метод и создам множество примеров, где X — входные данные, а Y — прогнозирование.

 def make_example(x=[1,2,3], y=[1,2]):
  x_feature = [tf.train.Feature(float_list=tf.train.FloatList(value=x))]
  y_feature = [tf.train.Feature(float_list=tf.train.FloatList(value=y))]

  x_flist = tf.train.FeatureList(feature=x_feature)
  y_flist = tf.train.FeatureList(feature=y_feature) 

  feature_lists = tf.train.FeatureLists(feature_list={
      "input_x": x_flist,
      "output_y": y_flist
  })

  example = tf.train.SequenceExample(feature_lists=feature_lists)
  print(example)
  return example
  

Я хочу создать tf.data.Dataset из списка Python tf.train.SequenceExample .

Комментарии:

1. Привет, jdoe. Попробуйте дать немного больше контекста. Приведите примеры кода, если у вас уже что-то есть. Это облегчает людям оказание вам помощи.

2. Спасибо за ваш комментарий, скоро будет обновление.

3. @H4kor обновлено, вы можете взглянуть сейчас?

Ответ №1:

Вам нужно открыть writer

 writer = tf.python_io.TFRecordWriter(file_name.tfrecords)
example = tf.train.SequenceExample(feature_lists=f_lists)
writer.write(example.SerializeToString())
writer.close()
  

Затем создайте функцию синтаксического анализа

 def parse_fn(example):
    example_features = {"input_x": x_flist,
                        "output_y": y_flist}
    parsed = tf.parse_single_example(serialized=example, features=example_features)

    return input_x, output_y
  

Затем создайте набор данных

 dataset = tf.data.TFRecordDataset(file_name.tfrecords)
dataset = dataset.shuffle().repeat()
dataset = dataset.map(parse_fn)
  

https://www.tensorflow.org/guide/datasets

Комментарии:

1. Итак, если я хочу создать набор данных, я всегда: 1. Создаю примеры в оперативной памяти, 2. Сохраняю примеры на диске, 3. Считываю примеры с диска? Это звучит неэффективно вы знаете, почему мы делаем это таким образом?

2. Создание tfrecord — это, конечно, одноразовая операция. В зависимости от ваших данных, это может занять время