对于某些人来说,这应该很容易,但是我对Tensorflow还是有点陌生,我的所有研究都使我接触到数千行的gits,我很好奇对于初学者来说是否有更简单的选择。我有一个想法,可以输入200x260的彩色图像,并在1-10之间输出一个热矢量。我意识到它与MNIST非常相似,但是Tensorflow没有有关mnist库如何将其图像转换为可用形式的文档。是否有人想将约200张图像(是的,我知道,很小)的文件夹变成可用的形式?我已经有了我的热门矢量。另外,我将占位符形状设置为tf.placeholder(tf.float32,[None, 200, 260, 3])
可以吗?我真的很想同时保持色彩。感谢您的提示!
最佳答案
首先,您可以使用imread
从skimage
导入所有图像
例如:
my_image = skimage.io.imread('./path/myimage.png')
然后,如果所有尺寸均符合所需大小(200x260),则可以通过将它们除以255(规格化为0到1之间的值)来对其进行规格化。如果没有,您可以使用
resize
中的skimage
,它将自动为您调整图像大小并对其进行规范化。例如
my_image = skimage.transform.resize(my_image, (200, 260))
要使其可视化,可以使用
imshow
中的matplotlib.pyplot
绘制图像。为了方便地获取
next_batch
内置的下一个批处理的Tensorflow
函数,可以使用以下代码i = 0
def next_batch(batch_size):
x = training_images[i:i + batch_size]
y = training_labels[i:i + batch_size]
i = (i + batch_size) % len(training_images)
return x, y
然后,您可以创建CNN并训练图像。您为
X
创建的占位符看起来正确。