idamnjanovic@8: function DL = SMALL_learn(Problem,DL) ivan@121: %% SMALL Dictionary Learning ivan@121: % ivan@121: % Function gets as input Problem and Dictionary Learning (DL) structures ivan@121: % In Problem structure field b with the training set needs to be defined ivan@121: % In DL fields with name of the toolbox and solver, and parameters file ivan@121: % for particular dictionary learning technique needs to be present. ivan@121: % ivan@121: % Outputs are Learned dictionary and time spent as a part of DL structure ivan@121: idamnjanovic@24: % idamnjanovic@24: % Centre for Digital Music, Queen Mary, University of London. idamnjanovic@24: % This file copyright 2009 Ivan Damnjanovic. idamnjanovic@24: % idamnjanovic@24: % This program is free software; you can redistribute it and/or idamnjanovic@24: % modify it under the terms of the GNU General Public License as idamnjanovic@24: % published by the Free Software Foundation; either version 2 of the idamnjanovic@24: % License, or (at your option) any later version. See the file idamnjanovic@24: % COPYING included with this distribution for more information. idamnjanovic@8: %% daniele@195: global SMALL_path ivan@152: if (DL.profile) idamnjanovic@8: fprintf('\nStarting Dictionary Learning %s... \n', DL.name); ivan@152: end idamnjanovic@8: start=cputime; idamnjanovic@36: tStart=tic; idamnjanovic@8: luis@190: % configuration file luis@190: run([SMALL_path 'config/SMALL_learn_config.m']); idamnjanovic@8: idamnjanovic@8: %% idamnjanovic@8: % Dictionary Learning time idamnjanovic@36: tElapsed=toc(tStart); ivan@152: DL.time = cputime - start; ivan@152: if (DL.profile) maria@86: fprintf('\n%s finished task in %2f seconds (cpu time). \n', DL.name, DL.time); maria@86: fprintf('\n%s finished task in %2f seconds (tic-toc time). \n', DL.name, tElapsed); ivan@152: end idamnjanovic@36: DL.time=tElapsed; idamnjanovic@8: % If dictionary is given as a sparse matrix change it to full idamnjanovic@8: idamnjanovic@8: DL.D = full(D); idamnjanovic@8: idamnjanovic@8: end daniele@195: