这对某些人来说应该很容易,但我对 Tensorflow 有点陌生,我所有的研究都让我接触了数千行 git,我只是好奇对于初学者来说是否有更简单的替代方案。我有一个想法,输入 200x260 彩色图像并输出 1-10 之间的 one-hot 矢量。我意识到它与 MNIST 非常相似,但 Tensorflow 没有任何关于 mnist 库如何将其图像转换为可用形式的文档。有人有什么想法可以将一个包含大约 200 张图像的文件夹(是的,我知道,很小)变成可用的形式?我已经有了我的独热向量。另外,我将占位符形状设置为 tf.placeholder(tf.float32,[None, 200, 260, 3])
这可行吗?我真的更喜欢保持颜色。感谢您的任何提示!
最佳答案
首先,您可以使用 skimage
中的 imread
导入所有图像
例如:
my_image = skimage.io.imread('./path/myimage.png')
然后,如果它们都达到您想要的大小 (200x260),那么您可以通过将它们全部除以 255(标准化为 0 到 1 之间的值)来标准化它们。如果没有,您可以使用 skimage
中的 resize
,这将自动为您调整图像大小并标准化图像。
例如
my_image = skimage.transform.resize(my_image, (200, 260))
要可视化它,您可以使用 matplotlib.pyplot
中的 imshow
来绘制图像。
对于Tensorflow
中内置的方便的next_batch
函数来获取下一个批处理,您可以使用以下代码
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 - 类似 MNIST 的问题。卷积神经网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48657475/