Python 将mnist图像读入Tensorflow

Python 将mnist图像读入Tensorflow,python,tensorflow,Python,Tensorflow,我在看 在本教程中,图像以如下方式神奇地读取: mnist = learn.datasets.load_dataset("mnist") train_data = mnist.train.images 我的图像放在两个目录中: ../input/test/ ../input/train/ 它们都有一个*.jpg结尾 那么如何将它们读入我的程序呢 我认为我不能使用learn.datasets.load\u dataset,因为这似乎是一个专门的数据集结构,而我只有带有图像的文件夹。

我在看

在本教程中,图像以如下方式神奇地读取:

mnist = learn.datasets.load_dataset("mnist")
train_data = mnist.train.images
我的图像放在两个目录中:

../input/test/
../input/train/
它们都有一个
*.jpg
结尾

那么如何将它们读入我的程序呢


我认为我不能使用
learn.datasets.load\u dataset
,因为这似乎是一个专门的数据集结构,而我只有带有图像的文件夹。

您需要从数据中创建一个类似的numpy数组,以防您想要运行这段代码。因此,您需要迭代所有图像,作为一个numpy数组,将其展平并创建一个大小为[num\u示例,image\u size]的矩阵

下面的代码段应该可以做到这一点:

import os
import cv2
import numpy as np
def load_data(img_dir):
    return np.array([cv2.imread(os.path.join(img_dir, img)).flatten() for img in os.listdir(img_dir) if img.endswith(".jpg")])
支持调试的更全面的代码:

import os
list_of_imgs = []
img_dir = "../input/train/"
for img in os.listdir("."):
    img = os.path.join(img_dir, img)
    if not img.endswith(".jpg"):
        continue
    a = cv2.imread(img)
    if a is None:
        print "Unable to read image", img
        continue
    list_of_imgs.append(a.flatten())
train_data = np.array(list_of_imgs)
注:
如果图像不是28x28x1(黑白图像),则需要更改神经网络结构(在cnn_model_fn中定义)。本教程中的架构是一个玩具架构,它只适用于像MNIST这样的简单图像。Alexnet可能是RGB图像的良好起点。

您可以查看中给出的答案。最简单的方法是使用tensor flow:提供的实用程序,它可以完成您想要做的事情。

看看:它返回
AttributeError:“NoneType”对象没有属性“flatte”
。由于某些原因,即使我确定指定了正确的文件夹,它也无法查看图像。该文件夹是否包含非JPEG格式的图像?您可以尝试上面更全面的代码来帮助调试cv2返回的图像,也可以尝试更新的一行代码。如果不是从与images相同的目录中执行,则我以前的代码不起作用。链接已断开:(