SPAMS稀疏建模工具箱

2021-06-23 08:20:38 字數 1945 閱讀 3914

spams是一種稀疏優化工具箱,可以進行字典學習和矩陣稀疏分解等。提供了matlab、r語言和python三種介面,下邊說一下,在windows系統下的配置。

基本配置環境:matlab 2010a,vs2010和xp系統

2.、將其新增進matlab目錄中。

3、配置mex編譯器,詳見:

4、修改spams配置檔案compile.m

編譯器配置,gcc修改為mex

%%%%%%%%%%%%% compiler configuration %%%%%%%%%%%%%%%%

compiler='mex';

多執行緒配置,因為相容性問題,改為false

%%%%%%%%%%%% multithreading configuration %%%%%%%%%%%%%%

use_multithread=false;

考慮速度問題,將use_64bits_integers設為alse,大矩陣的時候用true。

其他的保持不變。

5、進入matlab命令視窗,輸入compile,進行編譯,會報出一堆warning,作為一名程式設計師,直接無視。

下邊貼一段測試**,**放在test_release資料夾下,詳見

% test_traindl_gj.m:測試mextraindl函式

clcclear

close all

i = double(imread('..\data\lena.png'))/255;

i = imresize(i,0.25);%scale

x = im2col(i,[8,8],'sliding');% extract 8*8 patches

x = x-repmat(mean(x),[size(x,1) 1]);% substract the mean

x = x./repmat(sqrt(sum(x.^2)),[size(x,1) 1]);% normination

param.k = 256; % learn a dictionary with 100 elements

param.lambda = 0.15;

param.numthreads = -1; % number of threads

param.batchsize = 400;

param.verbose = false;

param.iter = 100; %iteration times

ticd = mextraindl(x,param);

t = toc;

fprintf('time of comptation for dictionary learning: %f\n',t);

fprintf('evaluating cost functions ...\n');

alpha = mexlasso(x,d,param);

r = mean(0.5*sum((x-d*alpha).^2)+param.lambda*sum(abs(alpha)));

imd = displaypatches(d);

imagesc(imd);

colormap('gray');

fprintf('objective function: %f\n',r);

最後的測試結果如下:

指標如下

time of comptation for dictionary learning: 13.248159

evaluating cost functions ...

objective function: 0.207007

enfp工具箱怎麼用 隱喻 你的工具箱

分享一些在心理諮詢中好用的隱喻。在幫助家庭學習新的溝通方式時,我喜歡 工具箱 這個隱喻。顧名思義,工具箱裡裝著各種各樣的工具,不同工具適用於不同場合。有些工具你裝備了未必用得上,但你不會嫌工具太多。學習一種新的方式,彷彿就要替換掉舊的方式。他會擔心失去一些東西,喚起取捨的焦慮。比如,教乙個人拒絕別人...

大資料 工具箱

當前,整個網際網路正在從it時代向dt時代演進,大資料技術也正在助力企業和公眾敲開dt世界大門。當今 大資料 一詞的重點其實已經不僅在於資料規模的定義,它更代表著資訊科技發展進入了乙個新的時代,代表著 性的資料資訊給傳統的計算技術和資訊科技帶來的技術挑戰和困難,代表著大資料處理所需的新的技術和方法,...

libsvm工具箱使用

libsvm工具箱安裝 讀入變數利用svmtrain訓練得模型,利用svmpredict訓練得 結果 model svmtrain x norm 6 x norm 1 5 predicted label,accuracy,decision values svmpredict y norm 6 y n...