python - 无法使用 sklearn 加载 'mnist-original' 数据集

标签 python scikit-learn mnist

这个问题和问的很相似herehere .不幸的是,就我而言,建议的解决方案并没有解决问题。

我需要使用 MNIST 数据集,但我无法获取它,即使我指定了 scikit_learn_data/mldata/ 的地址文件夹(见下文)。我怎样才能解决这个问题?

如果它可能有帮助,我正在使用 Anaconda。

代码:

from sklearn.datasets.mldata import fetch_mldata

dataset = fetch_mldata('mnist-original', data_home='/Users/michelangelo/scikit_learn_data/mldata/')
mnist = fetch_mldata('MNIST original')

错误:
---------------------------------------------------------------------------
IOError                                   Traceback (most recent call last)
<ipython-input-5-dc4d45bc928e> in <module>()
----> 1 mnist = fetch_mldata('MNIST original')

/Users/michelangelo/anaconda2/lib/python2.7/site-packages/sklearn/datasets/mldata.pyc in fetch_mldata(dataname, target_name, data_name, transpose_data, data_home)
    168     # load dataset matlab file
    169     with open(filename, 'rb') as matlab_file:
--> 170         matlab_dict = io.loadmat(matlab_file, struct_as_record=True)
    171 
    172     # -- extract data from matlab_dict

/Users/michelangelo/anaconda2/lib/python2.7/site-packages/scipy/io/matlab/mio.pyc in loadmat(file_name, mdict, appendmat, **kwargs)
    134     variable_names = kwargs.pop('variable_names', None)
    135     MR = mat_reader_factory(file_name, appendmat, **kwargs)
--> 136     matfile_dict = MR.get_variables(variable_names)
    137     if mdict is not None:
    138         mdict.update(matfile_dict)

/Users/michelangelo/anaconda2/lib/python2.7/site-packages/scipy/io/matlab/mio5.pyc in get_variables(self, variable_names)
    290                 continue
    291             try:
--> 292                 res = self.read_var_array(hdr, process)
    293             except MatReadError as err:
    294                 warnings.warn(

/Users/michelangelo/anaconda2/lib/python2.7/site-packages/scipy/io/matlab/mio5.pyc in read_var_array(self, header, process)
    250            `process`.
    251         '''
--> 252         return self._matrix_reader.array_from_header(header, process)
    253 
    254     def get_variables(self, variable_names=None):

mio5_utils.pyx in scipy.io.matlab.mio5_utils.VarReader5.array_from_header()

mio5_utils.pyx in scipy.io.matlab.mio5_utils.VarReader5.array_from_header()

mio5_utils.pyx in scipy.io.matlab.mio5_utils.VarReader5.read_real_complex()

mio5_utils.pyx in scipy.io.matlab.mio5_utils.VarReader5.read_numeric()

mio5_utils.pyx in scipy.io.matlab.mio5_utils.VarReader5.read_element()

streams.pyx in scipy.io.matlab.streams.FileStream.read_string()

IOError: could not read bytes

最佳答案

不幸的是 fetch_mldata() 在最新版本的 sklearn 中已被替换为 fetch_openml()。
所以,而不是使用:

from sklearn.datasets import fetch_mldata
mnist = fetch_mldata('MNIST original')
您必须使用:
from sklearn.datasets import fetch_openml
mnist = fetch_openml('mnist_784')
x = mnist.data
y = mnist.target
x 的形状将是 = (70000,784)
y 的形状将是 = (70000,)

关于python - 无法使用 sklearn 加载 'mnist-original' 数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47324921/

相关文章:

python - Pyqt Gui 在循环中卡住

python - 如何将列表的字符串转换回 python 中的列表?

python - 训练后如何扩展进入神经网络的新数据

python - MNIST 图像纠偏

python - 使用 UCI 数据集进行 Tensorflow 数据处理

python - 如何将函数 GROUPWISELY 应用于数据框的所有列? (在Python Pandas 中)

Python 将 txt 文件读取到数据框中

python - 通过将 sklearn.predict 传递给 df.apply 对 Pandas 数据帧进行行式预测

performance - cache_size 对 SVC 处理时间的影响

tensorflow - CIFAR10 上是否有任何 Capsnet 实现比普通 CNN 实现更好的准确性?