我使用卷积网络对不同形状的图像进行分类。我找不到在 Tensorflow 中加载图像的方法。基于这个问题 https://github.com/tensorflow/tensorflow/issues/2354它应该与 tf.data.Dataset() 一起使用。我以这种方式创建数据集:
dataset = tf.data.Dataset.from_tensor_slices(filenames)
dataset = dataset.map(read_file)
dataset = dataset.shuffle(samples_in_buffer)
dataset = dataset.batch(batch_size)
dataset = dataset.repeat()
执行时我收到此错误
HandleElementToSlice Cannot copy slice: number of elements does not match. Shapes are: [element]: [295,256,3], [parent slice]: [276,128,3]
是否可以使用 Tensorflow 加载不同尺寸的图像、对其进行随机播放和批处理?
备注:我想使用空间金字塔池来处理不同的图像尺寸。
dataset.batch() 试图从不同大小的张量(不同大小的图像)构建密集批次,如下所述:tf.contrib.data.DataSet批量大小只能设置为1 https://stackoverflow.com/questions/46682855/tf-contrib-data-dataset-batch-size-can-only-set-to-1
如果 1. 您设置 batch_size = 1 或 2. 将所有图像调整为相同大小,您的代码可能会起作用,例如在 read_file 函数中使用 tf.image.resize_image_with_crop_or_pad() 。
另一种选择是使用 dataset.padded_batch(...) 而不是 dataset.batch 并指定 padded_shape ,使所有图像具有相同的大小(包括填充),即可能 dataset.padded_batch(batch_size, padded_shape=[None] )。
最后,在即将推出的 TF r1.4 中,您可能会使用 dataset.from_generator()。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)