使用Sklearn加载本地文件,尝试显示任何图像时返回空

我正在开始一个机器学习项目,在实际构建模型之前,我想先尝试导入我的图像(我保存了一组图像文件,它们是.png格式,如果这有影响的话),然后对它们进行一些操作和调整,以便它们能适应模型。我只是加载这些文件,然后尝试显示它们,但什么也没显示出来。文件路径似乎是正确的,因为第一次尝试时路径错误,返回了一个很大的错误消息,但现在似乎没有问题。我该怎么做才能在加载文件后,运行类似于

data[0]

的代码来查看第一张图像(或图像的详细信息)呢?我的代码如下(我在这个代码上方按照tensorflow指南导入了很多其他东西,所以我认为这不是问题所在,但如果有必要,我可以编辑并添加我的其他导入语句):

import pathlibimport sklearn.datasetsdata_dir = sklearn.datasets.load_files('/Users/USer/Downloads/C4IMAGES/', shuffle='False')data_dir

运行这段代码的输出是:

{'data': [], 'filenames': array([], dtype=float64), 'target_names': [], 'target': array([], dtype=float64), 'DESCR': None}

如果我尝试使用data_dir[0]来查看第一张图像,会得到以下错误消息:

---------------------------------------------------------------------------KeyError                                  Traceback (most recent call last)<ipython-input-48-5541d6af8248> in <module>      2 import sklearn.datasets      3 data_dir = sklearn.datasets.load_files('/Users/USer/Downloads/C4IMAGES/', shuffle='False')----> 4 data_dir[0]KeyError: 0

感谢任何帮助!


回答:

实际上,sklearn.datasets.load_files的文档说明,图像或任何数据文件必须按照以下层次结构放置:

container_folder/
category_1_folder/
file_1.txt file_2.txt … file_42.txt
category_2_folder/
file_43.txt file_44.txt …

我认为你的图像位于路径/Users/USer/Downloads/C4IMAGES/。在这种情况下,你需要创建一个子文件夹,如category 1category 2(如果你的数据没有分类,只需创建一个任意名称的子文件夹,并将所有图像放入该子文件夹中),并将相应类别的图像放入这些子文件夹中。

现在,你可以在load_files函数中传递参数/Users/USer/Downloads/C4IMAGES/,它应该会将你的数据以二进制格式加载到Python列表data_dir['data']中。

然后,你可以将图像从二进制格式转换为numpy数组并显示你的图像:

import ioimport numpy as np    from PIL import Image# decode i'th image using: img = Image.open(io.BytesIO(data_dir.data[i]))img = np.asarray(img)# display i'th imageimport matplotlib.pyplot as pltplt.imshow(img)plt.show()

参考资料:
1. https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_files.html
2. 将作为二进制字符串加载的图像转换为numpy数组

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注