【问题标题】:How to use feed_dict in slim.learning.train of tensorflow如何在tensorflow的slim.learning.train中使用feed_dict
【发布时间】:2017-09-03 07:27:06
【问题描述】:

我在 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)

因为我的数据是可变大小的,所以很难预先填充一个张量的数据。

有什么方法可以将 feed_dict 与 slim.learning.train() 一起使用?将 feed_dict 作为参数添加到 train_step_fn() 是否正确?如果是,如何?谢谢。

【问题讨论】:

    标签: tensorflow


    【解决方案1】:

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

    将您的数据转换为 tfrecords 是一种更合适的方法。 Here 是转换数据的例子。您可以通过TFRecordReaderparse_example处理数据来处理输出文件。

    【讨论】:

      猜你喜欢
      • 2019-05-22
      • 2017-11-06
      • 2017-08-02
      • 2017-12-21
      • 1970-01-01
      • 1970-01-01
      • 2017-03-21
      • 1970-01-01
      • 2017-03-02
      相关资源
      最近更新 更多