Как загрузить набор данных tfrecord в модель keras - PullRequest
1 голос
/ 14 марта 2020

У меня проблема с загрузкой данных из файла tfrecord в keras.

Ситуация такая: у меня есть файл в формате tfrecord, этот файл содержит много пар значений A и B .

Теперь я хочу загрузить значения типа A в мою модель keras, выполнить некоторые преобразования и тому подобное, а затем сравнить выходные данные моей модели со значениями типа B. Затем я хочу минимизировать средний квадрат ошибка между выходными данными модели и значениями типа B. Для всего этого важно, чтобы пары значений оставались «синхронизированными» вместе.

Документация на сайте тензорного потока касается только подачи всего набора данных в Керас, а не с подачи одной части в модель, а затем сравнивать выходные данные и другую часть.

Может кто-нибудь указать мне примеры того, как это сделать, или объяснить это?

1 Ответ

0 голосов
/ 17 марта 2020

Для первого вопроса при загрузке одной части набора записей TF в модель Keras вы можете сделать это, проанализировав 'feature' часть набора данных (если TFRecord находится в метке компонента пар) .

Обратите внимание, что это также зависит от того, как создается запись TF.

ie.

raw_train_dataset = tf.data.TFRecordDataset('PATH TO TFRECORD')

# Create a dictionary describing the features.
feature_description = {
    'label': tf.io.FixedLenFeature([], tf.int64),
    'features': tf.io.FixedLenFeature([], tf.string),
}

def _parse_function(example_proto):
  # Parse the input tf.Example proto using the dictionary above.
  return tf.io.parse_single_example(example_proto, feature_description)

parsed_dataset = raw_train_dataset.map(_parse_function)

for tfrecord_features in parsed_dataset:
  data_raw = tfrecord_features['features'].numpy()
  print(tf.io.decode_raw(data_raw, tf.int64))  // Decode your values into correct data type

   /*** Do whatever you want ***/

Для второго это должно быть почти таким же на первом, поскольку вам нужно только сравнить значения между обработанными значениями «функций». Вы можете попробовать загрузить набор данных записи TF с помощью функции, а затем вернуть пару «Характеристика и метка».

Что касается третьего вопроса, можете ли вы подробнее рассказать о том, чего именно вы хотите достичь, поскольку вы, возможно, сможете сделать это после того, как сделать первый и второй ответ.

...