Как мне разобрать tfrecords?

После этого руководство по синтаксическому анализу tfrecords Я обнаружил ошибку при запуске model.fit:
AbortedError: Session 581cc3040540fb5e is not found.
После this Stack question Я думаю, что возникла проблема с моим tfrecords синтаксическим анализом.
Мой текущий код для просмотра записей:

count = 0
for example in tf.python_io.tf_record_iterator(train_filenames[0]):
    print(tf.train.Example.FromString(example))
    count +=1
    if count >5:
        break

Выходы:

features {
  feature {
    key: "filename"
    value {
      bytes_list {
        value: "BM.jpg"
      }
    }
  }
  feature {
    key: "f"
    value {
      bytes_list {
        value: "\211P

}
    }
  }
  feature {
    key: "label"
    value {
      int64_list {
        value: 0
      }
    }
  }
}

Код, который я использую для его анализа:

AUTO = tf.data.experimental.AUTOTUNE
image_size = [224,224]
def read_tfrecord(tf_record):
    features = {
        "filename": tf.io.FixedLenFeature([], tf.string), # tf.string means bytestring
        "fundus": tf.io.FixedLenFeature([], tf.string),  
        "label": tf.io.VarLenFeature(tf.float32),
    }
    tf_record = tf.parse_single_example(tf_record, features)

    filename = tf.image.decode_jpeg(tf_record['filename'], channels=3)
    filename = tf.cast(filename, tf.float32) / 255.0  # convert image to floats in [0, 1] range
    filename = tf.reshape(filename, [*image_size, 3]) # explicit size will be needed for TPU

    label = tf.cast(tf_record['label'],tf.float32)

    return filename, label

def load_dataset(filenames):
    option_no_order = tf.data.Options()
    option_no_order.experimental_deterministic = False

    dataset = tf.data.Dataset.from_tensor_slices(filenames)
    dataset = dataset.with_options(option_no_order)
    #dataset = tf.data.TFRecordDataset(filenames, num_parallel_reads=16)
    dataset = dataset.interleave(tf.data.TFRecordDataset, cycle_length=32, num_parallel_calls=AUTO) # faster
    dataset = dataset.map(read_tfrecord, num_parallel_calls=AUTO)
    return dataset

Есть ли проблема в том, как я это разбираю?


person new_one    schedule 29.08.2019    source источник