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

标签 python machine-learning scikit-learn

我正在启动一个 ML 项目,在真正制作模型之前,我想尝试导入我的图像(我有一个仅保存图像的文件,如果重要的话它们是 .png)并使用它们并操纵它们,使它们适合模型。我所做的就是加载文件,然后尝试显示它们,但它没有显示任何内容。文件路径似乎是正确的,因为我第一次尝试它是错误的,并给出了一个大错误消息,但现在似乎没有这样做。我如何获得它,以便当我加载文件时,我可以运行类似

data[0]

并查看第一张图像(或图像的详细信息)。我的代码如下(我从该代码上方的 tensorflow 指南中导入了很多其他内容,所以我认为不是这样,但如果有必要,我可以在其他导入中进行编辑):

import pathlib
import sklearn.datasets
data_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 io
import 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 image
import matplotlib.pyplot as plt

plt.imshow(img)
plt.show()

引用文献:
1.https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_files.html
2.Convert image loaded as binary string into numpy array

关于python - 使用Sklearn加载本地文件,尝试显示任何图像返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59147049/

相关文章:

python - gcloud ml-engine 本地预测 RuntimeError : Bad magic number in . pyc 文件

python - 如何将新字典名称作为参数传递给 Python 中的函数?

python - 从C++代码运行python脚本并在c++中使用pythons输出

machine-learning - Keras中的initial_epoch是什么意思?

python - 在 pytorch 中计算 `loss.backward` 的多重损失性能吗?

python - 正则表达式:在计算中提取功率

python - 使用 scikit-learn 实现 skip gram?

scikit-learn - sklearn kmeans 方法中的 precompute_distances 做什么?

python - 使用spark ML 2.2.0中的sklearn-python模型进行预测

python-2.7 - Scikit-learn KNN 中的归一化