对于某些人来说,这应该很容易,但是我对Tensorflow还是有点陌生​​,我的所有研究都使我接触到数千行的gits,我很好奇对于初学者来说是否有更简单的选择。我有一个想法,可以输入200x260的彩色图像,并在1-10之间输出一个热矢量。我意识到它与MNIST非常相似,但是Tensorflow没有有关mnist库如何将其图像转换为可用形式的文档。是否有人想将约200张图像(是的,我知道,很小)的文件夹变成可用的形式?我已经有了我的热门矢量。另外,我将占位符形状设置为tf.placeholder(tf.float32,[None, 200, 260, 3])可以吗?我真的很想同时保持色彩。感谢您的提示!

最佳答案

首先,您可以使用imreadskimage导入所有图像

例如:

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创建的占位符看起来正确。

08-24 14:08