Tensorflow 类似MNIST的问题。卷积神经网络

Tensorflow 类似MNIST的问题。卷积神经网络,tensorflow,machine-learning,neural-network,computer-vision,mnist,Tensorflow,Machine Learning,Neural Network,Computer Vision,Mnist,这对一些人来说应该很容易,但我对Tensorflow有点陌生,我所有的研究都让我想到了数千行Git,我只是好奇对于初学者来说是否有更简单的选择。我有一个想法,输入200x260彩色图像,输出1-10之间的一个热向量。我意识到它与MNIST非常相似,但Tensorflow没有任何关于MNIST库如何将其图像转换为可用形式的文档。有人有没有想法把一个包含200张左右图片(是的,我知道,很小)的文件夹变成一个可用的形式?我已经有一个热向量了。另外,我将占位符形状设置为tf.placeholder(tf

这对一些人来说应该很容易,但我对Tensorflow有点陌生,我所有的研究都让我想到了数千行Git,我只是好奇对于初学者来说是否有更简单的选择。我有一个想法,输入200x260彩色图像,输出1-10之间的一个热向量。我意识到它与MNIST非常相似,但Tensorflow没有任何关于MNIST库如何将其图像转换为可用形式的文档。有人有没有想法把一个包含200张左右图片(是的,我知道,很小)的文件夹变成一个可用的形式?我已经有一个热向量了。另外,我将占位符形状设置为
tf.placeholder(tf.float32[None,200260,3])
这样行吗?我真的更喜欢保持颜色。谢谢你的提示

首先,您可以使用
imread
skimage

例如:

my_image = skimage.io.imread('./path/myimage.png')
然后,如果它们都是您想要的大小(200x260),那么您可以通过将它们全部除以255(标准化为0到1之间的值)来标准化它们。如果没有,您可以使用
浏览
中的
调整大小
,这将为您自动调整图像大小并使其正常化

比如说

my_image = skimage.transform.resize(my_image, (200, 260))
要使其可视化,可以使用
imshow
from
matplotlib.pyplot
来打印图像

为了方便地获取下一批内置的
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
创建的占位符看起来不错。

一开始我也在努力解决这个问题,但我知道将数据转换为tensorflow的最佳方法是将图像转换为tfRecord格式。特别是如果您有一个不适合RAM的大型数据集。这样,tensorflow就可以根据需要加载数据(您需要提供输入函数来将文件转换回来)。 虽然这可能不是/当然不是最简单的方法,但从长远来看,如果您想添加更多图像,这可能是最好的方法


最简单的方法就是使用pillow或任何其他图像库(我假设您使用的是python的tensorflow)加载图像,并在运行会话时将其交给tensorflow。

Wow。这是我得到的最快的回应。也正是我想要的。非常感谢。没问题,我还添加了一些示例代码,甚至更好。:)我用skimage开始了一个小测试,我使用pip下载了它(然后是网站试图修复错误),但不幸的是,我得到了错误
回溯(最后一次调用):文件“imgtest.py”,第4行,在image=skimage.io.imread('./shoes/1.jpg')中AttributeError:模块“skimage”没有属性“io”
有什么想法吗?似乎我能用scipy.misc得到类似的东西。一切都好!那很有趣。我一定要试试,因为这个实验是成功的。我想我会研究更大的数据集,这样肯定会有帮助。谢谢