无法在sklearn中使用LFW数据集

时间:2014-03-24 11:24:31

标签: python scikit-learn

似乎fetch_lfw_people函数不起作用,但我无法理解为什么。

这是测试代码:

In [1]: import numpy as np

In [2]: from sklearn import datasets

In [3]: lfw= datasets.fetch_lfw_people()

IOError                                   Traceback (most recent call last)
<ipython-input-3-1f0795d3f6a9> in <module>()
----> 1 lfw= datasets.fetch_lfw_people()

C:\Python27\lib\site-packages\sklearn\datasets\lfw.pyc in fetch_lfw_people(data_
home, funneled, resize, min_faces_per_person, color, slice_, download_if_missing
)
    270     faces, target, target_names = load_func(
    271         data_folder_path, resize=resize,
--> 272         min_faces_per_person=min_faces_per_person, color=color, slice_=s
lice_)
    273
    274     # pack the results as a Bunch instance

C:\Python27\lib\site-packages\sklearn\externals\joblib\memory.pyc in __call__(se
lf, *args, **kwargs)
    169                           'directory %s'
    170                         % (name, argument_hash, output_dir))
--> 171             return self.call(*args, **kwargs)
    172         else:
    173             try:

C:\Python27\lib\site-packages\sklearn\externals\joblib\memory.pyc in call(self,
*args, **kwargs)
    321         if self._verbose:
    322             print self.format_call(*args, **kwargs)
--> 323         output = self.func(*args, **kwargs)
    324         self._persist_output(output, output_dir)
    325         duration = time.time() - start_time

C:\Python27\lib\site-packages\sklearn\datasets\lfw.pyc in _fetch_lfw_people(data
_folder_path, slice_, color, resize, min_faces_per_person)
    195     target = np.searchsorted(target_names, person_names)
    196
--> 197     faces = _load_imgs(file_paths, slice_, color, resize)
    198
    199     # shuffle the faces with a deterministic RNG scheme to avoid having

C:\Python27\lib\site-packages\sklearn\datasets\lfw.pyc in _load_imgs(file_paths,
 slice_, color, resize)
    149         if i % 1000 == 0:
    150             logger.info("Loading face #%05d / %05d", i + 1, n_faces)
--> 151         face = np.asarray(imread(file_path)[slice_], dtype=np.float32)
    152         face /= 255.0  # scale uint8 coded colors to the [0.0, 1.0] floa
ts
    153         if resize is not None:

C:\Python27\lib\site-packages\scipy\misc\pilutil.pyc in imread(name, flatten)
    100     """
    101
--> 102     im = Image.open(name)
    103     return fromimage(im,flatten=flatten)
    104

C:\Python27\lib\site-packages\PIL\Image.pyc in open(fp, mode)
   1978                 pass
   1979
-> 1980     raise IOError("cannot identify image file")
   1981
   1982 #

IOError: cannot identify image file

1 个答案:

答案 0 :(得分:0)

Try using this to get your images

dataset = fetch_lfw_pairs(subset='train',
                          data_home=None,
                          resize=0.5,
                          color=False,
                          slice_=(slice(70, 195), slice(78, 172)),
                          download_if_missing=True)