tfrecords数据读取

读取tfrecords来输入给网络进行训练,要比直接从照片源文件中读取数据要快的多。

import tensorflow as tf


def read_and_decode(filename, batch_size, capacity, min_after_dequeue):
    filename_queue = tf.train.string_input_producer([filename])
    reader = tf.TFRecordReader()
    _, serialized_example = reader.read(filename_queue)

    features = tf.parse_single_example(
        serialized_example,
        features={
            "label": tf.FixedLenFeature([], tf.int64),
            "img_raw": tf.FixedLenFeature([], tf.string)
        }
    )
    label = features["label"]
    img = features["img_raw"]
    img = tf.decode_raw(img, tf.uint8)
    print("-------------1-------------")
    print(img.shape)

    img = tf.reshape(img, [227, 227, 3])
    print("-------------2-------------")
    print(img.shape)
    img = tf.cast(img, tf.float32)*1.0/255*0.5
    label = tf.cast(label, tf.int32)
    img_batch, label_batch = tf.train.shuffle_batch([img, label],
                                                    batch_size=batch_size,
                                                    capacity=capacity,                                                                          min_after_dequeue=min_after_dequeue)

    return img_batch, label_batch

... prompt'''

你可能感兴趣的:(教程,tensorflow)