SPAMS (SPArse Modeling Software)是一个为解决各种稀疏估计问题的开源优化工具箱,其主页为http://spams-devel.gforge.inria.fr/index.html ,其可实现的功能如下:

Dictionary learning and matrix factorization (NMF, sparse PCA, …) 字典学习与矩阵分解,如(NMF非负矩阵分解,sparse PCA稀疏PCA,…)

Solving sparse decomposition problems with LARS, coordinate descent, OMP, SOMP, proximal methods 使用LARS、快速下降法、OMP(Orthogonal Matching Pursuit,正交匹配追踪)、SOMP等算法解决稀疏分解问题

Solving structured sparse decomposition problems (l1/l2, l1/linf, sparse group lasso, tree-structured regularization, structured sparsity with overlapping groups,…). 解决结构化稀疏分解问题

由于这个工具箱给出的是c++代码,所以需要编译才能最终使用。也正因为如此,这个工具箱实现的算法在执行时是很快的,而且可以移植到各种平台使用。

这个工具箱网上很多人有提到,都说编译时出现问题,我的电脑也不例外,下面稍微总结一下它的安装及使用情况。

我的电脑环境:win8 64位,matlab2012b,VS2010\2012

对于安装,下载安装包,解压到一个文件夹,如下图,解压后有不少文件、文件夹,其中的doc_spams.pdf是一个详尽的使用说明,介绍了各个函数接口如何使用(每个函数都有一个测试文件供测试,在test_release文件夹中)。

导入matlab—set path

执行命令:mex -setup

然后n—-y——y——-y

出现上面,恭喜您的第一步已经成功了

对于安装,在HOW_TO_INSTALL.txt中有简单说明,啰嗦了半天就是说使用compile.m进行文件编译,对于不同的计算机,配置都在这个文件中调整,所以使用matlab打开compile.m文件。

修改compile.m

见下图

接下来最重要的修改,不然一直文件找不到

原来

‘-I.\linalg -I.\decomp -I.\prox -I.\dictLearn dictLearn/mex/mexArchetypalAnalysis.cpp’, 为linux系统目录

改成你的文件所在目录

这样compile.m就修改好了。

执行compile.m文件,就会在build目录下生成很多编译后文件。

测试生成字典

clc

clear

close all

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

I = imresize(I, 0.25); % 图片太大,运行时间过长,所以缩放一下

X=im2col(I,[8 8],'sliding'); % extract 8 x 8 patches

X=X-repmat(mean(X),[size(X,1) 1]); % 减均值

X=X ./ repmat(sqrt(sum(X.^2)),[size(X,1) 1]); % 标准化

param.K=256; % learns a dictionary with 100 elements

param.lambda=0.15;

param.numThreads=-1; % number of threads

param.batchsize=400;

param.verbose=false;

param.iter=1000; % 迭代次数,原始是1000,效果好但时间过长,这里减为100

tic

D = mexTrainDL(X,param);

t=toc;

fprintf('time of computation for Dictionary Learning: %f\n',t);

