如何在tensorflow的slim.learning.train中使用feed_dict

时间:2017-09-02 06:57:13

标签: tensorflow

我在tf-slim-mnist中读了一个例子,并在Google中读了一两个答案,但是所有这些答案都将数据提供给“图像”张量和来自已经填满的数据的“标签”张量。例如,在tf-slim-mnist中,

# load batch of dataset
images, labels = load_batch(
    dataset,
    FLAGS.batch_size,
    is_training=True)

def load_batch(dataset, batch_size=32, height=28, width=28, is_training=False):
    data_provider = slim.dataset_data_provider.DatasetDataProvider(dataset)

    image, label = data_provider.get(['image', 'label'])

    image = lenet_preprocessing.preprocess_image(
        image,
        height,
        width,
        is_training)

    images, labels = tf.train.batch(
        [image, label],
        batch_size=batch_size,
        allow_smaller_final_batch=True)

    return images, labels

另一个例子,在tensorflow github问题#5987,

graph = tf.Graph()
with graph.as_default():
    image, label = input('train', FLAGS.dataset_dir)
    images, labels = tf.train.shuffle_batch([image, label], batch_size=FLAGS.batch_size, capacity=1000 + 3 * FLAGS.batch_size, min_after_dequeue=1000)
    images_validation, labels_validation = inputs('validation', FLAGS.dataset_dir, 5000)
    images_test, labels_test = inputs('test', FLAGS.dataset_dir, 10000)

因为我的数据大小可变,所以事先很难填满数据量。

有没有办法在slim.learning.train()中使用feed_dict?这是将feed_dict作为参数添加到train_step_fn()的正确方法吗?如果有,怎么样?感谢。

1 个答案:

答案 0 :(得分:0)

我认为当输入数据大小变化并且很难填充内存时,feed_dict不是一个好方法。

将您的数据转换为tfrecords是一种更合适的方式。 Here是转换数据的示例。您可以按TFRecordReaderparse_example处理数据以处理输出文件。