操作环境; ubuntu ; anaconda_jupyter notebook;?
本人在? 深入浅出python机器学习9.3节,遇到题目中的错误,代码如下
# 导入数据集获取工具
from sklearn.datasets import fetch_lfw_people
# 载入人脸数据集
faces = fetch_lfw_people(min_faces_per_person=20, resize=0.8)
image_shape = faces.images[0].shape
# 将照片打印出来
fig, axes = plt.subplots(3, 4, figsize=(12, 9), subplot_kw={'xticks':(), 'yticks':()})
for target, image, ax in zip(faces.target, faces.images, axes.ravel()):
ax.imshow(image, cmap=plt.cm.gray)
ax.set_title(faces.target_names[target])
# 显示图像
plt.show()
发生错误的原因是:课本中的代码是基于windows环境下的运行的,代码执行时会下载数据集,由于我是在ubuntu 环境下的 ,下载的数据集是 .tgz格式,数据集文件会下载到 scikit_learn_data 文件夹中。
问题在哪呢 看看代码这一句
for target, image, ax in zip(faces.target, faces.images, axes.ravel()):
ax.imshow(image, cmap=plt.cm.gray)
zip? ?看到了没,我们看看文件夹scikit_learn_data下的lfw_home文件夹内部的文件,
没有zip 文件,就是这个问题。
解决办法:本着不改变代码的原则? ?,我们将文件夹中的? lfw_funneled? 文件夹压缩一个zip格式的压缩包? ?再执行代码? 就不会报错了。
?
?
|