Open in new window / Try shogun cloud
--- Log opened Sat Nov 24 00:00:15 2012
-!- n4nd0 [] has quit [Quit: leaving]00:37
shogun-buildbotbuild #183 of nightly_default is complete: Failure [failed test]  Build details are at
-!- ptizoom [] has quit [Quit: Ex-Chat]04:51
-!- ptizoom [] has joined #shogun04:52
wikinganybody around?14:20
wikingblackburn: ping14:27
blackburnwiking: re15:26
blackburnwiking: what's up?15:35
wikingwhy is it ported this way into shogun15:43
wikingnow it's like aimed to be used for kernel machine15:44
blackburnwiking: uhm?15:45
blackburncan it be used for anything else?15:46
wikingit's a general15:47
wikingqp soler15:47
blackburndidn't know15:49
blackburnmay be it is not that cool for other problems15:50
wikingwell it's just solves this problem16:05
wikingmin 0.5*alpha'*H*alpha + c'*alpha16:05
wikingsubject to  sum(alpha) = 1,  alpha(i) >= 016:05
blackburnwiking: so you mean it can be used for your problems?16:20
blackburnis it still state-of-the-art?16:20
-!- zxtx [] has quit [Ping timeout: 244 seconds]16:38
@sonney2kwiking, isn't it in libqp nowadyas anyways?19:13
blackburnsonney2k: ha, JL works on C api for VW19:16
blackburneven better19:16
blackburnwe don't have to do anything just wait :D19:16
wikingsonney2k: ?19:30
wikingsonney2k: i don't know i mean i've just seen at vojtech's page that he used to release19:30
wikingdifferent gmnp versions19:30
wikingi mean with different optimizers19:30
wikingbut maybe it has been the past19:30
wikingand now he has a good reason why not to push forward gmnp releases19:31
wikingand that's why they decided to use libqp as well for the bmrm stuff with uricamic19:31
wikingi'll just fucking push this stuff because i'm already ready with this19:33
wikingalthoguth the implementation could be cleaner...19:33
wikinganybody up for reviewing19:33
@sonney2kblackburn, I know - there was hope shashwat could do this but he is busy with real life19:38
wikinggreat sonney2k here u go then19:38
wikingdo a review19:38
blackburnreview what?19:41
wikingthe new code19:41
wikingjust a sec19:42
-shogungit:#shogun- [shogun] vigsterkr opened pull request #833: Introduction of a new non-convex bundle method risk minimization algorithm (
blackburndo you take vodka? what makes you productive?19:46
wikingoh shit19:46
wikingi think this wont compile19:47
wikingi'll have to push an extra commit19:47
blackburn#if 019:47
wikingwhere is it stuck?19:47
wikingblackburn: sorry i had to make some debugging19:47
blackburnwell I mean19:47
blackburndoes it work to define 0?19:47
wikingit works to comment out something19:47
wikingah that shit has been removed already19:48
wikingso don't worry19:48
wikingbut still wait19:49
wikingbecause there's one compiling bug19:49
wikingbut yeah it's not only about ncbm19:50
wikingit's as well some optimization of libbm*19:50
wikingit's a very weird matlab -> c code19:50
wikingso it still has to be cleaned up imho19:50
blackburnwiking: can you cleanup my code too? ;)19:52
wikingthink about where should we put all these optimizers19:52
wikinglike libbmrm etc19:52
blackburnjust put somewhere19:52
blackburnnobody uses our shit anyway lol19:53
blackburnwhy not here?19:53
wikingwell we could19:54
wikingbut currently the stuff there19:54
wikingare all external stuff19:54
blackburnfeel free to move19:54
blackburnI wanted19:54
wikingok i've pushed the fixing commit19:54
blackburnthen I get back to my alco addiction and sank in vodka19:55
wikingok if anybody has time for this19:55
wikingdo a review and then apply the patch19:55
blackburnI have19:55
blackburnwiking: #if 0 is still here19:56
wikingmmm there's a problem now with gcc19:57
wikingin travis19:57
wikingso wait19:57
blackburnwiking: did you get a moment to check tapkee before?19:58
wikingnone :(*19:59
wikingwas working on this19:59
blackburnno problem just meant it is still actual :)19:59
wikingyeah will do20:00
wikinghow's the stuff with20:00
blackburnI have doubts with some design things20:00
wikingyeah that shit20:00
blackburnwell not yet20:00
wikingi'd be keen to try that20:00
blackburnI keep this in mind20:00
blackburnwiking: how great is your openmp experience?20:01
wikingnot sooo great20:01
wikingtried it like20:01
blackburnI have some hard times with it20:01
wikingin 2004-520:01
wikingno wait20:01
wikingwhat's the problem20:01
blackburn wiking for example loop in lines 74-87 is slower when parallel20:03
wikinggcc fails20:03
wikingwhy you nooo want to see20:04
wiking/home/travis/builds/shogun-toolbox/shogun/src/shogun/structure/libppbm.cpp:596: undefined reference to `shogun::clean_icp(shogun::ICP_stats*, shogun::bmrm_return_value_T&, shogun::bmrm_ll**, shogun::bmrm_ll**, double*&, double*&, double*&, bool*&, unsigned int, double*&, unsigned int*&, unsigned int)'20:04
wikingand only gcc fails with it20:05
wikingmaybe because it's and inline function?20:05
blackburnyeah can be20:06
blackburnI feel it makes no sense to inline function defined in .cpp20:06
blackburnam I wrong?20:06
wikingwhy not?20:07
wikingok here's an attempt20:07
wikinglet's see what travis does20:08
blackburnokay how can one inline a function20:08
blackburnif it have no implementation available20:08
blackburnhas* argh20:09
wikinginline man20:09
wikingit should act as if a macro20:09
blackburnbut how if you have no impl around?20:10
wikingbut the syntax is 'nicer'20:10
blackburnyou have only pointer to that function in lib20:10
blackburncan't get code back20:10
wikingclang has no problem with it20:12
blackburnclang is smart20:13
@sonney2kwiking, whcih line has the problem?20:14
wikingthere's a problem in this one20:14
wikingare we aware of this?20:15
@sonney2kwiking, yes20:15
@sonney2kthere are IIRC 3 valgrind errors in examples20:15
wikingok i'm just saying20:16
@sonney2kwiking, I meant in your code though :)20:16
wikingah well in general20:16
@sonney2kthe compile error?20:16
wikingno i hope that's going to be fixed now20:16
wikingbut like the stuff i did with uricamic's implementation for example20:16
@sonney2kwiking, what was it?20:16
@sonney2kdid you have an inline functions that was not defined in a .h?20:17
wikingit was defined20:17
wikingbut not implemented20:17
@sonney2kyeah then your bad20:17
wikingyeah it seems gcc doesn't like it20:17
wikingsonney2k: noup20:17
wikingit's gcc's bad20:17
@sonney2kyeah it's not standard20:17
wikingclang had no problem with it20:17
wikinganyhow it's fixed20:17
@sonney2kbelieve me clang has problems with other code20:17
wikingi wouldn't say it's non standard ...20:17
@sonney2kit is20:18
@sonney2kinline (by standard) has to be in .h20:18
@sonney2kdefinition and implementation20:18
wikingi doubt this very much20:18
wikingafaik c++ standard has no such clause20:18
wikingit's really a matter of compiler implementation20:18
wikingthis is not in c++ standard20:19
wikingit's the matter of compiler20:20
wikingafaik vc++ would act very different as well20:20
wikinganyhow it's fixed now and works with both gcc and clang20:21
wikinghence i saved some code lines :)20:21
wikingbut i have a feeling that all this stuff should be taken out from structure20:23
wikingand create an abstract class for this stuff20:23
wikingthat would look nicely20:24
wikingthis way people will not realise that they can have these solvers by themselves20:24
wikingas it's too much tied to structure ....20:24
blackburnto SO you mean?20:28
@sonney2kwiking, one step at a time20:28
@sonney2kwiking, we should get your patch in first and then define such RiskMinimizer framework20:29
wikingto SO20:29
wikingas really these can be solved for anything in form of 1/2\lambda ||w||^2 + R(w), where now with NCBM we can solve non-convex risk as well20:29
wikingso like in my case20:30
wikinglatent so svm is: 1/2 ||w||^2 + c/n \sum max_{y',h'} (w*psi(x,y',h') + loss(y,y',h')) - c/n \sum max_h (w*psi(x,y,h))20:31
wikingand now the good thing with ncbm20:32
wikingthat i dont care about the problem not being convex20:32
@sonney2kwiking, well feel free to start CRiskMinimizer in shogun/optimization!20:32
wikingbut yeah as i said earlier20:32
wikingsonney2k: heheh i have to produce a paper in 5 days20:33
wikingso maybe next year ;)20:33
wikingbut this can already be part of 2.1.0 release ;P20:33
wikingjust to have some valueable contribution for that release20:34
blackburnwiking: you run macosx right?20:34
blackburncan you try to compile git://
wikingok wait20:35
wikingi think header paths are not ok20:35
wikingis there like a configure script?20:36
blackburnyou know it is immature20:36
wikingok compiling20:37
wikingi dont have openmp20:37
wikingso let's see how it handles it20:37
blackburnit is ok I don't use it yet20:37
wikingoh shit20:37
wikingyeah dude20:38
wikingu need a configure script20:38
wiking;)20:38 and friends20:38
blackburnof course I need20:38
blackburnwiking: I templated everything to random access iterator - do you think it is reasonable?20:41
blackburninstead of forcing indexing 0,...,N-1 I mean20:41
blackburnI probably know what sonney2k thinks about that20:42
wikingwell yeah then there's a lot of R-B tree operation involved20:44
wikingso think twice if u need that really20:44
wikingif not then try to use other containers20:44
wikingred-black tree20:45
wikingthat's behind std::vector for example20:45
wikingcheck c++ lib implementation20:45
wikingand u'll see20:45
blackburnfor what?20:45
wikingah no20:45
wikingi'm stupid20:46
blackburnred black is only in map20:46
blackburnand set20:46
wikingand set20:46
blackburn(as I thought)20:46
blackburnyou confused me quite a lot :D20:46
wikingu stl smart20:47
wikingalthough i myself tend to throw things20:47
wikingat random20:47
blackburnit is not really stl related20:47
blackburnI mean do you think20:47
wikingand my first choice is really always std::vector :D20:47
blackburnhaving ability to change the type20:47
blackburnof data you operate on20:48
blackburnis a good thing20:48
blackburni.e. writing a callback that operates on your structs not 0,...,N-120:48
blackburnsee what I mean?20:48
blackburnI thought it is useful20:49
blackburnbut now I am unsure20:50
wikingif it doesn't give u too much of a headache to handle this20:50
wikingthen it's usuful20:50
wikingas you give more freedom for the users of the library20:50
blackburnit is done already so the question is whether to get rid of it or not20:50
wikingi wouldn't20:50
blackburnone thing I will get instantly is easier parallelization20:52
wikingsonney2k: still here?21:05
wikingblackburn: what would you inherit CBMRM from?21:05
blackburnwhat is CBMRM?21:06
wikingbundle method risk minimization21:06
wikingor CRiskMinimizer as sonney2k suggested21:06
blackburnI have no special vision on that actually21:12
wikingmmm fuck i need to resolve some stuff with my stash21:14
wikingargh i hate this :(21:14
blackburnstash if useful to waste code21:14
-!- zxtx [] has joined #shogun21:19
wikingoh fuck21:23
wikinghow can i reset a file?21:23
blackburnwiking: reset to?21:27
wikingi've realised21:29
wikingit's a bit complicated21:29
wikingso if you want to undo changes to a files by a patch21:29
wikingthen you have to first21:29
wikinggit reset file21:29
wikingand then21:29
wikinggit checkout file21:29
blackburnwiking: my openmp impl is 6 times slower :D21:30
wikingheheh that cna happen21:31
wikingtoo much of a context change unfortunately21:31
blackburnI don't want to write pthreads code again21:32
wikingwell that wouldn't help u21:32
wikingi mean what u can do with pthreads21:33
wikingyou can do with openmp as well21:33
blackburnyeah but openmp is less explicit and takes time to get into it21:33
blackburnso I am in trouble hmm21:34
wikinganother pr21:44
-shogungit:#shogun- [shogun] vigsterkr opened pull request #834: Template specialization for add_to_dense_vec in DenseFeatures (master...master)
blackburnthat one is easy21:45
-shogungit:#shogun- [shogun] lisitsyn pushed 2 new commits to master:
-shogungit:#shogun- shogun/master bfdff65 Viktor Gal: Template specialization for add_to_dense_vec in DenseFeatures21:45
-shogungit:#shogun- shogun/master c250bb9 Sergey Lisitsyn: Merge pull request #834 from vigsterkr/master...21:45
shogun-buildbotbuild #670 of deb3 - modular_interfaces is complete: Success [build successful]  Build details are at
wikingyey the buildbot agrees with the patch22:43
blackburnwiking: have you seen boost.graph?22:43
blackburnwiking: I feel dizzy22:44
blackburn10 template parameters oh my f22:44
wikingusually a graph lib is like that22:45
wikingonce i've implemented some basic graph stuff22:45
wikingand then u realise that if u want to support funky algos22:45
wikingyou'll end up fucked up22:45
wiking"weighted, directed or undirected graph"22:46
wikingthis part makes it really complicated already22:46
wikingto support this all22:46
wikingbut boost is really cool22:46
wikingbut sometimes of course overhyped22:47
wikinglike for example22:47
wikingall the people in quantitative finance use boost22:47
wikingwell that's the thing22:47
blackburnor rather what for?22:47
wikinghigh frequency trading22:47
blackburnwell still what is the place for boost here?22:47
wikinga) portability of the library22:48
wikingb) has some really handy threadpooling22:48
wikingas well as memory managment22:48
blackburnah that part22:49
wikingas well as shared pointers22:49
wikingso all these stuff that makes your coding easier22:49
blackburnthat's quite reasonable22:49
wikingand they want c++22:49
wikingas it's the fastest22:49
wikingi mean c/c++22:49
wikingand as they do high frequency trading22:49
wikingspeed is everything there22:49
blackburnwhy do you know that stuff?22:50
wikingthis is handy as well22:51
wikingif we could make some of our algos22:51
wikingpossible to set time22:51
wikingi mean hard real-time requiremtn22:51
wikingi'm sure shogun would be used ;)22:51
wikingwhy do i know these stuff22:52
wikingbecause i'm thinking about getting job in the sector22:52
blackburnI wouldn't mind as well :D22:52
wikingit's hard though22:52
blackburnI bet this guys have enough money22:52
wikingall the rocket scientist of the future end up working for investment banks ;)22:53
wikingbecause of the cash22:53
blackburnah you forgot to say that there is no way to get there22:53
wikingmost sought people for these jobs are phds in physics22:54
wikingand there's a little bit of indian maffia involved in the thing22:54
wikingas the best quants out there are indians22:54
wikingbut yeah22:55
wikingit'd be great if we could do some funky stuff with our learners22:56
wikingand especially classification22:56
blackburnregressors you mean?22:56
wikingso in general22:56
wikingone could set a real time constraint22:56
wikingon the classification22:56
blackburnyou mean classify that stuff in 0.0001s?22:57
wikinglet's say learning time you dont care about22:57
wikingbut you want to be able to set to classify with the learnt model22:57
wikingwithin given hard deadline22:57
wikingso yeah22:57
wikingif u want it you could set a soft/hard deadline22:58
wikingfor that given function call22:58
wikingi think that'd be interesting for a lot of parties22:58
blackburnI see that out of shogun22:58
wikingi mean shogun has the advantage22:59
blackburnoh my these rates are crazy22:59
wikingthat thanks to sonney2k it's really trying to as less reseource wasting as much possible22:59
wikingso it's a good basis to start with22:59
wikingbut needs some work as far as i can see23:00
wikingto be able to support such things23:00
wikingi dont even know how we could start this23:01
wikingso for example that we have a simple linearMachine23:01
wikingand have it's classifier be able to support it23:02
blackburnwiking: if you are interested we could play with it somewhere in a separate lib23:02
wikingyeah we could make a fork23:02
blackburnjust sharing ideas from/with shogun23:02
wikingbut how would u do it?23:03
blackburndo what?23:03
wikingwell start it23:03
wikingi mean essentially i think if we could do this right23:03
wikingwe could merge it in shogun for sure23:03
blackburnI think best way is to use shared ideas23:03
blackburnnot code23:03
wikingwhat was that procject23:40
wikingthe opencl one23:40
blackburnthat one french guy is from?23:40
wikingit supports eigen as well23:50
blackburnwiking: yes I am curious now too23:54
wikingwe could add SGVector23:54
wikingto support this23:55
wikingwhy is this23:55
wikingstatic inline float64_t dot(23:55
wikingconst uint64_t* v1, const uint64_t* v2, int32_t n)23:55
wikingi mean why a dot product of two uint64 is a flot?23:55
wikingcant we just have23:56
wikinga non-static23:56
blackburnin shogun everything is float64 :D23:56
wikingT dot(const SGVector<T>& v) const;23:56
wikingi mean even more23:56
wikingT operator*(const SGVector<T>& v)23:57
blackburnno that's not cool23:57
blackburnint8 * int8?23:57
wikingah u are staring to worry about overflow?23:57
blackburnwiking: yes a little23:58
wikingbecause then it's the same with float6423:58
wikingit should return at least floatmax23:58
wikingbut ok let's say23:58
blackburnwell but with int8 it will happen for sure23:58
wikingsomething dot(SGVector<T>& asd) const23:58
wikingso that i dont have to call on two23:58
wikingso that one can call directly a dot product23:58
wikingbecause now a dot product is really stupid23:59
wikingeven if both the vectors are in SGVector23:59
blackburnI if i could say it is not23:59
--- Log closed Sun Nov 25 00:00:02 2012