我在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()的正确方法吗?如果有,怎么样?感谢。
答案 0 :(得分:0)
我认为当输入数据大小变化并且很难填充内存时,feed_dict不是一个好方法。
将您的数据转换为tfrecords是一种更合适的方式。 Here是转换数据的示例。您可以按TFRecordReader和parse_example处理数据以处理输出文件。