在加载MNIST数据库时遇到问题

时间:2017-05-03 04:58:39

标签: python mnist

所以我只是想加载MNIST数据库(我下载了)并训练 分类器然后将训练会话保存到文件中以供将来使用。我已经尝试直接下载它(通过fetch_mldata),但我的互联网似乎太慢了,所以我试图通过外部下载它读取数据库,但是在代码下面给出了错误。任何帮助将不胜感激!

from sklearn.externals import joblib
from sklearn import datasets
from skimage.feature import hog
from sklearn.datasets import fetch_mldata
from sklearn.svm import LinearSVC
import numpy as np
import mlab
import scipy.io

print 'fetching'
dataset = scipy.io.loadmat('mnist-original.mat')

print 'fetched'
features = np.array(dataset.data, 'int16')
labels = np.array(dataset.target, 'int')
ist_hog_fd = []
for feature in features:
    fd = hog(feature.reshape((28, 28)), orientations=9, pixels_per_cell=(14, 14), cells_per_block=(1, 1), visualise=False)
    list_hog_fd.append(fd)
hog_features = np.array(list_hog_fd, 'float64')
clf=LinearSVC()
clf.fit(hog_features,labels)
joblib.dump(clf, "digits_cls.pkl", compress=3)

当我运行它时,我得到一个错误:

Traceback (most recent call last):
  File "/home/samad/Red_Queen/v2(ud&ay)/scratch2.py", line 14, in <module>
    features = np.array(dataset.data, 'int16')
AttributeError: 'dict' object has no attribute 'data'

老实说,我不知道numpy数组以及处理.mat 文件。

1 个答案:

答案 0 :(得分:0)

所以,花了一些时间,但无论如何我找到了修复。 而不是使用scipy加载&#39; .mat&#39;扩展文件il使用自动下载或此代码直接下载数据库:

dataset = datasets.fetch_mldata("MNIST Original")

,技巧是我将外部下载的文件放在缓存文件夹中 scikit,所以它不必下载它。缓存目录的路径是:

~/scikit_learn_data/mldata/ 

您可以通过Google搜索从任何地方下载原始的mat文件。

但是我使用了这个链接: Link to Download 这可能会或可能不会起作用。

相关问题