Чтение TensorFlow TFRecordDataset завершится неудачно, если я перезапущу свой блокнот Jupyter - PullRequest
0 голосов
/ 09 апреля 2019

Я генерирую некоторые tf.train.dataset, используя генератор (то есть from_generator()), а затем я сериализую его и сохраняю в файле, когда я загружаю его снова и анализирую через parse_example, это работает, но если я закрываю свой Юпитер сервер, а затем прочитать файл TFRecord, это не удается, и я не понимаю, почему. Кто-нибудь видел эту ошибку ?:

InvalidArgumentError: Key: wing4.  Can't parse serialized Example.
[[{{node ParseSingleExample/ParseSingleExample}}]]
[[IteratorGetNext]]

During handling of the above exception, another exception occurred:

Я жалуюсь, что ключа там нет, похоже, он не может разобрать сериализованный образец.

Вот некоторые из моих функций:

def create_example(row):
    features = {
        'wing1': _float_feature(values=row['wing1']),
        'wing2': _float_feature(values=row['wing2']),
        'wing3': _float_feature(values=row['wing3']),
        'wing4': _float_feature(values=row['wing4']),
    }

    return tf.train.Example(features=tf.train.Features(feature=features))


def create_records(gene, annotations, lds, record_path, train=True):
    with tf.python_io.TFRecordWriter(record_path) as writer:
        generator = data_generator(gene, annotations, lds, train)()    

        for row in generator:
            example = create_example(row)
            writer.write(example.SerializeToString())


def parse_function(example_proto):
    features = {
        'wing1': tf.FixedLenFeature([num_features], tf.float32),
        'wing2': tf.FixedLenFeature([num_features], tf.float32),
        'wing3': tf.FixedLenFeature([num_features], tf.float32),
        'wing4': tf.FixedLenFeature([num_features], tf.float32),
    }


    return  tf.parse_single_example(example_proto, features)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...