将不同尺寸的JPG加载到numpy.Array-值 - valueerror:发现的输入变量,示例数量不一致



我有一个文件夹,其中包含不同尺寸的JPG映像,我想从中生成火车和通过sklearn.model_selection.train_testrongplit()的swime and test集。
到目前为止,这是我的代码:

helper = list()
y = list()
for path, subdirs, files in os.walk(inputDir):
    for s in subdirs:
        y.append(s)
    for f in files:
        img_path = os.path.join(path,f)
        pixels = Image.open(img_path).getdata()
        helper.append(pixels)
 x = np.asarray(helper)
 x_train, x_test, y_train, y_test = train_test_split(x,y) #error occurs here

我收到以下错误消息:

文件" gettraintestset.py",第57行,在getTraintestset中 x_train,x_test,y_train,y_test = train_testrongplit(x,y)
文件"/usr/local/lib/python2.7/dist-packages/sklearn/model_selection/_split.py",第1689行,在trib_testrongplit中 数组=索引(*数组)
文件"/usr/local/lib/python2.7/dist-packages/sklearn/utils/validation.py",第206行,在可索引中 check_consistent_length(*结果)
文件"/usr/local/lib/python2.7/dist-packages/sklearn/utils/validation.py",第181行,在check_consistent_length "样品:%r"%[int(l)长度])
ValueError:发现的输入变量,示例数不一致:[120,0]

请帮助我解决此问题。

预先感谢!


编辑:我以一种不会与train_testrongplit()函数混乱的方式弄清楚了如何进行操作:

y = list()
helpers = list()
for path, subdirs, files in os.walk(inputDir):
    for s in subdirs:
        files = glob.glob(inputDir+ s + '/*.jpg')
        helpers.append(np.array([np.array(Image.open(f)) for f in files]))
        y.append(s)
x = np.array([np.array(h) for h in helpers])
x_train, x_test, y_train, y_test = train_test_split(x,y)

我相信问题是len(y)x.shape[0]必须相等。我的最终X具有形状(4,),因为我有4个子目录,总共有图像文件。

感谢大家的输入!

x应该是大小的二维数组[no_of_samples,no_of_features]。这样做:

x = np.atleast_2d(x).T

相关内容

  • 没有找到相关文章

最新更新