【发布时间】:2014-10-17 10:09:03
【问题描述】:
我正在研究 scikit-learn 库的字典学习,我想根据一系列图像构建字典。我尝试使用MiniBatchDictionaryLearning 的partial_fit 方法,发现它比fit 需要更长的时间。我的代码看起来如何(以 lena 为例):
import numpy as np
from scipy.misc import lena
from sklearn.decomposition import MiniBatchDictionaryLearning
from sklearn.feature_extraction.image import extract_patches_2d
lena = lena()
lena = lena[::2, ::2] + lena[1::2, ::2] + lena[::2, 1::2] + lena[1::2, 1::2]
height, width = lena.shape
patch_size = (7, 7)
data = extract_patches_2d(lena, patch_size)
data = data.reshape(data.shape[0], -1)
dico = MiniBatchDictionaryLearning(n_components=100, n_iter=500,transform_algorithm ='lars', alpha=1,transform_n_nonzero_coefs=5,verbose=1)
dicObj = dico.partial_fit(data)
这需要很长时间才能完成,而如果我将 partial_fit 替换为 fit ... 需要几秒钟。
(我有 scikit-learn 15.2)
这是为什么?
【问题讨论】:
标签: python scikit-learn