fprintf('Evaluating cost function...\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);

成功如下效果:

matlab spams工具箱,matlab---SPAMS稀疏建模工具箱相关推荐

  1. Matlab数学建模工具箱(mathmodl),国赛必备

    数学建模国赛马上开始了,给正在准备参赛的小伙伴推荐一个学习数学建模MATLAB的一个工具箱-->mathmodl matlab数学建模工具箱,里面有一些数学建模常用算法或函数的matlab程序和 ...

  2. matlab工具箱设置学习率_MATLAB金融工具箱:06:统计套利的机器学习2:特征工程和模型开发...

    本示例创建了限价订单(LOB)动力学的连续时间马尔可夫模型,并根据数据中观察到的模式开发了用于算法交易的策略.它是有关用于统计套利的机器学习的一系列相关示例的一部分(请参阅机器学习应用程序). 探索性 ...

  3. 工具箱 matlab,最全的Matlab工具箱分享

    Gerald Recktenwald <Numerical Methods with MATLAB>(NMM1.5数值分析工具箱) Dahua Lin<Statistical Lea ...

  4. 看不懂matlab工具箱,matlab /simulink 各个工具箱的简单介绍 入门请看

    所谓Matlab工具箱就是一些M文件的集合, 用户可以修改工具箱中的函数,更为重要的是用户可以通过编制M文件来任意地添加工具箱中原来没有的工具函数.此功能充分体现了matlab语言的开放性.许多的专业 ...

  5. matlab中调用cplex 以及使用 Yalmip 工具箱

    matlab中调用cplex 以及使用 Yalmip 工具箱_天天向上的专栏-CSDN博客_matlab调用cplex CPLEX 在matlab中实现的一个例子-RCPSP_starry0001的博 ...

  6. matlab 2010 工具箱,Matlab2010下使用FULLBNT工具箱實現簡單的靜態貝葉斯網絡及推理...

    基於matlab的貝葉斯網絡工具箱BNT是kevin p.murphy基於matlab語言開發的關於貝葉斯網絡學習的開源軟件包,提供了許多貝葉斯網絡學習的底層基礎函數庫,支持多種類型的節點(概率分布) ...

  7. MATLAB函数gensurf,MATLAB模糊逻辑工具箱函数.ppt

    1 MATLAB模糊逻辑工具箱简介 2 利用模糊逻辑工具箱建立模糊推理系统 3 MATLAB模糊逻辑工具箱的图形用户界面 4 基于Simulink的模糊逻辑的系统模块 5.2.5 模糊推理计算与去模糊 ...

  8. matlab中英文对照表,Matlab工具箱中英文对照

    Matlab工具箱中英文对照 Matlab2010工具箱中英文对照 matlab distributed computing server 分布式计算服务器 simulink 仿真 aerospace ...

  9. matlab 经济计量工具箱,matlab计量经济学

    2. Econometric analysis proceeds along the following lines 计量经济学分析步骤...Do it by matlab.= NORMINV(uni ...

  10. MATLAB时频工具箱函数说明(包含工具箱的下载,安装,使用)

    MATLAB时频工具箱函数说明(包含工具箱的下载,安装,使用) 信号产生函数 噪声产生函数 模糊函数 Affine类双核线性时频处理函数 Cohen类双核线性时频处理函数 其他处理函数 时频分析工具箱 ...

最新文章

  1. 项目三(2)——抽象类
  2. Android Jetpack组件之Hilt使用
  3. linux apt-get install 安装指定的版本
  4. mapreduce v1.0学习笔记
  5. AC日记——行程长度编码 openjudge 1.7 32
  6. 测试面试题集-Python花式打印九九乘法口诀表
  7. MySQL 四种事务隔离级的说明
  8. 几张图来好好理解Spring的循环依赖
  9. 微信网页开发那些破事儿
  10. ie浏览器点击打印没反应_ie浏览器无响应怎么回事?ie浏览器点击没有反应解决方法分享...
  11. chm文件打不开的解决办法
  12. 媒体在计算机科学中的两种含义,多媒体技术应用思考与练习题.doc
  13. Vue 动态响应数据变化
  14. android平板和ipad区别,iPad和安卓平板差距大吗?亲身经历告诉你,平板该如何挑选...
  15. 各种水龙头拆卸图解_各种水龙头拆卸图解
  16. 【以太坊】雷电网络的101网络原理概述
  17. 前端xlsx插件简单说明
  18. 2021-2027全球与中国工业锂电池市场现状及未来发展趋势
  19. 不务正业——游记篇 no.1 (重庆)
  20. python爬取音乐排行_python爬取网易云音乐热歌榜实例代码

热门文章

  1. 已知函数comp的C语言,在C ++ STL中设置value_comp()函数
  2. vue前端上传doc文件并读取文件内容
  3. CentOS7 使用光盘镜像作为yum源
  4. gprs无线模块与服务器连接,GPRS 模块如何通信_GPRS 模块与服务器通信【原理解析】...
  5. python 偏态分布调整_如何处理偏态数据
  6. 《Data Algorithm》读书笔记七 — 购物篮分析
  7. 多模块项目提示“Module ** must not contain source root **. The root already belongs to module **”的解决办法
  8. css flex布局问题width:auto
  9. Talk with GoF
  10. 2020年HS芯片说明海思论坛