加载 MNIST 数据库时出现问题
Having problems in loading MNIST database
所以我只是想加载 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
文件。
所以,这花了一些时间,但我还是找到了修复方法。
不是使用 scipy 加载 '.mat' 扩展文件,而是使用自动下载器或此代码直接下载数据库:
dataset = datasets.fetch_mldata("MNIST Original")
诀窍是我将外部下载的文件放在缓存文件夹中
scikit,所以它不必下载它。缓存目录的路径是:
~/scikit_learn_data/mldata/
并且您可以通过 Google 搜索从任何地方下载原始 mat 文件。
但我使用了 link :
Link to Download
这可能会或可能不会在 atm 上工作。
所以我只是想加载 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 文件。
所以,这花了一些时间,但我还是找到了修复方法。 不是使用 scipy 加载 '.mat' 扩展文件,而是使用自动下载器或此代码直接下载数据库:
dataset = datasets.fetch_mldata("MNIST Original")
诀窍是我将外部下载的文件放在缓存文件夹中 scikit,所以它不必下载它。缓存目录的路径是:
~/scikit_learn_data/mldata/
并且您可以通过 Google 搜索从任何地方下载原始 mat 文件。
但我使用了 link : Link to Download 这可能会或可能不会在 atm 上工作。