IRC logs of #shogun for Thursday, 2013-06-06

--- Log opened Thu Jun 06 00:00:33 2013
shogun-notifier-shogun: Sergey Lisitsyn :feature/model_selection_syntax * f2209a5 / src/shogun/modelselection/ModelSelectionParameters.h: https://github.com/shogun-toolbox/shogun/commit/f2209a59e2cad391a427a503b9de04d04cb3e26100:45
shogun-notifier-shogun: Added step support for range helper00:45
-!- lisitsyn [~blackburn@37.61.180.242] has left #shogun []00:45
-!- travis-ci [~travis-ci@ec2-50-17-124-118.compute-1.amazonaws.com] has joined #shogun01:08
travis-ci[travis-ci] it's Sergey Lisitsyn's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/782342901:08
-!- travis-ci [~travis-ci@ec2-50-17-124-118.compute-1.amazonaws.com] has left #shogun []01:08
-!- nube [~rho@49.244.97.103] has joined #shogun03:15
-!- shogun-notifier- [~irker@7nn.de] has quit [Quit: transmission timeout]03:45
-!- nube [~rho@49.244.97.103] has quit [Quit: Leaving.]04:11
-!- zxtx [~zv@rrcs-74-62-200-195.west.biz.rr.com] has quit [Ping timeout: 245 seconds]04:37
-!- lambday [67157d36@gateway/web/cgi-irc/kiwiirc.com/ip.103.21.125.54] has joined #shogun05:38
-!- nube [~rho@36.252.240.87] has joined #shogun05:44
-!- nube [~rho@36.252.240.87] has quit [Read error: Connection reset by peer]05:52
-!- nube [~rho@36.252.240.87] has joined #shogun05:53
-!- nube [~rho@36.252.240.87] has quit [Ping timeout: 248 seconds]06:00
lambdaysonney2k: sonne|work: good morning06:13
-!- nube [~rho@36.253.105.205] has joined #shogun06:16
@sonney2klambday, moin!06:17
lambdaymoin? :)06:17
@sonney2knorthern coast German for good morning06:18
lambday:D06:18
lambdayand morgen?06:18
@sonney2kyeah usually 'Guten Morgen!'06:19
@sonney2kGut == Good06:19
@sonney2kMorgen == morning06:19
lambday:)06:19
lambdaythe only german I know is guten morgen and mein herz brennt (credit goes to rammstein)06:21
lambdayhope to learn some more very soon06:21
lambday:)06:21
lambdaysomething is weird.. complex tests passed yesterday morning and failed in the evening!07:11
@sonney2klambday, lisitsyn fixed them on the buildbot by reducing accuracy07:27
@sonney2kgtg07:27
@sonney2kbrb07:27
lambdaysonney2k: okay.. ciao07:27
lambdayya I saw that.. but am just wondering what might cause this07:27
-!- foulwall [~foulwall@2001:da8:215:503:a97a:6257:9fe3:8dd7] has joined #shogun08:06
-!- iglesiasg [d58f3246@gateway/web/freenode/ip.213.143.50.70] has joined #shogun08:12
-!- mode/#shogun [+o iglesiasg] by ChanServ08:14
-!- nube [~rho@36.253.105.205] has quit [Quit: Leaving.]08:16
-!- nube [~rho@36.253.105.205] has joined #shogun08:16
@sonney2klambday, I *think* that fabs is somehow computed differently on this machine and that std is just having the same issues due to using fabs like CMath::abs08:27
@sonney2kanyways08:27
@sonney2klets move on08:27
* sonney2k looks into sparse matrix hell08:27
lambdayya.. moving on08:28
-!- nube [~rho@36.253.105.205] has quit [Ping timeout: 256 seconds]08:43
gsomixgood morning08:44
-!- nube [~rho@116.90.228.137] has joined #shogun08:53
@iglesiasglambday: I am taking a look to your PR09:04
lambdayiglesiasg: okay :)09:10
@iglesiasglambday: just check a moment the thing of the naming for one of the tests09:11
lambdayiglesiasg: checking..09:11
lambdayiglesiasg: you're right.. there is no reason! I should better just name them compare_ptype_null3, compare_ptype_null409:12
lambdaychanging09:12
@iglesiasglambday: mmm but in that one you are not comparing it with null, are you?09:13
lambdayiglesiasg: in the second case COMPLEX64 is fine I think09:14
lambdayI'm talking about the case where I'm comparing it with null09:14
lambdayiglesiasg: for the second one (where I check with another complex param), I followed the same format as of others (in caps)09:17
lambdaymade changes for the other one09:17
@iglesiasglambday: all right09:17
lambdayplease check09:17
@iglesiasglambday: ok, nicely done!09:18
-!- foulwall [~foulwall@2001:da8:215:503:a97a:6257:9fe3:8dd7] has quit [Remote host closed the connection]09:18
lambdayiglesiasg: thanks :)09:18
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun09:27
shogun-notifier-shogun: lambday :develop * 43c4b4e / tests/unit/base/Parameter_unittest.cc,tests/unit/mathematics/Math_unittest.cc: https://github.com/shogun-toolbox/shogun/commit/43c4b4e94fb392a290e8784379e0e9eb6fc9415e09:27
shogun-notifier-shogun: complex64_t unit-tests added for TParameter09:27
shogun-notifier-shogun: Fernando Iglesias :develop * 44c8ae8 / tests/unit/base/Parameter_unittest.cc,tests/unit/mathematics/Math_unittest.cc: https://github.com/shogun-toolbox/shogun/commit/44c8ae8e63b218919cec4167419c2a799272cc8b09:27
shogun-notifier-shogun: Merge pull request #1151 from lambday/develop09:27
shogun-notifier-shogun:09:27
shogun-notifier-shogun: complex64_t unit-tests added for TParameter09:27
shogun-buildbotbuild #912 of cyg1 - libshogun is complete: Failure [failed configure]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/912  blamelist: Fernando Iglesias <fernando.iglesiasg@gmail.com>09:38
shogun-buildbotbuild #913 of cyg1 - libshogun is complete: Failure [failed compile]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/913  blamelist: lambday <heavensdevil6909@gmail.com>09:53
-!- lisitsyn [~lisitsin@mxs.kg.ru] has joined #shogun09:58
-!- mode/#shogun [+o lisitsyn] by ChanServ09:58
-!- iglesiasg [d58f3246@gateway/web/freenode/ip.213.143.50.70] has quit [Quit: Page closed]10:06
-!- lambday [67157d36@gateway/web/cgi-irc/kiwiirc.com/ip.103.21.125.54] has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]10:15
-!- zxtx [~zv@cpe-75-83-151-252.socal.res.rr.com] has joined #shogun10:36
-!- iglesiasg [c1934d16@gateway/web/freenode/ip.193.147.77.22] has joined #shogun11:31
-!- mode/#shogun [+o iglesiasg] by ChanServ11:33
thoralfHmm, something goes wrong in SVMlight classifier: "Number of SV: 19772 (including 140432545692465 at upper bound)"11:44
@lisitsynthoralf: oh sounds like quite a lot support vectors haha :)11:46
@iglesiasghaha11:46
@iglesiasglarge-scale toolbox -- what did you expect? :P11:47
thoralfiglesiasg: I'd expect far less SVs than examples. ;)11:48
@iglesiasgthoralf: you've got a point in there :)11:48
thoralfSG_INFO("Number of SV: %ld (including %ld at upper bound)\n", model->sv_num-1,upsupvecnum);11:49
thoralfint32_t upsupvecnum11:49
@iglesiasgthe ld must be11:49
@iglesiasgcould you try just with %d?11:50
thoralfiglesiasg: I will. ;)11:50
thoralf140432545692465 >> max of int32_t ;)11:50
thoralfSo it must be some conversion issue.11:50
@iglesiasgindeed11:50
-!- nube [~rho@116.90.228.137] has quit [Ping timeout: 256 seconds]12:03
-!- nube [~rho@116.90.228.137] has joined #shogun12:07
-!- shogun-notifier- [~irker@7nn.de] has quit [Quit: transmission timeout]12:27
wikingis this maybe fixed by some of the latest changes of combined kernel: https://github.com/shogun-toolbox/shogun/issues/92612:33
wikingmeaning anybody ran valgrind lately on the unit tests? :)12:33
thoralfiglesiasg: Seems to work "Number of SV: 19772 (including 15153 at upper bound)"12:59
thoralf:)12:59
@iglesiasgthoralf: nice!12:59
@iglesiasgthoralf: by the way is the other variable, model->sv_num a int64_t?12:59
@iglesiasgthoralf: otherwise, I guess the same error could arise12:59
-!- HeikoS [~heiko@nat-189-255.internal.eduroam.ucl.ac.uk] has joined #shogun13:00
-!- mode/#shogun [+o HeikoS] by ChanServ13:00
thoralfiglesiasg: I fixed it for both variables.13:00
@iglesiasgthoralf: thanks, could you please issue a PR with that?13:00
thoralfiglesiasg: (and even in another source file - thanks to code duplication)13:00
thoralfiglesiasg: Already preparing.13:00
@iglesiasgthoralf: haha yeah copy+paste is both dangerous and comfortable13:00
thoralfiglesiasg: It's only comfortable to the one who did it... ;)13:01
@iglesiasgvery true13:01
thoralfiglesiasg: But it's so much pain afterwards...13:01
thoralfiglesiasg: In case you're feeling responsible: https://github.com/shogun-toolbox/shogun/pull/115213:08
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun13:10
shogun-notifier-shogun: Thoralf Klein :develop * f8e2d67 / src/shogun/classifier/svm/SVMLight.cpp,src/shogun/regression/svr/SVRLight.cpp: https://github.com/shogun-toolbox/shogun/commit/f8e2d67d75ab2d727dce65da2676a288c679f6cf13:10
shogun-notifier-shogun: SVMLight: Fixing type conversion when printing number of support vectors (%d instead of %ld, because variable is of type int32_t).13:10
shogun-notifier-shogun: Fernando Iglesias :develop * dd60047 / src/shogun/classifier/svm/SVMLight.cpp,src/shogun/regression/svr/SVRLight.cpp: https://github.com/shogun-toolbox/shogun/commit/dd600474fb8c113852fa2995080e3a2c510596ec13:10
shogun-notifier-shogun: Merge pull request #1152 from tklein23/develop13:10
shogun-notifier-shogun:13:10
shogun-notifier-shogun: SVMLight: Fixing type conversion when printing number of support vectors.13:10
@iglesiasgthoralf: btw, are you using Shogun for something on your work or just contributing?13:10
thoralfiglesiasg: I'm using shogun for my research, but until now I'm pushing shogun to work as expected.13:12
thoralfiglesiasg: (large scale) text classification, hashing, mkl13:13
thoralflarge scale not only meaning lots of examples, but also lots of classes13:13
@iglesiasgthoralf: aham I see13:15
@iglesiasgthoralf: you have probably seen we have something in ECOC13:15
thoralfecoc?13:15
@iglesiasgI believe that is used in classification with many classes13:15
@iglesiasgerror correcting output codes IIRC13:15
@iglesiasgthere was a project last summer's GSoC in multiclass classification13:16
@iglesiasgsome methods for this were implemented, and I think some of them are well suited to classification with lot of classes13:16
shogun-buildbotbuild #914 of cyg1 - libshogun is complete: Failure [failed configure]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/914  blamelist: Thoralf Klein <thoralf.klein@zib.de>13:17
@iglesiasgthoralf: I meant this project http://shogun-toolbox.org/page/Events/gsoc2012_ideas#multiclass13:17
thoralfiglesiasg: Thanks, I will check it.13:19
-!- nube [~rho@116.90.228.137] has quit [Quit: Leaving.]13:23
thoralfCan anyone recommend, which environment to use for building shogun applications or contributing to shogun?13:31
@HeikoSthoralf: I use eclipse13:31
thoralfIn emacs I'm missing auto completion of class methods :)13:31
@HeikoSwhich is a bit of a pain to set up13:31
@HeikoSbut once it works, its very nice13:31
@HeikoSthoralf: all you do is import existing makefile project (src folder of shogun)13:32
thoralfHeikoS: Thanks.  Are they other IDEs you tried, but failed? ;)13:32
@HeikoSand then create another project for your application, which links against the shogun one13:32
@HeikoSyou can even add valrind support to eclipse13:32
@HeikoSthoralf: I used plain text editors before13:32
@HeikoSgedit/vim/emacs13:32
@lisitsynI use vim + clang_complete for autocompletion13:33
@HeikoSeclipse is very nice if your computer is reasonbly modern13:33
@lisitsynpretty powerful13:33
@HeikoSin eclipse you have this very nice feature that you can press ctrl-shift-r and then just enter a class name and then it magically opens the files for you13:33
thoralfHeikoS: Anything I need for eclipse is a big screen ;)13:34
@HeikoSyes :)13:34
thoralfHeikoS: Okay, I'll give it a try.13:34
shogun-buildbotbuild #915 of cyg1 - libshogun is complete: Failure [failed compile]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/915  blamelist: Fernando Iglesias <fernando.iglesiasg@gmail.com>13:38
-!- sonney2k [~shogun@7nn.de] has quit [Ping timeout: 264 seconds]13:47
-!- sonney2k [~shogun@7nn.de] has joined #shogun13:49
@iglesiasgHeikoS: I think I will try eclipse some time for fun14:07
@iglesiasgI like it when I use java14:07
@HeikoSiglesiasg: what do you use?14:07
@iglesiasgHeikoS: terminal and vim14:07
@HeikoSeclipse is also nice for python development14:07
@iglesiasgtrue14:08
thoralfI think this could be a good topic for the workshop in July.14:08
@HeikoSand it has a git integration14:08
@HeikoSand valgrind also14:08
@iglesiasgI did that too a few years ago14:08
@iglesiasgthoralf: good idea14:08
@HeikoSthoralf: good idea, but not many votes on that14:08
thoralfHaving tools/workflows/configs to support you when developing.14:08
@HeikoSthoralf: we really need a tutorial on how to set up shogun on the website, want to write one? :)14:08
thoralfHeikoS: Yes and no. ;)14:08
@HeikoShaha :)14:08
@HeikoSI know takes ages14:09
@HeikoSbut we desperately need this14:09
@HeikoSI am currently getting a few people around UCL in London involved14:09
@HeikoSand most time is spent on setting it up14:09
@HeikoSwhich is very frustrating14:09
@iglesiasgok guys, I will be back after lunch14:10
@HeikoSenjoy!14:10
@iglesiasgthanks!14:10
-!- iglesiasg [c1934d16@gateway/web/freenode/ip.193.147.77.22] has quit [Quit: Page closed]14:10
thoralfHeikoS: I think this fix is a good start ;)  https://github.com/shogun-toolbox/shogun/pull/115414:12
thoralfHeikoS: Since it's something I did wrong (while following the official documentation)14:12
shogun-notifier-shogun: Thoralf Klein :develop * 0fb4348 / src/README.developer: https://github.com/shogun-toolbox/shogun/commit/0fb43481b07b64b79763966406dcf53d104cc57014:13
shogun-notifier-shogun: README.developer: Updated the git instructions for committing patches to upstream.14:13
@HeikoSyep, thanks! :)14:13
shogun-notifier-shogun: Heiko Strathmann :develop * 81dd25b / src/README.developer: https://github.com/shogun-toolbox/shogun/commit/81dd25b23c42f7ba2133d65930f7311dfc0b6eeb14:13
shogun-notifier-shogun: Merge pull request #1154 from tklein23/develop14:13
shogun-notifier-shogun:14:13
shogun-notifier-shogun: README.developer: Updated the git instructions for committing patches to upstream14:13
thoralfHope I didn't make it worse, but I think it's okay.14:13
@HeikoSI think its fine14:15
@HeikoSthoralf: but seriously, if you are going into the effort of making eclipse work, it would be great to have a tutorial on this14:16
shogun-buildbotbuild #916 of cyg1 - libshogun is complete: Failure [failed configure]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/916  blamelist: Thoralf Klein <thoralf.klein@zib.de>14:17
@HeikoSnoooooo14:17
shogun-buildbotbuild #917 of cyg1 - libshogun is complete: Failure [failed configure]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/917  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>14:18
thoralfHeikoS: Only if eclipse saves me as much time as I need for writing a tutorial. ;)14:21
@HeikoSthoralf: deal :)14:21
thoralfHeikoS: In eclipse, did you select a particular "Toolchain for indexer settings"?14:24
@HeikoSautotools14:24
sonne|workthoralf: hey I am interested in switching to eclipse too btw :D14:24
@HeikoSand gcc/g++14:24
@HeikoSmaybe we can even add the config to git?14:27
@lisitsynwe already have it14:27
@HeikoSlisitsyn: does it work? never tried?14:27
@lisitsynno idea14:27
@lisitsyn:)14:27
thoralfI already converted two projects for using IDE-assisted-development - and it's been the best decision I ever had.14:27
sonne|workHeikoS: well I used it14:27
@HeikoSthoralf: nice!14:28
@HeikoSsonne|work: cool, maybe Ill give it a go later14:28
thoralfsonne|work: I didn't expect you not to use an IDE.  ;)14:28
@HeikoSsonne|work: have you seen my mail?14:28
sonne|workthoralf: you are talking to a vim person14:28
sonne|workHeikoS: no14:28
sonne|workwhat mail?14:28
@HeikoSworkshop topics to shogun-list14:29
sonne|workahh seen it14:29
sonne|workso fernando would do SO?14:29
sonne|workHeikoS: you GPs14:29
@HeikoSlisitsyn:  which class does plain lasso?14:29
sonne|workand lisitsyn dimred?14:29
@HeikoSyes I can do GPs14:29
@HeikoSand maybe MMD stuff14:30
@HeikoSsonne|work: you mkl and svms?14:30
@lisitsyn HeikoS: plain like?14:32
@lisitsynsonne|work: yes I don't mind14:32
@HeikoS||y- X\beta|| + \lambda|\beta|_114:32
@lisitsynHeikoS: least angle regression14:33
@lisitsynsomewhat like that in regression14:33
@HeikoSok14:33
@HeikoSdid you ever test/use it?14:33
sonne|workHeikoS: ok14:33
@lisitsynHeikoS: yes it works, we have a graphical example14:33
@HeikoScool14:33
@HeikoSthanks14:33
@lisitsynand it is written by chiyuan14:33
@lisitsynthat MIT guy14:33
@lisitsynhe knows a way around heh :)14:33
@lisitsynHeikoS: we actually have an example for my group lasso too14:34
-!- nube [~rho@116.90.228.137] has joined #shogun14:34
@lisitsynand it seems it is ok14:34
@lisitsynbut not for the multiclass one14:34
@HeikoSlisitsyn: thats fine for now14:34
@lisitsynanyway again - I tested it and it was not bad14:34
@HeikoSI will just use regression and see14:34
@lisitsynlike 92% accuracy14:35
@HeikoSso it does better than lars?14:35
@HeikoSthats cool14:35
@lisitsynHeikoS: hmm what does better than lars?14:35
@HeikoSmaybe I misunderstood the plots14:35
@HeikoSchecking the code14:35
@HeikoSlisitsyn, sonne|work should we have a list with people who do talks?14:35
@lisitsynHeikoS: lasso may be worse than least squares14:36
-!- nube [~rho@116.90.228.137] has quit [Quit: Leaving.]14:40
sonne|workHeikoS: yes we should and make a plan14:40
@HeikoShow many speakers?14:40
@HeikoSsergey, you, me, fernando, gunnar, who else?14:41
@HeikoSlisitsyn: argh, lasso segfaults14:51
@lisitsynHeikoS: lars?14:53
@HeikoSyes14:53
@lisitsynsurprising14:53
@HeikoSI am not really surprised14:53
@lisitsynHeikoS: sorry my ass is on fire, can get to that tonight14:53
@HeikoSlisitsyn:  dont worry :)14:53
@HeikoSwill investigate myself14:53
@HeikoSgood luck with fighting the fire!14:53
@lisitsynHeikoS: we made some progress on the algorithm but have to update some 'business logic' :D14:54
@HeikoSman this is annoying, how should we expect people to use our software if everything crashes whenever you touch it14:54
@HeikoShaha :)14:54
@HeikoSwe have to do it differently this gsoc14:55
@HeikoSwaterproof code14:55
@HeikoSswitching to scikit learn now :(14:55
@lisitsynHeikoS: we can't avoid bugs :)14:55
@HeikoSI know, but there are too many14:55
@HeikoSwe can definitely avoid that14:56
@lisitsynthat's the drawback of using low-level C++14:56
@lisitsynthe less code we have the less bugs we have14:56
@HeikoSno its not c++, its our development model14:56
@lisitsynthat's the only way to avoid bugs14:56
@HeikoSwe dont ensure quality14:56
@lisitsynHeikoS: # of bugs per line is constant anyway14:56
@HeikoSat least we did not last year14:56
@lisitsynno matter how you cover it with tests14:56
@HeikoSI am very sure this segfault is again a very simple thing that would have been easily catched14:57
-!- gsomix [~Miranda@37.61.180.242] has quit [Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org]14:57
@HeikoSbut now someone needs to invest a few hours14:57
@HeikoSlisitsyn:  I know14:57
@lisitsynHeikoS: yes - don't use pointers14:57
@lisitsyn:)14:57
@HeikoSbut still, we should really take more care14:57
@HeikoSwhen merging code14:57
@HeikoSmake the developers test it more and stuff14:57
@HeikoSbut same discussion has already been done14:57
@HeikoSso lets not get into that14:58
@lisitsynHeikoS: all segfaults happen due to pointers - you won't see any segfault with eigen :)15:06
@lisitsynso it is important too15:06
@HeikoSlisitsyn: I dont agree to blame pointers nor c++ for that15:06
@HeikoSthis is due to no testing the code15:07
@HeikoSI mean come on, I just call a method on some data15:07
@HeikoSnothing fancy15:07
@HeikoSno complicated framework structure15:07
@lisitsynHeikoS: we won't cover all the code with tests though15:08
@HeikoSlisitsyn: I know, thats not my point15:08
@HeikoSwe dont have to15:08
@HeikoShowever, this one crashes on the most simple case15:08
@HeikoSthis jsut should not happen15:08
@HeikoSthis means, it was never tried on a dataset15:09
@HeikoSbecause otherwise we would have noticed this error15:09
@lisitsynHeikoS: hm we have an example15:09
@HeikoSthats toy data15:09
@HeikoSand very very small15:09
@lisitsyndoes it crash?15:09
@HeikoSno15:09
-!- shogun-notifier- [~irker@7nn.de] has quit [Ping timeout: 264 seconds]15:10
-!- zxtx [~zv@cpe-75-83-151-252.socal.res.rr.com] has quit [Ping timeout: 264 seconds]15:10
-!- zxtx [~zv@cpe-75-83-151-252.socal.res.rr.com] has joined #shogun15:10
-!- naywhayare [~ryan@spoon.lugatgt.org] has quit [Ping timeout: 264 seconds]15:11
-!- iglesiasg [c1934d16@gateway/web/freenode/ip.193.147.77.22] has joined #shogun15:15
-!- mode/#shogun [+o iglesiasg] by ChanServ15:15
@iglesiasgHeikoS, lisitsyn : we didn't need to register for the workshop, did we?15:16
@iglesiasgI think I asked soeren about that once15:16
@HeikoSiglesiasg: you should, then you can vote on the topics :)15:16
@HeikoSall others did too15:16
@iglesiasgHeikoS: true15:16
@iglesiasgthen I am going to right now15:16
sonne|workiglesiasg: yes you should15:17
-!- naywhayare [~ryan@spoon.lugatgt.org] has joined #shogun15:17
@iglesiasgsonne|work: thanks, I probably imagined asking :D15:17
@lisitsynHeikoS: I think no that's what I mean ;)15:17
@lisitsynanyway, what crashes?15:17
-!- lisitsyn1 [~lisitsin@mxs.kg.ru] has joined #shogun15:17
-!- lisitsyn [~lisitsin@mxs.kg.ru] has quit [Write error: Connection reset by peer]15:18
@iglesiasgregistered15:20
thoralfHeikoS: How did you integrate the unit tests?  As a own project?15:47
-!- Yanglittle [deb20afd@gateway/web/freenode/ip.222.178.10.253] has joined #shogun16:01
YanglittleHey is there any body , it's strange that i run chi2kernel(data,data,width,20), but it returns an empty array, here data is a realfeatures object16:04
Yanglittleyesterday it runs well..16:04
-!- Yanglittle_ [deb20afd@gateway/web/freenode/ip.222.178.10.253] has joined #shogun16:07
sonne|workYanglittle  errm I don't recall anyone doing any changes16:09
-!- Yanglittle [deb20afd@gateway/web/freenode/ip.222.178.10.253] has quit [Ping timeout: 250 seconds]16:09
Yanglittle_so strange... i did nothing. reinstall it?16:10
sonne|workwell what is the size of data?16:12
thoralfsonne|work: About the pthreads problem again - what about adding LINKFLAGS="$LINKFLAGS $pthr" in src/configure, line 3225?16:12
sonne|workYanglittle_: data.get_num_vectors()16:12
thoralfsonne|work: LINKFLAGS will be passed through...16:13
sonne|workthoralf: ohh postlinkflags is not! good catch16:13
sonne|workwe should just pass POSTLINKFLAGS through then16:14
Yanglittle_it returns 0, but the data is made by Realfeatures(data), the original data is a array with 2000*57616:16
wikingok i'm putting up some leak report16:17
wiking1155, 1156 and 115716:21
wikingHeikoS: 115616:21
wikingand 1157 is for GaussianLikelihood  and StudentsTLikelihood  so i guess somebody working on them now in gsoc can fix it :P16:22
sonne|workYanglittle_: which language is that?16:34
Yanglittle_python16:34
sonne|workHeikoS: well we changed our development model. so relax. just push sergey to write an example / unit test for his old code :)16:34
sonne|workYanglittle_: print it!16:35
sonne|workI never heard of a problem like that...16:35
Yanglittle_yesterday it worked well, the data i checked16:37
Yanglittle_all are  the right type16:37
Yanglittle_i try to reinstall it ,and it needs to uninstall it? i downloaded the newest through the git.16:44
-!- nube [~rho@49.244.31.182] has joined #shogun16:50
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun17:01
shogun-notifier-shogun: vigsterkr :develop * 1648596 / src/shogun/lib/SGMatrix.cpp: https://github.com/shogun-toolbox/shogun/commit/164859643da442a0e3eb3837be8cbdf26527dc6417:01
shogun-notifier-shogun: Fix leak in SGMatrix::get_row_vector function17:01
shogun-notifier-shogun: vigsterkr :develop * 8d8eabd / tests/unit/mathematics/Random_unittest.cc: https://github.com/shogun-toolbox/shogun/commit/8d8eabd3da95cb159c74d96a5c626ed93cc17f0d17:03
shogun-notifier-shogun: Fix leak in Random_unittest17:03
lisitsyn1sonne|work: ich habe ein problem mit cygwin + shogun17:03
lisitsyn1sonne|work: it fails to run with syntax error :D17:04
sonne|worklisitsyn1: syntax terrorist!17:05
wikingmmm17:06
shogun-notifier-shogun: vigsterkr :develop * f2221e4 / tests/unit/base/Serialization_unittest.cc: https://github.com/shogun-toolbox/shogun/commit/f2221e48164729fdd2aaebf68029dbe3d096688f17:08
shogun-notifier-shogun: Fix leak in Serialization.liblinear unit test17:08
@HeikoSthoralf: I just do them in a text editor and then make in terminal17:09
@HeikoSbut when I write them I use a test project which I use in to test out things in general17:09
@HeikoSwiking: thanks for the reports!17:09
@HeikoSwiking:  maybe send roman an email about the leaks in GP stuff17:09
@HeikoSsonne|work: yes, things should be getting better17:10
-!- lisitsyn1 [~lisitsin@mxs.kg.ru] has quit [Read error: Connection reset by peer]17:13
wikingHeikoS: done17:13
-!- lisitsyn [~lisitsin@mxs.kg.ru] has joined #shogun17:14
@HeikoSlisitsyn: how to do std lasso logistic regression in shogun?17:14
lisitsynHeikoS: FeatureBlockLogisticRegression17:14
@HeikoSand blocks?17:16
@HeikoSjust one index each?17:16
lisitsynHeikoS: the same thing17:17
@HeikoSnono17:17
@HeikoShow to set up the groups for std lasso17:17
lisitsynahhhhhhh17:17
lisitsyn:D17:17
lisitsynlasso17:17
lisitsynnot group lasso right?17:17
lisitsynHeikoS: bad news then!17:17
@HeikoSyep not group17:17
lisitsynHeikoS: we only have lars17:17
@HeikoSah so no logistic regression?17:18
lisitsynHeikoS: least squares only17:18
@HeikoSmmh17:18
lisitsynHeikoS: though I can port the method for that!17:18
@HeikoSnono17:18
@HeikoSmaybe later17:18
@HeikoSso the only sparse linear regression we have is in liblinear right?17:18
lisitsynHeikoS: yes probably17:19
lisitsynHeikoS: though you can use featureblock thing17:19
shogun-buildbotbuild #918 of cyg1 - libshogun is complete: Failure [failed compile]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/918  blamelist: vigsterkr <vigsterkr@gmail.com>17:19
@HeikoSlisitsyn:  how?17:20
@HeikoSI guess each group consists of one element?17:20
lisitsynHeikoS: oops I remember it has L1 by default17:21
lisitsynit is called 'supernode'17:21
lisitsyn:D17:21
-!- iglesiasg [c1934d16@gateway/web/freenode/ip.193.147.77.22] has quit [Quit: Page closed]17:21
lisitsynHeikoS: oops not sure17:23
@HeikoSlisitsyn:  doesnt liblinear do L1?17:23
-!- HeikoS [~heiko@nat-189-255.internal.eduroam.ucl.ac.uk] has left #shogun []17:26
lisitsynHeikoS it does17:27
-!- HeikoS [~heiko@nat-189-255.internal.eduroam.ucl.ac.uk] has joined #shogun17:28
-!- mode/#shogun [+o HeikoS] by ChanServ17:28
-!- iglesiasg [~iglesiasg@193.147.77.22] has joined #shogun17:31
-!- mode/#shogun [+o iglesiasg] by ChanServ17:31
shogun-buildbotbuild #919 of cyg1 - libshogun is complete: Failure [failed compile]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/919  blamelist: vigsterkr <vigsterkr@gmail.com>17:32
wikingHeikoS: wouldn't it be enough if i do a TParameter.copy_data for each parameter of an SGObject to do clone-ing?17:39
@HeikoSwiking: yes17:39
@HeikoStotally17:39
@HeikoSwiking: have a look at the equals method17:39
wikingHeikoS: yep i've checked it17:39
-!- Yanglittle_ [deb20afd@gateway/web/freenode/ip.222.178.10.253] has quit [Quit: Page closed]17:39
@HeikoSvery similar to this, but not comparing, but copying17:39
@HeikoSwiking: its just a little tedious to implement this17:39
@HeikoShas to be very carefully unit-tested etc to avoid weird errors17:40
@HeikoSso if you want to do this: a test for every case17:40
@HeikoSbut I can also do it17:40
wikingHeikoS: no worries work on something else17:40
@HeikoSsince I did the equals already, I already know what to look out for17:40
wikingHeikoS: i just wanted to double check if i understood it right17:40
@HeikoSmaybe if you want to do other things instead?17:40
wikingHeikoS: ah ok so i'll just create a TParameter* TParameter::clone() const; function17:42
shogun-buildbotbuild #920 of cyg1 - libshogun is complete: Failure [failed configure]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/920  blamelist: vigsterkr <vigsterkr@gmail.com>17:43
@HeikoSwiking: no not exactly17:46
@HeikoSwiking: so the first issue is: TParameter instances are very hard to create from scratch17:46
@HeikoSI did that for the migration framework17:46
@HeikoSand its a pain in the ***17:46
@HeikoSso it would be better to use std constructors and then just copy data into the existing parameters of the empty CSGObject17:47
wikingaaah17:47
@HeikoSso first the CSGObject needs to create an empty instance of its own type17:47
@HeikoSwhich is the first challenge17:47
@HeikoSHow would that work?17:48
wikingdeep_copy :D17:49
wikingSG_NOTIMPLEMENTED :>17:49
@HeikoSno an emptry instance17:50
@HeikoSsay I am a CGaussianKernel17:50
-!- votjakovr [~votjakovr@host-46-241-3-209.bbcustomer.zsttk.net] has joined #shogun17:50
thoralfSure ;)17:50
@HeikoShow to create such an instance from CSGObject::clone()17:50
@HeikoSvotjakovr: hi!17:50
wikingvotjakovr: thnx for the PR17:51
votjakovrHeikoS: hi17:51
@HeikoSvotjakovr: there are a few memory leaks in GP stuff17:51
wikingvotjakovr: let's see what does travis do and then i'll merge it17:51
wikingvotjakovr: i suspect that it'll do just fine :P17:51
votjakovrHeikoS: Ok :)17:51
votjakovrHeikoS: Sorry, memory leaks are my mistake.17:52
votjakovrHeikoS: Btw is it possible to use valgrind with travis?17:53
wikingvotjakovr: yes17:54
wikingbut we didn't enabled it17:54
@HeikoSvotjakovr: you heard the man17:54
@HeikoSvotjakovr: just make sure your code doesnt leak when you run it yourself17:54
wikingHeikoS: CSGObject::clone() what would be the return value? :)17:54
wikingi mean CSGObject* i guess17:54
@HeikoSwiking: we should enable this at some point and throw errors if it leaks17:54
wikingbut we would need to cast it at some point17:54
@HeikoSwiking: yes17:54
@HeikoSbut how to instanciate?17:54
@HeikoSwe would need a class factors17:55
@HeikoSfactory17:55
wikingmmm17:55
@HeikoSthat we pass this pointer and that returns a new std instance of the same type17:55
@HeikoSmaybe sonney2k has an idea17:55
wikingtypeid(obj).name()17:55
wiking:)17:55
wikingHeikoS: http://www.cplusplus.com/reference/typeinfo/type_info/17:56
@HeikoSok17:56
wikingalthough17:56
@HeikoSand then the factory instanciates?17:57
wikingwe always have get_name()17:57
@HeikoSthis could work17:57
@HeikoSeven automatically17:57
@HeikoSif names are unique17:57
@HeikoSbut they have to be anyway17:57
wikingso that's standard within shogun as apparently typeid implementation differs among various compiles17:57
@HeikoSof we add an abstract method to CSGobject17:57
@HeikoScreate_empty()=017:57
@HeikoSwhich returns new CClassName()17:58
@HeikoSI think that might be best17:58
@HeikoSwe will ahve to add it to all classes though17:58
@HeikoSnon-abstract classes17:58
wikingmaybe it's better to use it with copy ctors17:58
wikingactually copy ctor of CSGObject is not correct17:59
wikingas it doesn't copy the parameter values18:00
wikingonly does init(); set_global_objects();18:00
wikingHeikoS: if we fix copy ctor in SGObject18:00
wikingthen the copy ctor of any class should work18:00
@HeikoSdont get it18:00
@HeikoShow would that look?18:00
wikingso we have this18:00
wikingCSGObject(const CSGObject& orig)18:01
wikingright?18:01
wikingbut it doesn't really do deep copy of the orig18:01
wikingjust creates another CSGObject actually18:02
wikingit's essentially the same as if i would call CSGObject()18:02
wikingbut that's not what a copy ctor should do18:02
wikingit should actually copy orig itself18:02
wikingthe parameters we can copy18:02
wikingwe need a clone method for TParameter18:02
@HeikoSI dont see how you can clone with that18:03
@HeikoSwe need CSGObject::clone()18:03
@HeikoSwhich returns a new CSGObject instance18:03
wikingHeikoS: a copy ctor actually is the same18:03
wikingLibSVM a(origSVM);18:03
-!- gsomix [~Miranda@5850-AMTS-1-48.dialup.samtel.ru] has joined #shogun18:03
gsomixgood evegning18:04
gsomix*evening18:04
wikingHeikoS: if one has this ctor one expects that a equals b18:04
wikingi.e. it's copied18:04
@HeikoSwiking: but this is not polymoirphic18:04
@HeikoSwe want to be able to call clone without knowing the type18:05
@HeikoSfor a copy constructor one needs to know the type18:05
@HeikoSgsomix: hi!18:06
-!- iglesiasg [~iglesiasg@193.147.77.22] has quit [Quit: Leaving]18:14
wikingHeikoS: mmm in that case ...?18:17
@HeikoSwiking:  what do you think of an abstract method?18:17
-!- travis-ci [~travis-ci@ec2-23-22-250-98.compute-1.amazonaws.com] has joined #shogun18:17
travis-ci[travis-ci] it's vigsterkr's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/784410018:17
-!- travis-ci [~travis-ci@ec2-23-22-250-98.compute-1.amazonaws.com] has left #shogun []18:17
@HeikoSmaybe this can even be done automatically18:17
wikingHeikoS: you mean virtual clone()=0;?18:17
@HeikoSwiking: no18:18
wikingwhere then? :)18:18
@HeikoSvirtual CSGObject* create_empty_instance() = 018:18
@HeikoSin CSGObject::clone() this is then called18:18
@HeikoSand parameters are copied18:18
wikingHeikoS: create_empty_instance() { new ObjName(); } :)18:21
wikingHeikoS: i mean the code can be generated actually :P18:22
@HeikoSwiking:  exactly18:22
@HeikoSor are there c++ tricks to do this?18:22
wikingHeikoS: yeah i'm just trying to find out18:22
thoralfHeikoS: Cool, eclipse can run valgrind on the unit tests *and* parse its output, so you can point-and-click on the stack traces.18:26
@HeikoSwiking: if not we will just add an automagically constructed method to all non-abstract classes18:26
@HeikoSthoralf: yep :)18:27
@HeikoSimagine all the time that it saved you! :)18:27
thoralfthe savings are still negative ;)18:31
thoralfHmm.  Too many undefined-variables-warnings in valgrind.18:39
thoralfYou guys should check the valgrind warnings more often.18:40
@HeikoSthoralf: that is?18:40
@HeikoSwhich program?18:40
thoralfHeikoS: shogun-unit-test18:40
@HeikoSthoralf: yep, the plan is at some point to turn it on by default18:40
@HeikoSwhich tests?18:40
thoralfHeikoS: All. ;)18:40
@HeikoSwhat?18:40
thoralfHeikoS: Running all tests, I see a lot of warnings. ;)18:41
thoralfHeikoS: (instead of "all tests throw warnings")18:42
@HeikoSthoralf: I will check18:42
@HeikoSwiking: recently posted some memory problems in unit tests18:42
shogun-notifier-shogun: Roman Votyakov :develop * 43cabcf / tests/unit/regression/gp/ (2 files): https://github.com/shogun-toolbox/shogun/commit/43cabcf46af6a81168bfefa27bb8cea84e8f753318:42
shogun-notifier-shogun: Fixed memory leak in GaussianLikelihood and StudentsTLikelihood unit tests18:42
shogun-notifier-shogun: Heiko Strathmann :develop * 9850f44 / tests/unit/regression/gp/ (2 files): https://github.com/shogun-toolbox/shogun/commit/9850f44aa213fab987e30c179e58a5bcbbdbed9f18:42
shogun-notifier-shogun: Merge pull request #1159 from votjakovr/develop18:42
shogun-notifier-shogun:18:42
shogun-notifier-shogun: Fixed memory leak in GaussianLikelihood and StudentsTLikelihood unit tests18:42
@HeikoSshould be a few less now18:42
@HeikoSwiking: btw are you doing this random forest stuff currently?18:43
thoralfsonne|work: You should add "lhs_equals_rhs=false;" to CKernel::init()  (Kernel.cpp:962)18:44
@HeikoSI have a suggestion: Could the Bagging class be able to handle arbritary machines?18:44
thoralfsonne|work: Just a random warning. ;)18:44
thoralfEnough playing.  Heading home now.18:45
thoralfBye!18:45
@HeikoSthoralf: bye and thanks for your help! :)18:46
shogun-buildbotbuild #921 of cyg1 - libshogun is complete: Failure [failed configure]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/921  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>18:47
wikingHeikoS: trying18:49
wikingHeikoS: yes it is currently lik ethat18:50
wikingHeikoS: or i have a WIP commit for BaggingMachine18:50
wikingHeikoS: but i would need machine.clone()18:50
@HeikoScool!18:50
@HeikoSwe will get that18:50
@HeikoSbuts lets discuss with sören about the std instance first18:50
wikingHeikoS: i'm waiting for that for a month now :P18:50
wikingi mean for clone18:50
@HeikoSwiking18:53
@HeikoSonce we have the std instance18:53
@HeikoSits not that hard18:53
@HeikoSvery simmilar to equaöls18:53
@HeikoSand it will work for all objects18:53
@HeikoSso only implementing this once18:53
wikingstd instance?18:54
@HeikoSand then we can also remove this annoying deep_copy() shallow_copy stuff18:54
@HeikoSyes new CClassName18:54
wikingah you mean the create_empty_class() ?18:54
@HeikoSlisitsyn, sonney2k, [----------] 2 tests from CustomKernelTest18:55
@HeikoS[ RUN      ] CustomKernelTest.add_row_subset18:55
@HeikoSSegmentation fault (core dumped)18:55
@HeikoSwiking: yes18:55
shogun-buildbotbuild #922 of cyg1 - libshogun is complete: Failure [failed configure]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/922  blamelist: Roman Votyakov <votjakovr@gmail.com>18:57
-!- lisitsyn [~lisitsin@mxs.kg.ru] has quit [Quit: Leaving.]19:02
wikingHeikoS: we can do a simple class factory19:03
@HeikoShow would you do it?19:04
wikingtemplate<typename T> CSGObject* create_empty_object() {return new T();}19:05
@HeikoSwiking, thats it!19:05
@HeikoSnice19:05
@HeikoSah no19:05
@HeikoSnono19:05
@HeikoSit needs to be typefree19:06
@HeikoSfor this one, one needs to specify T19:06
@HeikoSI think the abstract method is the only way19:06
-!- gsomix [~Miranda@5850-AMTS-1-48.dialup.samtel.ru] has quit [Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org]19:08
wikingHeikoS: well then we need to add that little code to each class in shogun :P19:10
wikingHeikoS: maaaybe we can do this with some macro hacking19:12
@HeikoSwiking19:12
@HeikoSI would suggest that we have a script that does this for us19:12
wikingso the preprocessor generates the create_empty_class() for each shogun class19:12
@HeikoSsince it is the same for all19:12
wikingHeikoS: yeah either that or macro19:13
wikingi'll check if macro is possible19:13
@HeikoScan the preprocessor read the filename?19:13
wikingof course19:13
@HeikoSthen just use it19:13
@HeikoSCSGObject* create_std_instance()19:14
@HeikoSah its more difficult - only non-abstract classes have this19:14
@HeikoSotherwise it wont compile19:14
@HeikoSI am sure that sonney2k know what to do here19:15
@HeikoSwiking btw the alternative is to serialise the instance19:25
@HeikoSand load19:25
@HeikoSah no19:25
wikingHeikoS: yeah i wrote that once :P19:25
@HeikoSagain needs a std instance19:25
wikingHeikoS: i mean here in chat19:25
@HeikoSso we need that anyway19:25
wikingHeikoS: actually i'll work.... :)19:25
@HeikoSalso serialisation might be slow19:25
@HeikoSwhich you dont want19:26
wikingHeikoS: serialize into a file and that's it ;)19:26
wikingand load it n times19:26
@HeikoSwiking: rather a bytestream that a file19:26
wikinghehehe :)19:26
wikingthat's eyecandy19:26
@HeikoSthings should stay in memory19:26
@HeikoSno file is very slow19:26
wikingyeah of course19:26
wikingbut essentially it's the same19:26
wikingapart from the IO19:26
@HeikoScopy will be much faster still19:27
@HeikoSserialisation code is not really good ;)19:27
@HeikoSwe should just write copy, its easy, just a bit of work19:27
wikingwell then we have to generate that create_obj() for each non-abstract class19:27
wiking;P19:27
@HeikoSyes19:29
@HeikoSeither by hand or by magic19:29
@HeikoSI dont know19:29
@HeikoSshould be automatic19:29
@HeikoStalk to sören about that19:30
@HeikoSonce its there, I will write the copy code19:30
wikingheheheh19:30
wikingHeikoS: ok19:36
wikingHeikoS: i have another idea19:36
@HeikoSwiking: yes?19:37
wikingmmm just writing to gist19:39
wikingHeikoS: well one simple solution of course19:41
wikinginstead of going throught the whole fucking derived classes19:41
wikingis that we create a factory19:41
wikingof class19:41
wikingand it has a function something like19:42
wikingCSGObject* createInstance(const char* name)19:42
@HeikoSremember that we have to call this from CSGObject and it has to create instances of CGaussianKernel19:42
@HeikoSI see19:42
@HeikoSand then in the factory have the code?19:42
wikingyes19:42
wikinga lot of if (name == "GaussianKernel")19:42
wikingand since we always have get_name() in every class19:42
wikingthis should work19:43
@HeikoSmaybe the factory could do some magic19:43
wikingwell19:43
wikingnot really :)19:44
wikingeither we go with this19:44
wikingand then we have to edit only one file19:44
wikingor do the other19:45
wikingand then we have to edit all the files which are not abstract classes19:45
wiking:P19:45
wikingi'd go with the first option19:47
wikingso we only need to write edit one file19:48
@HeikoSwiking: yes agreed19:49
@HeikoSgotta go now, well talk about this tomorrow19:49
@HeikoSmaybe catch sonney2k on this19:49
-!- lisitsyn [~blackburn@188.168.14.83] has joined #shogun19:50
lisitsynhaaha! votjakovr have you heard the news?19:59
lisitsyndivorce of the asshole!19:59
wikingHeikoS: https://gist.github.com/vigsterkr/572354820:02
votjakovrlisitsyn: hey! nope... Please more details20:02
wikinglisitsyn: comments.... https://gist.github.com/vigsterkr/572354820:02
lisitsynvotjakovr: putin divorces!20:02
wikingsonney2k: when u have battery/time plz check it out and comment: https://gist.github.com/vigsterkr/572354820:03
votjakovrlisitsyn: i think it's not a news :)20:03
lisitsynvotjakovr: now officially!20:03
lisitsynwiking: like generic clone?20:03
wikinglisitsyn: yeah to have clone without starting to edit all the files in shogun20:04
lisitsynwiking: ja gut20:04
wikinglisitsyn: although it will be still pain in the ass to do this for all the classes... and of course what happens if somebody adds a new class and forgets to edit the createObject() static function :P20:05
lisitsynwiking: wait we have some structure20:05
lisitsynwiking: classlist.cpp20:05
wikingwhere's that20:06
lisitsynwiking: base20:06
lisitsynwiking: autogenerated before compilation20:06
wikingah20:06
wikinglol man20:06
wikingstatic class_list_entry_t class_list[]20:06
lisitsynwiking: I wouldn't mind a static map here20:07
wikingthis is it!20:07
lisitsynno it is array20:07
wikingit's already there20:07
wikingyaeh20:07
wikingbut20:07
lisitsynlinear20:07
wikingCSGObject* shogun::new_sgserializable(const char* sgserializable_name, EPrimitiveType generic)20:07
lisitsynahh yes it is here20:07
wikingso we have this already20:08
wiking;)20:08
lisitsynyes wiking how would serialization work otherwise20:08
lisitsyn:D20:08
wikingso if i call shogun::new_sgserializable("ScatterSVM")20:08
wikingi should get a ScatterSVM*20:08
wikingas CSGObject*20:08
wikingso it's all good20:08
lisitsynyes20:08
wikingHeikoS: start working ;)20:08
wikingHeikoS: as we have a factory method20:09
-!- mode/#shogun [+o sonney2k] by ChanServ20:18
@sonney2kwiking, we have that already20:19
@sonney2kwiking, look at the automatically generated shogun/base/class_list.cpp20:19
@sonney2kwiking, HeikoS and then new_sgserializable("CanberraMetric", PT_NOT_GENERIC) will just do what you want20:22
@sonney2kit will also handle templated types20:23
@sonney2ke.g. for DenseFeatures of type float64 you would do20:23
@sonney2knew_sgserializable("CanberraMetric", PT_FLOAT64)20:23
lisitsynHeikoS: uh valgrinding it is not that easy!20:35
wikingsonney2k: yeah lisitsyn just made me aware of that ;)20:43
lisitsynwiking: he doesn't see my messages I guess :D20:44
@HeikoSwiking, lisitsyn, sonney2k well nice, lesson learned :)20:45
lisitsynwiking: begging machine :D20:53
-!- zxtx [~zv@cpe-75-83-151-252.socal.res.rr.com] has quit [Ping timeout: 248 seconds]20:53
shogun-notifier-shogun: Sergey Lisitsyn :develop * 818a18b / tests/unit/converter/TDistributedStochasticNeighborEmbedding_unittest.cc: https://github.com/shogun-toolbox/shogun/commit/818a18beed6343a860178f2347ecdf3ba023211221:12
shogun-notifier-shogun: Added missed unrefs in T-SNE unit test. Closes #115521:12
shogun-buildbotbuild #923 of cyg1 - libshogun is complete: Failure [failed configure]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/923  blamelist: Sergey Lisitsyn <lisitsyn.s.o@gmail.com>21:17
wikingHeikoS: still around?21:35
@HeikoSwiking:  kind of21:35
wikingHeikoS: ok so i've started to write the CSGObject::clone21:36
wikingso i thought that we should have Parameter::clone() and TParameter::clone as well21:36
@HeikoSwiking: nice21:36
wikingjust to make it actually easy21:36
@HeikoSParameter::clone is not necessary21:36
@HeikoSjust TParameter21:36
wikingyeah i know21:36
@HeikoSand also no need for a clone method21:36
@HeikoSsince thats very hard21:36
@HeikoSrather21:37
wikingcopy21:37
@HeikoSwe want a copy method21:37
wiking?21:37
@HeikoSTParameter::copy(TParameter* target)21:37
wikingah21:37
wikingwhat's copy_data?21:37
@HeikoSlet me check21:37
lisitsynHeikoS: https://github.com/shogun-toolbox/shogun/commit/f9cdccf2cf48cf4168437cbc3741288a209a2727#L0L-121:37
wikingbtw: how do i add TParameter to Parameter?21:37
@HeikoShowdy21:38
@HeikoSmaybe this is already there21:38
@HeikoSlet me check21:38
-!- travis-ci [~travis-ci@ec2-23-20-127-141.compute-1.amazonaws.com] has joined #shogun21:38
travis-ci[travis-ci] it's Sergey Lisitsyn's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/785177021:38
-!- travis-ci [~travis-ci@ec2-23-20-127-141.compute-1.amazonaws.com] has left #shogun []21:38
lisitsynoops HeikoS rather that https://github.com/shogun-toolbox/shogun/commit/f9cdccf2cf48cf4168437cbc3741288a209a2727#L0R3621:38
@HeikoSwiking: I think we can use this existing one. we might have to modify it21:39
@HeikoSbut thats great in fact21:39
@HeikoSlisitsyn: I like this, but is it that much easier than before?21:39
lisitsynHeikoS: actually no21:40
@HeikoSwiking: the copy_data is nice since it exploits c++21:40
lisitsynlets see if I get something reasonable from it21:40
@HeikoSit just copies the memory21:40
wikingHeikoS: iok i'll just do that for now21:40
@HeikoSwiking: but please dont change anything yet, we need to take care when doing that since copy_data is deeply involved in the migration framework21:40
wikingHeikoS: Paramater needs an add_parameter(TParameter*) function though21:40
wikingHeikoS: i won't touch anything in TParameter21:41
@HeikoSwiking: why?21:41
@HeikoSwiking no we cannot use this method21:41
@HeikoSwe should add a new one21:41
@HeikoS(and maybe remove the old one at some point)21:41
wikingwhy is it not good?21:42
wikingjust that i know what to look out for21:42
@HeikoSwiking: huh, its baaaad code21:42
@HeikoSI did not know shogun well enough back then21:42
@HeikoS ;D21:42
@HeikoSwe should rewrite it21:42
@HeikoSand we should do it the better way21:42
lisitsynno forward declaration for enum ARGH21:43
lisitsynwiking: HeikoS: a note to remember: you can't forward declare an enum21:43
@HeikoShaha :)21:44
lisitsynit is totally freaking possible to forward a class21:45
lisitsynbut not an enum21:45
wikinglisitsyn: ? :)21:45
@HeikoSwiking: yeah this copy_data is a nightmare21:46
@HeikoSI should get inprisoned into golark for at least 2 years for that21:46
lisitsynwiking: unentangling includes here21:46
wikingHeikoS: ok i'll redo one then21:47
wikingi'll just add it to a separate branh21:48
wikingso you can comment it21:48
wiking*branch21:48
@HeikoSwiking: I can also do this one, since I already diud the equals21:48
@HeikoSthat might be more effective21:48
wikingHeikoS: i need it now :)21:48
@HeikoSwiking: okay, let me start now then21:48
@HeikoSwill push to a feature branch21:48
wikingcool21:48
wikingHeikoS: wait21:49
wikingbefore doing that21:49
wikingwell no matter do it :)21:49
-!- zxtx [~zv@rrcs-74-62-200-195.west.biz.rr.com] has joined #shogun22:04
shogun-notifier-shogun: Sergey Lisitsyn :feature/model_selection_syntax * e46acce / src/ (6 files): https://github.com/shogun-toolbox/shogun/commit/e46acce195d84bfe8267f8a8fd9aea24d8d51ad222:06
shogun-notifier-shogun: Extracted model selection range builder out22:06
lisitsynHeikoS: ping22:13
@HeikoSpong22:13
lisitsynHeikoS: what if we put root of model selection tree22:14
lisitsynto machine?22:14
@HeikoS?22:14
lisitsynHeikoS: well we just set parameters for classifier22:15
lisitsynand it stores the root22:15
lisitsynHeikoS: classifier = LibSVM()22:15
@HeikoSno the root never has something22:15
@HeikoSyou have to create a child and add parameters there22:15
lisitsynclassifier.parameter("C1")....22:16
lisitsynHeikoS: ^ this creates the root and adds a child22:16
@HeikoSok22:17
lisitsynHeikoS: so what do you think?22:18
lisitsyncurrently it looks like no tree is needed then22:18
@HeikoSlisitsyn:  let me check that tomorrow22:18
@HeikoSbut already looking good!22:18
lisitsynI mean it will be under the hood22:18
@HeikoSyes, thats pretty cool"!22:18
lisitsynHeikoS: what I am worried though22:18
lisitsynsay we have root of classifier22:18
lisitsynand then we add kernel as parameter22:19
lisitsynkernel should also have a root22:19
lisitsynit should be handled somehow22:19
lisitsynargh I wish I could draw what I mean22:19
@HeikoSwiking: its a bit more tricky than I thought22:19
@HeikoSthis will not be quickly solved22:19
@HeikoSI gotta think about a few things22:19
@HeikoSlisitsyn:  not following :)22:20
lisitsynHeikoS: alright laterz22:20
@HeikoSwiking: so the problem is overwriting old data22:20
@HeikoSlisitsyn: no explain22:20
lisitsynHeikoS: hmm alright22:20
@HeikoSwiking: we should do this very carefully, then we might also catch problems of the migration framework somehow22:20
lisitsynclassifier has root22:20
@HeikoSwiking: first thing is to write a TParameter::copy_ptype22:21
lisitsynthen we add a kernel as child22:21
@HeikoSthats already quite a challenge22:21
lisitsynkernel also has root22:21
@HeikoSwhy has a kernel a root?22:21
lisitsynkernel.parameter("width").blabla22:21
wikingHeikoS: overwriting old data?22:21
@HeikoSwiking: I will look at this on the weekend22:21
lisitsynwe should have some root for that too22:21
@HeikoSwiking: yes there are all sorts of issues arising from that22:21
wikingHeikoS: why we would overwrite anything?22:22
lisitsynHeikoS: in the end everything should be merged into one tree I mean22:22
@HeikoSlisitsyn: but there is only one root in the tree22:22
wikingi mean what we actually need is a simple clone of the TParameter22:22
@HeikoSyou just append the rest22:22
lisitsynHeikoS: yes and we should avoid empty nodes here\22:22
@HeikoSwiking: well imagine an object has a CSGObject variable22:22
lisitsynlike appended root22:22
@HeikoSthis one is not NULL22:22
@HeikoSafter std constructpor22:22
@HeikoSthen the copy will overwrite it22:22
@HeikoSso we might need to free memory22:22
@HeikoSwhich is scary stuff, trust me, I have spent hours of hours on that 2 years ago22:23
@HeikoSThis time, I want to do it more systematically22:23
@HeikoSlisitsyn: I am note sure this would even work with empty node22:24
@HeikoSs22:24
@HeikoScant you just remove the root?22:24
lisitsynHeikoS: yes won't work so I'd have to merge22:24
lisitsynHeikoS: oh I think I understand what should be done here22:24
lisitsynlets see if I implement that22:24
wikingHeikoS: can't we just call clone on the TParameter if it's a CSGObject? :)22:24
@HeikoSyep22:25
@HeikoSthats what we need to do22:25
wikingok22:25
lisitsynHeikoS: my aim is to avoid any tree construction for user22:25
@HeikoSbut still the old one has to be de-referenced22:25
wikingHeikoS: old one? :)22:25
@HeikoSyes the existing object in the TParameter to copy to22:25
@HeikoSlisitsyn: very good aim22:26
@sonney2kwiking, when you do that - one very welcome patch would be to make the copy constructor private and empty in each Object22:27
@sonney2kto prevent abuse22:27
-!- nube [~rho@49.244.31.182] has quit [Ping timeout: 276 seconds]22:27
@sonney2kand only in objects that support shallow copy change that behavior22:27
@HeikoSsonney2k: thats good!22:27
@HeikoSwiking, sonney2k I will start working on the copy_ptype soon, this is the hardest one22:28
@sonney2kHeikoS, wiking - I hope you agree that we do shallow copies in copy constructor (as in refcount increase but no real copy)22:28
@sonney2kand clone() for real copy22:28
wikingsonney2k: yes22:28
@HeikoSthen there are some issues with the datatype lengths, but these are less complicated22:28
@HeikoSsonney2k: totally, yes22:28
@sonney2kok (it is the same we do with sgvector currently...)22:29
wikingHeikoS: i really cannot see the complication atm you are talking about22:29
wikingbut i guess you know what's happening there22:29
wikingoppose to me who has no clue :)22:29
@sonney2kwiking, believe me - trust HeikoS22:29
@sonney2kHeikoS, I am close to have SGSparseMatrix stuff to compile22:30
@sonney2kHeikoS, but I know upfront serialization will be totally b0rken22:30
@sonney2kHeikoS, any ideas how to handle that?22:30
@HeikoSwiking: I dont mean to be slowing this stuff down, its just that I have been into exactly these problems a while ago and made the mistake of not thinking well enough about them which causes all sorts of annoying problems.22:31
@HeikoSsonney2k: what?22:31
@sonney2kSGSparseVector / SGSparseMatrix22:31
@HeikoSwiking: once I have a quite moment, I will checkout the copy_ptype one22:31
@HeikoSsonney2k: no idea, I would rather do that later after GSoC22:31
lisitsynCModelSelectionParameters* parameter(const char* name)22:31
@sonney2kHeikoS, so we leave it broken?22:31
lisitsynHeikoS: sonney2k: ^ to sgobject?22:32
@HeikoSsonney2k: thats also crap you are right22:32
@HeikoSsonney2k: so what about this? I was talking the lambday about unit-testing the serialisation framework22:32
@HeikoSfor all types seperately22:32
@sonney2kHeikoS, btw you still have 2 bugs assigned and the equals method is waiting :D22:32
@HeikoSfrom low-level22:32
@HeikoSso if this is working, the transition for sparse will be much easier22:33
@HeikoSsonney2k: I know, but the parameter stuff is all related22:33
@sonney2kHeikoS, problem is we need this sparse stuff ASAP for van51's dotfeature improvements22:33
@sonney2kwe currently disabled some tests that are crashing otherwise22:33
@HeikoSsonney2k: okay, so lambday is currently writing serialisaion tests for complex22:33
@HeikoSI can ask him to write these for all types22:34
@HeikoSshould not take more than a day or so22:34
@HeikoS(he already agreed to do that ;)22:34
@HeikoSbut we postponed since we thought its not needed now22:34
@HeikoSshould I ask him?22:34
@sonney2kHeikoS, yeah but we have no way of restoring any of the SGReferenced data types22:34
@HeikoSonces these work you will get very low-level answers of what is wrong22:34
@HeikoSmaybe it doesnt help22:35
@HeikoSI dont know22:35
@HeikoSjust want to avoid that things become broken and that we loose more shogun parts when doing this22:35
@HeikoSthe last time costed us the streaming framework22:35
@sonney2kHeikoS, recall that we have this hack currently for storing SGVector and double* in the same way22:35
@HeikoSyep22:35
@sonney2kHeikoS, van51 will need that too - so we will need to see a conversion to SGVector / SGSparseVector there too22:36
@sonney2kHeikoS, van51 is writing the best tests I have seen so far22:36
@sonney2kso what we will get from him will survive quite a bit of refactoring :D22:36
@HeikoSso maybe he can give lambday a hand?22:37
@HeikoSthats good :D22:37
@HeikoSmaybe just go ahead, but in a feature branch?22:37
-!- travis-ci [~travis-ci@ec2-23-20-127-141.compute-1.amazonaws.com] has joined #shogun22:39
travis-ci[travis-ci] it's Sergey Lisitsyn's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/785358522:39
-!- travis-ci [~travis-ci@ec2-23-20-127-141.compute-1.amazonaws.com] has left #shogun []22:39
-!- nube [~rho@49.244.14.162] has joined #shogun22:41
-!- votjakovr [~votjakovr@host-46-241-3-209.bbcustomer.zsttk.net] has quit [Quit: Leaving]22:43
@HeikoSdude, shogun grows, takes ages to compile22:58
lisitsynHeikoS: I am desperate to find a way22:58
@HeikoSfor what?22:58
lisitsynHeikoS: I want to drop some code actually22:58
@HeikoSlisitsyn:  really? why?22:58
lisitsynHeikoS: to make it compile faster22:58
@HeikoSI see22:58
@HeikoSlike modules22:58
lisitsynHeikoS: we should drop unsupported code22:58
@HeikoSyep, I would agree, make a stable release22:59
@HeikoSand try to extend that22:59
@HeikoSbut out of scope for now :D22:59
@HeikoStoo many other things22:59
lisitsynHeikoS: and more important may be we should get rid of templated features22:59
@HeikoSyes?22:59
@HeikoSman22:59
@HeikoSthats tough22:59
-!- hushell [~hushell@c-24-21-141-32.hsd1.or.comcast.net] has quit [Ping timeout: 245 seconds]23:00
lisitsynHeikoS: it is useless23:00
lisitsynHeikoS: no reason to expose real type23:00
lisitsynHeikoS: in modular features we are not able to provide compile-time checks anyway23:01
@HeikoSyeah maybe23:01
lisitsynHeikoS: so template it or not - it just doesn't matter23:01
lisitsynHeikoS: next is shared_ptr23:01
@HeikoSyep23:01
@HeikoSmany things that will break all the old stuff :D23:02
lisitsynHeikoS: that's good23:02
@HeikoSwe can also think of rewriting it in proper c++ ;)23:02
@HeikoSlike eigen23:02
lisitsynHeikoS: well depends23:02
lisitsynHeikoS: I am experting in hoch C++ but not all of its features are needed there23:03
lisitsynHeikoS: we are really tied to interfaces23:04
lisitsynso no C++ tricks here23:04
@HeikoSyeah23:04
lisitsynI wish we at least had operator overloading23:04
lisitsynbut it is possible only for python23:04
lisitsynHeikoS: if we had it we could write svm.C() = 323:04
lisitsynor svm.C = 3 which is even better23:05
@HeikoSyeah23:05
@HeikoSpython is quite cool23:05
@HeikoSrecently done a lot of things in it23:05
@HeikoSno need for other languages :D23:05
@HeikoSso easy to write ml stuff23:05
lisitsynHeikoS: I would drop some interfaces too..23:05
@HeikoSR Matlab and python and the most important ones anyway, maybe java23:05
@HeikoSare, not and23:05
lisitsynHeikoS: no we are not java library23:05
@HeikoSwell, some ML people use java23:06
@HeikoSthats how it is23:06
@HeikoSMatlab is also shit23:06
@HeikoSand I also dont like R23:06
@HeikoShowever23:06
lisitsynHeikoS: no java is cool23:06
lisitsynand fast23:06
@HeikoSshould be supported23:06
lisitsynbut we are not following java23:06
lisitsynit is important for java programs to heavily use OOP and interfaces and etc23:06
lisitsynusing it as low-level backend for ML is too cumbersome for java23:07
lisitsynand anyway recalling that java is mapreduce23:07
lisitsynI wouldn't expect anyone use it like that23:07
lisitsynHeikoS: ah and one more thing - java is dead :D23:09
lisitsyn(the language)23:09
@HeikoSlisitsyn:  yeah23:09
@HeikoSagreed23:09
@HeikoSso which ones would you keep?23:09
lisitsynnow it is like a platform for new cool languages23:09
lisitsynHeikoS: COBOL, Shakespeare and Fortran interfaces are must have23:10
lisitsynso I'd keep these ones23:10
@HeikoSargh unit tests segfault23:11
lisitsynHeikoS: we desperately need matlab modular and R modular23:11
@HeikoScannot run my own ones :(23:11
@HeikoSlisitsyn:  totally23:11
@HeikoStop priority23:11
@HeikoSbut so annyoying ;)23:11
lisitsynlua/ruby -> trash23:11
@HeikoSthere will be soon many stats people trying to use shogun23:11
@HeikoSthey need R23:11
@HeikoSand some also matlab23:11
lisitsynHeikoS: may be I should attempt revivification of matlab swig23:13
@sonney2ksry guys got disconnected23:13
@HeikoSlisitsyn: yes I have the feeling that we have to push this23:13
@sonney2kHeikoS, the last thing I saw was - thats good :D23:13
@HeikoSsonney2k: ehm :)23:14
lisitsynI don't know if the only brain cell of mine is capable of doing that23:14
@sonney2kyou both are funny23:14
@HeikoSthats a while ago23:14
@HeikoSsonney2k: its getting late ;)23:14
@HeikoSso whats wrong with the unit tests23:14
@HeikoSsome fail23:14
@HeikoSthe others dont terminate23:14
@HeikoS(on my machine)23:14
lisitsynHeikoS: have you cleaned?23:14
lisitsynthe closet23:14
@sonney2kmaybe we should write a new matlab clone?23:14
lisitsynsonney2k: ha-ha funny23:15
@sonney2kwell I heard you say you want to do swig for matlab *haha*23:15
lisitsynsonney2k: well it was tried to be done23:15
lisitsynI don't know the status23:15
lisitsynhttp://julialang.org/23:15
@sonney2kno nothing there23:15
@sonney2kand who has matlab?23:15
wikingHeikoS: do a make clean in unit/tests23:16
lisitsynlets rather add an interface for julia23:16
@sonney2kwe couldn't even run tests for that23:16
lisitsynsonney2k: I have everything23:16
wikingHeikoS: usually that's when u have segfaults in unit tests23:16
@HeikoSwiking: cool thanks!23:16
lisitsynsonney2k: anti-piracy thing is not here yet :D23:16
@HeikoSjulia :D23:16
wikingyeah let's have interface for sas and spss as well23:16
wikingjust in case23:16
@HeikoSthere is also the google lanuage23:17
lisitsynwiking: hahah23:17
@HeikoSthen we get more slots23:17
lisitsynHeikoS: julia is fast23:17
lisitsynaccording to benches23:17
@sonney2klisitsyn, well and javascript is fast too!23:18
@sonney2kwait fortran is faster!23:18
lisitsynsonney2k: java script is crazy fast23:18
@HeikoSlisitsyn:  I dont even know julia23:18
lisitsynHeikoS: well me neither :D23:19
wikingsonney2k: well if it's about vectors then of course fortran is better than c :P23:19
@HeikoSa guy I know is writing a framework for automagic differantiation in ulia23:19
lisitsynthere is also http://halide-lang.org/23:19
@sonney2kso lets make a vote - which language are you guys using besides C++ ?23:20
lisitsynanyway guys - if we don't go either distributed or GPU or massive multicore or reduce the size of our codebase we are going to die23:20
lisitsynsonney2k: python javascript clojure java23:20
wikinglisitsyn: nono it'll end up being like octave :P23:20
@sonney2klisitsyn, compile time of libshogun didn't grow over the years btw23:21
@sonney2klisitsyn, for me it is java, python,javascript23:21
lisitsynsonney2k: no the size of codebase is the # of bugs23:21
@sonney2klisitsyn, wrong23:21
wikingpython, java23:21
lisitsynsonney2k: not wrong23:21
wikingbtw why dont we pursue that thing with viennacl?23:22
@HeikoSsonney2k:  really?23:22
@sonney2klisitsyn, yes you are - number of bugs only goes out of control if you have dependencies like in a fully connected graph23:22
@HeikoSI have the feeling it takes longer that a while ago23:22
@sonney2kHeikoS, and you?23:22
@HeikoSlanguages?23:23
lisitsynsonney2k: writing pointers in 2013 is wrong23:23
@sonney2kHeikoS, I am talking about libshogun. Of course if we do heavy template  meta programming then we can kill ourselves23:23
@sonney2kHeikoS, languages is only slow with swig but that is only because we have a single module at the end23:23
lisitsynwe are killing ourselves right now23:23
lisitsyn:D23:23
@HeikoSideal world: python, R, Matlab/octave, maybe java23:24
@HeikoSsonney2k: thats all fine23:24
@HeikoSdid not complain I just was impressed by the size of the codebase23:24
@sonney2klisitsyn, I don't see this. to me it seems we are improving23:24
lisitsynsonney2k: improving in what?23:24
@sonney2kcode quality & tests23:24
lisitsynwell we reduce number of bugs23:25
@HeikoSI agree on that we are improving23:25
lisitsynwhat is the purpose of having 34234 svms23:26
lisitsynif we don't even support them?23:26
@sonney2kHeikoS, ohh maybe we have a misunderstanding with compile time. When I started like 14 years ago machines were slow and the code base was tiny. Machines scaled up just nicely23:26
@sonney2klisitsyn, which svm is unsupported?23:27
lisitsynsonney2k: what about scatter svm?23:27
lisitsynyou don't even sure it works23:27
@sonney2kyes it works23:27
@sonney2knot a killer though23:28
lisitsynwhy to have anything that is not a killer?23:28
@sonney2kno free lunch...23:28
lisitsynwe are just collecting code23:28
@sonney2kit is like saying neural nets are the best - drop the rest23:28
@sonney2kit is just wrong and stupid23:28
lisitsynsonney2k: I don't see the slot we are targeting23:28
@sonney2klet the user decide what to use23:29
@sonney2kok I see23:29
lisitsynsonney2k: 99,9% of users will just use working solution23:29
@sonney2ksure23:29
@sonney2kargh brb23:29
lisitsynHeikoS: can you explain what is the slot I am talking about?23:30
lisitsyndo you see any?23:30
@HeikoSlisitsyn:  I agree with you on this one23:30
@sonney2klisitsyn, sure I do23:30
@HeikoShowever I have a different perspective23:30
@HeikoSI think we should have proper documentation of all these methos23:30
@sonney2kthe unique feature of shogun is that you can use almost any kind of feature type23:30
@HeikoSexplain the user what he can do23:30
@HeikoStell him std ways to do things23:30
@HeikoSand drop stuff that is not working 99%23:31
@sonney2kstacking features together with dotfeatures and multiple kernels / distances23:31
@sonney2kand all algorithms with bindings to several languages23:31
@HeikoSI also think we should be careful with adding all these things23:31
@sonney2kso what you have learned with C++ will work with python & java23:31
@HeikoSwe are sometimes just adding new methods for the purpose of having them23:31
@HeikoSbut they are not used23:31
@HeikoSsince not working/not documented23:31
lisitsynHeikoS: we are constantly doing that23:32
@sonney2kHeikoS, but that is a thing of the past23:32
@sonney2klisitsyn, no23:32
@sonney2know we require tests and examples and doc23:32
@HeikoSefforts should be still focussed a bit more towards usability23:32
lisitsynthis year gsoc will be just expanding the codebase again23:32
lisitsynno matter it covered with tests or now23:33
lisitsynor not*23:33
@HeikoSlisitsyn:  well if things are well documented its fine to add23:33
@HeikoSbut only then23:33
@HeikoSotherwise its a bit pointless23:33
@HeikoSeven more if they stop working after a while23:33
lisitsynHeikoS: recalling scikits23:34
lisitsynthey have a rule23:34
lisitsynthey just don't implement anything that has less than say X citations23:34
wiking lisitsyn http://viennacl.sourceforge.net/viennacl-examples-eigen.html23:34
lisitsynwiking: I used that23:34
wikingand?23:34
lisitsynwell it worked23:34
lisitsynwiking: what else would you expect ;)23:35
@HeikoSlisitsyn: I dont think thats a very helpful rule23:35
@sonney2kyeah it is useless23:35
@HeikoSbut I really find their website amazing23:36
@HeikoSalso, things work23:36
@sonney2kit is like MKL or group lasso would be worth having23:36
lisitsynHeikoS: ohh well who needs X if we have no random forest23:36
@HeikoSlisitsyn: yes agreed23:36
lisitsynwe don't even have the baseline23:36
lisitsynthe algorithms everybody uses23:36
@HeikoSyep23:36
@HeikoSeven worse23:36
lisitsynso that's a helpful rule23:36
@HeikoSeven developers fail to use existing methods23:36
@sonney2kwell of course if you set the threshold very high then it will work23:37
@HeikoSI would raher go for proper quality23:37
@sonney2kHeikoS, that is because ML is complex...23:37
wikingquality is one thing23:37
wikingbut as lisitsyn pointed out23:37
@sonney2kand you need to be an expert in using the methods23:37
@sonney2kHeikoS, if you don't know about SVMs you will fail using them23:37
@sonney2kno matter what23:37
@HeikoSsonney2k: I dont agree on that23:37
wiking2 things are needed: a) somehow be able to scale. or target embedded environment, but we already failed that with this codebase23:38
wikingb) start having some really basic ML methods as well ;P23:38
@sonney2kwiking, libshogun runs on an iphone ...23:38
wikingsonney2k: it does23:38
wikingi know23:38
wikinghave u tried to run a classification?23:38
@sonney2kfor what task?23:39
wikingsonney2k: liblinear23:39
wikingso i'm not asking to be able to train23:39
@sonney2kthat is the algorithm23:39
wikingjust to be able to classify23:39
@sonney2kyes so?23:39
lisitsynit is all performance <-> scalabilty tradeoff23:39
@HeikoSguys, what do you think on a priority list?23:39
lisitsynI can already say we are not going to be remarkable among scalable solutions23:40
@sonney2kwiking, it is very fast and lean yes23:40
wikingand that's another question. if we want embedded code then we should be able to throw out half of the library somehow since nobody expects to be able to run training on an embedded device. only classification23:40
wikingsonney2k: it's a shit :)23:40
@sonney2klisitsyn, what is scalable for you23:40
@sonney2kwiking, nope faster than liblinear23:40
wikingsonney2k: we don't use any part of iphone's arm processor23:40
@HeikoSwhy do we even care about iphones?23:40
lisitsynsonney2k: what runs on multiple machines23:40
wikingjust the simple fucking x86 asm instruments23:40
@HeikoSshogun is scientific software23:40
wikingno NEON optimization23:41
@HeikoSanyone who wants to do commercial stuff uses another package anyways23:41
@sonney2kwiking, we use blas / lapack / atlas - so yes we do if you have dense features23:41
@sonney2kHeikoS, I don't personally care23:41
@sonney2kHeikoS, I need shogun to do rapid prototyping23:41
wikinga simple cortexA8 (which is like iphone 1 or 2) has some really good asm instruments that we dont exploit at all23:41
@sonney2kso I can test algorithms23:41
lisitsynI don't get the point of using iphones though23:42
-!- iglesiasg [d58f321f@gateway/web/freenode/ip.213.143.50.31] has joined #shogun23:42
@sonney2kand yes scipy and all other solutiosn I tried where way way too slow23:42
@HeikoSsonney2k: I try that often too, but I usually find things crashing or I dont understand how to use them23:42
-!- mode/#shogun [+o iglesiasg] by ChanServ23:42
lisitsynsonney2k: come on we are *SLOWER* than scikits23:42
wikinglisitsyn: well if not embedded target then we need to be able to run on clusters, or at least multicore or gpu23:42
@sonney2klisitsyn, *lol*23:42
@sonney2kwiking, the stuff I used doesn't benefit from GPUs at all23:43
wikinglisitsyn: currently we are having the typical beginning of 2000s desktop machine target23:43
lisitsynwiking: exactly23:43
wikingwhich was great back then23:43
lisitsynwiking: yes out of time23:43
lisitsynit is not 201323:43
@sonney2kand yes the stuff I needed uses multiple cores23:43
wikinglisitsyn: heheh just as a sidenote: sw from ibm released in 2012 was not supporting utf823:44
lisitsynwiking: yes they are in 1980s still I guess23:44
wiking2012 and no utf8... i was about to fucking blow up ibm23:44
wiking:)23:44
@sonney2kHeikoS, well that we can fix with tests/examples/documentation23:44
@HeikoSsonney2k: yes totally23:44
@HeikoSI am optimistic :)23:44
@HeikoSwould just change things a bit23:44
wikingsonney2k: ok i understand that what you use specifically does not benefit from gpu23:44
@sonney2kI don't see the GPU hype23:44
@HeikoShave *.deb packages for people23:45
@HeikoSproper webiste23:45
@HeikoStutorial23:45
wikingneither from multicores nor from clusters23:45
@HeikoSstd method working23:45
wikingbut23:45
@HeikoShave nice examples as scikit23:45
wikingeven if one method woudl benefit from it23:45
lisitsynsonney2k: the trouble is that you don't need the things you needed anymore23:45
@HeikoSand continue to extend with cool algorithms23:45
wikingwe dont even have a the means to implement it in shogun23:45
lisitsynneither do I23:45
@sonney2klisitsyn, I still do23:45
@HeikoSI would stay away from GPU and cluster stuff23:45
@sonney2klisitsyn, I cannot train with scikits in 100million on the fly computed feature spaces23:45
lisitsynsonney2k: yes it is not suited for that23:46
@HeikoSbut use multicore and independent jobs over PBS stuff23:46
@sonney2kand I personally don't have a cluster here at home23:46
@sonney2knor a GPU23:46
lisitsynfor dense stuff we suck23:46
@sonney2kso I cannot test that stuff23:46
wikingsonney2k: u still use simple terminal in linux?23:46
@sonney2klisitsyn, where exactly?23:46
@sonney2kwiking, no some multicore machine23:46
@sonney2kwiking, 512GB memory and 64cores23:46
@HeikoSlisitsyn: rather than being fast I also would like to be easy to install23:46
wikingi mean really you do not own any machine that has a gpu?23:46
@HeikoSI always have to explain people new to shogun about 1hr how to set it up23:47
wikingthat supports opengl 1.0?23:47
@sonney2kwiking, I do but it is faster using the CPU for the algorithms I use23:47
@sonney2klike SVMs23:47
lisitsynsonney2k: mainly usability and availability of methods23:47
wikingsonney2k: because in that case i'll start asking for donations that we buy you a simple nvidia card ;)23:47
@sonney2kwiking, I have one but it is *slower* to use it23:48
wikingso you can play doom 3 :)23:48
wikingsonney2k: yeah no i get it of course23:48
wikingsonney2k: moving around data between memory is slooow23:48
@sonney2kexactly23:48
wikingand it might even kill the benefit of having gpued algo23:48
wikingthat's all good23:48
wikingdon't get me wrong: been there done that23:48
wikingbut still23:48
@sonney2kwiking, you need highly tuned mini-batch algorithms to benefit from GPUs at all23:48
lisitsynguys even samsung S4 has 8 cores already23:49
wikingwe do not have the FW within shogun to support anything that is multicore or clustered or GPUed23:49
@sonney2klisitsyn, nope 4 cores!23:49
lisitsynand you are still saying it is ok to use 1 core23:49
lisitsynin 201323:49
lisitsynit is totally un-ok23:49
@sonney2klisitsyn, shogun uses multiple cores since 199923:49
wikingsonney2k: how?23:49
wikingplease tell me23:49
wikingand dont tell me to use pthread23:50
@sonney2kit is one of the first svm's that does this23:50
wikingin 201323:50
wiking:D23:50
@sonney2ksure pthread23:50
wikingfuck man23:50
wikingthat's like great stuff23:50
wikingand everything is depending on it23:50
wikingbut there are new ways (better ways) to do multithread23:50
@sonney2kwiking, how?23:50
lisitsynopenmp / tbb23:50
lisitsynat least23:50
wikingthere's a good reason why people invented openmp23:50
@sonney2kyou cannot cancel an openmp job without killing the whole process23:51
@sonney2kwith pthreads you can still intervene23:51
@sonney2kever trained on massive datasets with shogun?23:51
@sonney2kI did?23:51
wikingsonney2k: but it takes like 10x more time to do a simple parallel for loop with ONLY pthread23:51
wikingthan openmp23:51
wikingand that's the smallest thing23:51
lisitsynwhat I don't like in such verbose things23:52
@sonney2kyeah but what if you want after a few days of computing just stop the job and get a result?23:52
lisitsynhundreds of lines to do a simple thing23:52
@sonney2kwith shogun you can just send it a SIGURG and you get it23:52
lisitsynand often repeated23:52
@sonney2klisitsyn, I know23:52
lisitsynit is unsupportable23:52
@sonney2kI don't like that either23:52
lisitsynlife is too short and we are too busy to have so many LoC23:52
@sonney2kbut openmp is not done well :/23:53
wikingsonney2k: i mean using today pthread for multicore23:53
wikingis like writing mmx and sse2 code23:53
wikingin asm23:53
@sonney2kwiking, c'mon stop wining openmp uses pthreads too23:53
@sonney2ktrue23:53
wikingfor exploiting SIMD23:53
wikingin your cpu23:53
wikingand dont get me wrong23:53
wikingi did that23:53
@sonney2kwiking, that is what eigen3 and atlas people are doing23:54
@sonney2kwiking, me too23:54
wikingbecause actually it was better the way i wrote the asm (better = faster) than start fukcing around with gcc optimization flags and using the intristrics header23:54
wiking(or how the fuck you call it)23:54
lisitsyneigen3 is actually not more the performance thing23:54
wikingbut then again23:54
lisitsynGCC optimizes it the same way usually23:54
wikingit's a fucking pain in this23:54
wiking*ass23:54
lisitsynbut loops is useless LoC23:54
@sonney2kwiking, nowadays the compiler does it almost as good23:54
lisitsynwhich are = bugs23:54
wikingsonney2k: yeah i know but still...23:55
wikingthat wasn't the point23:55
wikingthe point was that our codebase is like blowing up23:55
wikinggithub can tell stats about it for sure23:55
wikinghow much each month23:55
wikingbut if we want to support multicore for one simple little algo23:55
wikingwe start to blow up even more our codebase23:55
wikingbecause it's a fucking nightmare to write with only pthread23:56
wikingno no true23:56
wikingit's nice and clean etc23:56
wikingbut huge amount of code redundancy23:56
wikingfor sure and a lot of waste of time...23:56
wikingand yes as you pointed out openmp has it's drawbacks23:57
@sonney2kwiking, https://www.ohloh.net/p/shogun23:57
@sonney2khere you see how our code base grows23:57
wikingbut i think it has a lot of pros as well23:57
-!- hushell [~hushell@8-92.ptpg.oregonstate.edu] has joined #shogun23:57
wikingto start actually fucking at least recognise with ./configure if we have openmp support23:57
wiking;)23:57
wikingi mean if we can have one...23:57
lisitsynwell we already have openmp code23:58
lisitsynin tapkee23:58
lisitsynbut it is not used in shogun23:58
wikingsonney2k: so in ~1 year we got 100k LoC23:58
lisitsynso just disabled23:58
wikingextra i mean23:58
wikingand imagine we start thinking about doing some fancy multicore stuff for some of the algos using oooonly pthread23:59
wikingthat's +30k LoC23:59
wikingeasy23:59
wiking:)23:59
--- Log closed Fri Jun 07 00:00:18 2013

Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!