fetch_mldata加载mnist-originals数据集踩坑

踩坑1:sklearn导包一直无法成功

原因1:sklearn,scikit-learn,numpy,scipy这几个包以及对应版本都要下载好,用pip insatll 下载包名,即可自动下载当前最高匹配版本。
原因2:pycharm中建立项目有问题,可能项目用的是Pycharm虚拟机针对本项目而配置的包,故可被引用的包范围不是本机安装包的范围。
fetch_mldata加载mnist-originals数据集踩坑
在此处选择本机本地安装的Python解释器即可。

踩坑2:
没有fetch_mldata这个方法,那是因为当前sklearn版本过高
把sklearn以及相关模块进行降低版本即可,降低一个版本,其他包pip时会自动下载相对应匹配的版本。

踩坑3:
加载不到本地数据集,报错socket相关错误。
经过查看报错信息可以知道,当传入的文件路径不存在时,mldata会访问mldata.org网站自行下载相应数据集,所以是在链接网络时出现问题,查看源码如下图。
fetch_mldata加载mnist-originals数据集踩坑
所以查找文件路径的错误,继续查看源码
fetch_mldata加载mnist-originals数据集踩坑
可以知道,此程序在data_home下会自动产生一个叫做mldata的文件夹,其filename是data_home+mldata+dataname
故,我们应当把数据集放在本地文件夹data_home下的mldata中,即可加载到对应文件。
fetch_mldata加载mnist-originals数据集踩坑

再遇到坑再进行补充。