Open in new window / Try shogun cloud
--- Log opened Mon Jun 20 00:00:47 2016
-!- HeikoS [] has quit [Ping timeout: 250 seconds]00:22
-!- HeikoS_mobile [] has joined #shogun00:22
HeikoS_mobilelisitsyn: invite me :)00:22
-!- HeikoS_mobile [] has quit [Remote host closed the connection]00:27
-!- GandalfTheWizard [~Eva@] has joined #shogun03:15
-!- sonne|osx [] has joined #shogun05:18
-!- Saurabh7 [Saurabh7@gateway/shell/panicbnc/x-nhgboshmvjngqjid] has left #shogun []05:22
-!- sonne|osx_ [] has joined #shogun05:24
-!- sonne|osx [] has quit [Ping timeout: 264 seconds]05:25
-!- sonne|osx_ is now known as sonne|osx05:25
shogun-buildbotbuild #24 of memleak - valgrind is complete: Failure [failed memory check]  Build details are at  blamelist: Esben Sorig <>, Heiko Strathmann <>05:26
-!- Saurabh7_ [~Saurabh7@] has joined #shogun05:28
shogun-buildbotbuild #1025 of nightly_none is complete: Failure [failed test]  Build details are at  blamelist: Esben Sorig <>, Heiko Strathmann <>05:30
shogun-buildbotbuild #1155 of nightly_default is complete: Failure [failed test test_1 notebooks]  Build details are at  blamelist: Esben Sorig <>, Heiko Strathmann <>06:16
-!- sonne|osx [] has quit [Quit: sonne|osx]07:08
-!- sanuj [~sanuj@] has joined #shogun08:10
-!- Saurabh7_ [~Saurabh7@] has quit [Quit: Leaving]08:26
-!- GandalfTheWizard [~Eva@] has quit [Quit: Leaving.]09:33
-!- Saurabh7 [~Saurabh7@] has joined #shogun09:35
sanujlisitsyn, yo10:14
sanujlisitsyn, i think we should hide any from swig10:47
lisitsynsanuj: hey10:47
sanujlisitsyn, we don't need as<> in python10:48
sanujor anything else from any10:48
sanujand i am getting these infinite warnings10:48
sanujSGBase.i:570: Warning 503: Can't wrap '_as< int >' unless renamed to a valid identifier.10:48
lisitsynuhmm okay we don't use it (yet)10:48
lisitsynahh ok10:48
lisitsynjust ignore it ok10:49
sanujlisitsyn, and SGBase.i:678: Warning 314: 'as' is a python keyword, renaming to '_as'10:49
sanujlisitsyn, %template(as ## name) Any::as<type>;10:49
sanujshall i remove this or keep it? ^10:49
lisitsynsanuj: well you're removing Any :)10:50
sanujlisitsyn, okay so shall i remove any in SGBase.i?10:50
lisitsynyeah yeah10:50
lisitsynjust remove it10:50
sanujlisitsyn, we need to solve template issue in swig10:51
lisitsynsanuj: yes and a few more things10:51
sanujlisitsyn, an example using swig interface
sanujlisitsyn, we are really lagging behind our timeline10:52
lisitsynsanuj: yeah no worries10:52
lisitsynit is rather underestimation10:52
lisitsynthan underperformance :)10:52
sanujokay :D10:52
sanujlisitsyn, you were going to send me a mail for what else is needed before we merge tags10:53
lisitsynmehh yeah I am out of schedule as well10:54
lisitsynok actually there is a thing you can try to implement now10:54
sanujokay :)10:54
sanujtell me10:54
lisitsynhave you seen class_list.cpp?10:54
sanujthat huge thing10:55
lisitsynsanuj: basically it stores string -> object ctor10:56
-!- besser82 [~besser82@fedora/besser82] has joined #shogun10:57
-!- mode/#shogun [+o besser82] by ChanServ10:57
lisitsynsanuj: it enables us to do similar thing as we did with setSomething10:57
lisitsynnewKernel, newFeatures, blabla10:58
lisitsynyou can implement it on top of new_sgserializable quite easily10:58
sanujwhy do we need it though10:58
lisitsynsanuj: this is how our plugins interface would look like10:59
-!- Saurabh7 [~Saurabh7@] has quit [Ping timeout: 272 seconds]11:00
lisitsynsanuj: as for tags PR11:00
-!- HeikoS [] has joined #shogun11:02
-!- mode/#shogun [+o HeikoS] by ChanServ11:02
sanujlisitsyn, what is this exactly11:03
lisitsynI have to check what's missing11:03
lisitsynprobably we miss some examples11:03
sanujhow is new_sgserializable related to plugins/tags11:03
lisitsynsanuj: well that's the thing to be replaced, we can start with implementing some interface to create instances by their name11:04
lisitsynthis would let us to start working on plugins under the hood11:05
lisitsynwithout any change in interface11:05
sanujoh so this is for plugins11:05
sanujand not tags11:05
lisitsynyeah it is rather plugins than tags11:05
sanujlisitsyn, but i don't understand what changes do i have to make in cpp_list11:06
sanujand class_list on my local is huge11:07
-!- HeikoS [] has quit [Ping timeout: 260 seconds]11:07
lisitsynsanuj: you don't have to change class_list.cpp11:08
lisitsynbut its template11:08
lisitsynsanuj: we need methods like createKernel("name")11:09
lisitsyncreate* for all base classes11:09
lisitsynI think template + swig renames are way to go11:09
sanujlisitsyn, so createKernel("gaussian") returns an instance of GaussianKernel11:10
-!- [Chris] [~Chris]] has joined #shogun11:11
-!- Saurabh7 [~Saurabh7@] has joined #shogun11:12
sanujlisitsyn, how methods like createKernel("name") related to plugin architecture?11:13
lisitsynsanuj: in plugins we have to stick to strings11:14
sanujlisitsyn, only string parameters?11:14
lisitsynwe won't have classes like GaussianKernel visible once we convert to plugins11:14
lisitsynwe can only retrieve some CKernel that is named gaussian11:14
sanuji see11:15
lisitsynsanuj: so once you call11:15
lisitsynit checks whether there is such plugin11:16
lisitsynloads it if needed11:16
lisitsynand then calls corresponding stuff in the plugin to create this kernel for you11:16
[Chris]Hi, is it possible to use random forests with BinaryLabels ? I get the following error when calling rand_forests.train(train_feats): src/shogun/multiclass/tree/CARTree.cpp line 77: label type supplied is not supported11:16
lisitsyn[Chris]: probably no but why do you want to?11:16
sanujlisitsyn, so createKernel is in base shogun11:17
sanujand plugin is for gaussian kernel?11:17
lisitsynsanuj: yes11:17
sanuji see11:18
sanujlisitsyn, we are going to enable functions like createKernel via changes in class_list?11:19
lisitsynsanuj: I think you'd need template <class T> T* create(string)11:19
lisitsynand then rename them just like you did with set get11:19
sanujlisitsyn, so only the renaming part will happen in class_list11:21
sanujwhere to put "template <class T> T* create(string)"?11:21
lisitsynsanuj: class_list.cpp.templ would work I think11:22
sanuj so all the base methods in plugin arch will go in  class_list.cpp.templ11:23
sanujlisitsyn, are you away?11:24
-!- Saurabh7 [~Saurabh7@] has quit [Ping timeout: 246 seconds]11:24
sanujeven i need to have lunch11:26
sanujtalk to you later11:26
[Chris]lisitsyn because I have binary labels ;)11:29
-!- sanuj [~sanuj@] has quit [Ping timeout: 272 seconds]11:31
-!- Saurabh7 [~Saurabh7@] has joined #shogun11:37
-!- Saurabh7 [~Saurabh7@] has quit [Quit: Leaving]11:47
-!- Saurabh7 [~Saurabh7@] has joined #shogun11:48
-!- vortex_ape [~vortex_ap@] has joined #shogun12:02
-!- lambday [8028b10a@gateway/web/freenode/ip.] has joined #shogun12:59
-!- mode/#shogun [+o lambday] by ChanServ12:59
[Chris]I have another question regarding combined kernels and cross validation. Anyone here who could help me or should I rather use the mailing list ?13:45
-!- sanuj [~sanuj@] has joined #shogun13:52
sanujlisitsyn, there?13:53
Saurabh7aaargh AttributeError: 'dict' object has no attribute 'iteritems'14:01
lisitsynsanuj: whats up15:09
sanujwiking, did you receive my monday report?15:09
sanujlisitsyn, so you were saying ....15:09
@wikingmmm lemme check15:17
@wikingsorry today is slow for me15:17
sanujno, i just wanted to confirm15:18
sanujbecause i don't see it on gmane15:18
@wikingSaurabh7 OXPHOS arianepaola weekly updates plz15:18
@wikingsanuj: it's in my box15:18
@wikingso it's cool thxn15:18
sanujokay :D15:18
-!- vortex_ape [~vortex_ap@] has quit [Quit: Leaving]15:31
sanujvortex_ape :O15:36
Saurabh7wiking, hey15:41
Saurabh7wiking, I have updated most intensive routines of cart15:45
Saurabh7so its pretty compettive now15:46
Saurabh7but cant find anything else I can change performance wise15:46
Saurabh7wiking, any ideas what else should be touched there in general15:47
@wikinglemme see15:49
-!- HeikoS [] has joined #shogun16:15
-!- mode/#shogun [+o HeikoS] by ChanServ16:15
-!- shogun-notifier- [] has joined #shogun16:17
shogun-notifier-shogun: Saurabh7 :develop * b0c279b / examples/meta/generator/
shogun-notifier-shogun: fix dict iter for python316:17
shogun-notifier-shogun: Heiko Strathmann :develop * 2230399 / examples/meta/generator/
shogun-notifier-shogun: Merge pull request #3302 from Saurabh7/genfix16:17
shogun-notifier-shogun: fix meta generator for python316:18
shogun-buildbotbuild #732 of trusty - libshogun - viennacl is complete: Failure [failed compile]  Build details are at  blamelist: Heiko Strathmann <>, Saurabh7 <>16:18
-!- sanuj [~sanuj@] has quit [Ping timeout: 252 seconds]16:19
shogun-notifier-shogun-data: OXPHOS :master * ab9ae9d / testsuite/meta/classifier/shareboost.dat:
shogun-notifier-shogun-data: shareboost dataset16:26
shogun-notifier-shogun-data: Heiko Strathmann :master * f098a14 / testsuite/meta/classifier/shareboost.dat:
shogun-notifier-shogun-data: Merge pull request #103 from OXPHOS/master16:26
shogun-notifier-shogun-data: shareboost integration dataset16:26
Saurabh7HeikoS, hi16:34
@HeikoSSaurabh7: hi there=16:34
@HeikoSSaurabh7: how are things?16:34
@HeikoSjust going through patches here16:34
Saurabh7HeikoS, us finished ixing things for cart regression16:34
Saurabh7so that shld be working now16:35
Saurabh7wokring to make those changes work for randomCART16:35
Saurabh7so that it will reflect in random forest performance16:35
@HeikoSah yeah16:35
@HeikoSSaurabh7: you compared a bit against sklearn implementation?16:35
@HeikoSany big differences?16:35
Saurabh7for random forest ?16:36
Saurabh7not yet need to make this radnomcart work16:36
@HeikoShow are we doing timewise?16:36
Saurabh7cart performance is same now16:36
@HeikoSah cool16:36
@HeikoSthat is very good16:36
Saurabh7I shared it16:36
@HeikoSwe should be faster16:36
@HeikoSI know, hard to remoember all the times.16:36
Saurabh7okie :)16:37
Saurabh7I wil finish this randomcart then compare random forest16:37
@HeikoSSaurabh7: I think in RF, Shogun should be quite a bit faster than python16:37
@HeikoSsince not so much linear algebra operations16:37
Saurabh7its need refactoring tho16:37
@HeikoSbut different16:37
Saurabh7almost 300 line code is same from cart16:37
@HeikoSok cool16:38
@HeikoSSaurabh7: shall we have different patches for the different files?16:38
@HeikoSthen I can already merge some parts16:38
@HeikoSeasier to review16:38
Saurabh7HeikoS, ok sure16:39
@HeikoSSaurabh7: is our RF multithreaded yet?16:41
Saurabh7HeikoS, no16:41
@HeikoSSaurabh7: ok, that will be a good thing to do :)16:41
@HeikoSbut later16:41
Saurabh7subsets are heavliy used in here too16:42
@HeikoSSaurabh7: I think once you have done the first set of changes16:42
@HeikoSwe can do the read only features16:42
@HeikoSwith subsets16:42
Saurabh7so they need to be absoulety thread safe16:42
@HeikoSbut are they read only?16:42
@HeikoSor are they written?16:42
Saurabh7used on labels too16:42
Saurabh7its read only16:43
@HeikoSonce we change all this to read only16:43
@HeikoSwe can also update the xvalidation16:43
Saurabh7i will try to finish this random cart, somethings fishy here16:46
Saurabh7samples are picked randomly but labels used are same:D16:46
Saurabh7need to double check16:47
@HeikoSthat is fishy indeed :I16:48
@HeikoSok cool, let me know if you need help16:48
@HeikoSI will be out of country from Wednesday btw16:48
@HeikoS I will take my laptop with me16:48
@HeikoSbut irc is limited16:48
@HeikoSback monday16:48
@HeikoSso email is better from mid week16:48
Saurabh7okie , let u know16:52
-!- HeikoS [] has quit [Ping timeout: 260 seconds]16:56
-!- HeikoS [] has joined #shogun17:07
-!- mode/#shogun [+o HeikoS] by ChanServ17:07
-!- c4goldsw [5da420e6@gateway/web/cgi-irc/] has joined #shogun17:25
c4goldswEarth to wiking17:25
arianepaolahello everyone17:28
c4goldswarianepaola hello17:28
arianepaolahi c4goldsw17:28
c4goldswHeikoS ping17:29
-!- sanuj [~sanuj@] has joined #shogun17:37
sanujlisitsyn, hey17:39
c4goldswHeikoS wiking never mind.17:45
Saurabh7HeikoS, ok I have done quick changes for RandomCart too, will do a benchmark for RF next17:47
sanujHeikoS, about %newobject17:48
c4goldswand hello17:48
sanujit works and is needed17:48
sanujbut not sure about memleaks17:48
-!- HeikoS [] has quit [Remote host closed the connection]17:48
-!- HeikoS [] has joined #shogun17:48
-!- mode/#shogun [+o HeikoS] by ChanServ17:49
@wikingHeikoS: gs17:49
@HeikoSwiking: trying to joing17:49
@HeikoSbut I get no such channel17:50
@HeikoScan you invite me17:50
@wikinglisitsyn: ######################17:50
@HeikoShaha :)17:50
@wikinglisitsyn: #######################################################################17:50
@wikinglisitsyn: <====================================317:50
lisitsynwiking: ohoho17:51
sanujwhat is happening people :P17:52
sanujlisitsyn, do you mind if this gets merged?
@HeikoSsanuj: nothing, wiking fell aspeep on his keyboard17:55
sanujHeikoS, you saw the tags example?17:56
@HeikoSsanuj: I checked, but not in detail yet. I am currently reading PRs17:56
sanujtell me when you are done17:57
@HeikoSyou are going to bed soon right?18:00
@HeikoSso I can also start with yours?18:00
sanuj2 hours later :)18:04
sanujHeikoS, if you see my tags PR
sanujthe commented lines are for template classes18:05
sanujthey won't work like other abstract classes18:05
sanujlisitsyn, you want to discuss about it? ^^^18:06
@HeikoSsanuj: so help me what does SG_INSTA do?18:07
sanujHeikoS, it's define just above it18:08
-!- Saurabh7 [~Saurabh7@] has quit [Ping timeout: 252 seconds]18:08
sanujit does %template for tag functions18:08
@HeikoSsanuj: can you share a use case?18:08
lisitsynwell I am not sure what INSTA means :D18:08
sanujINSTA = instantiate :D18:09
sanuji can change it if you suggest a better name18:09
sanujHeikoS, %template(TagKernel) Tag<CKernel*>;18:09
@HeikoSsanuj: how does a python call look like?18:10
@HeikoSsanuj: sg.LinearKernel()18:11
@HeikoSlike this18:11
@HeikoSso these sg.Classname() instantiates18:11
@HeikoScorresponds to the SG_INSTA?18:11
sanujHeikoS, for Tag___18:12
sanujrest are functions for sgobject18:12
sanujck = sg.CombinedKernel18:13
sanujck.setInt("num_kernels", 3)18:13
sanujck.setKernel("gaussian", gauss_kernel)18:13
sanujsimilarly for get___, has18:13
sanujHeikoS, it needs to be done since these are template functions18:14
@HeikoSsanuj: so why are all these classes in there?18:14
sanujHeikoS, these are abstract classes in shogun18:14
@HeikoSsanuj: does just every shogun class need this insta_sg thing?18:14
@HeikoSI see18:14
sanujHeikoS, no, only the classes in base-shogun18:14
sanujHeikoS, for eg: setKernel() can work for any type of CKernel  ==> GaussianKernel, PolyKernel, LinearKernel etc18:15
@HeikoSyeah I see18:15
c4goldswwiking hello18:16
sanujHeikoS, but the problem is that some of these abstract classes are templates18:16
@HeikoSand these are commented out18:17
@HeikoSI am not sure I like this PR18:17
@HeikoSit is too big18:17
sanujthere are multiple comments18:17
@HeikoSand why not make these SWIG changes for like one case first18:17
@HeikoSand then if it works, can extend18:17
sanujHeikoS, it works, i have tested18:17
sanujonly for python though18:17
sanujHeikoS, the example in the gist works18:18
@HeikoSsanuj: thats pretty cool18:18
sanujlisitsyn, what did you want to discuss with HeikoS ?18:18
sanujHeikoS, i think we need to sort out this template issue18:19
@HeikoSsanuj: yeah18:19
@HeikoSso Ill wait for lisitsyn to get back to me?18:19
@HeikoSFor the PR, I would cut it a bit into pieces18:19
@HeikoSand see what we can merge already18:19
@HeikoSinto a feature branch18:19
sanuji think one way is to just instantiate templates for every type18:19
sanuji can keep the swig thing on a different branch18:19
sanujactually it was on a different branch before18:20
@HeikoSno what I mean is18:20
@HeikoSthat we should discuss the swig changes in a swig PR18:20
sanujHeikoS, that can only be done once tags get merged in a feature branch18:21
@HeikoSI know18:21
@HeikoSwe should do that soon then18:21
@HeikoSsanuj: maybe clean up the PR and aim for that?18:21
@HeikoSand I will try to get my hands on lisitsyn18:22
-!- c4goldsw [5da420e6@gateway/web/cgi-irc/] has quit [Quit: - A hand crafted IRC client]18:26
sanujHeikoS, cool, i just need to write more unit-tests18:29
-!- Saurabh7 [~Saurabh7@] has joined #shogun18:44
-!- Saurabh7 [~Saurabh7@] has quit [Quit: Leaving]18:56
-!- sanuj [~sanuj@] has quit [Quit: Leaving]19:22
-!- shogun-notifier- [] has quit [Quit: transmission timeout]19:26
-!- c4goldsw [5da420e6@gateway/web/cgi-irc/] has joined #shogun20:01
-!- besser82 [~besser82@fedora/besser82] has quit [Ping timeout: 244 seconds]20:02
c4goldswwiking Hey, you around?20:06
@HeikoSc4goldsw: jo20:06
@HeikoSwiking went to bed20:06
@HeikoSlate night20:06
@HeikoSwhat were you up an about?20:07
c4goldswI'm making good progress, just looking for a little more direction now20:07
c4goldswWait, what do you mean by that question?   It's a little  confusing ;)20:07
@HeikoSyou said you need direction, what direction?20:08
c4goldswOn templating LARS.20:08
c4goldswHold on, typing.20:08
c4goldswI've ran into the problem now that there are external classes that only use float64_t, so I can only continue if I modify these external classes.20:08
c4goldswNamely, LARs' super class CLinearMachine and CRegressionLabels20:09
c4goldswLast week, it seemed as if you didn't want me to do this but I don't think there's another way to make it work without modifying them.20:10
c4goldswAlso, I'd prefer not having to template CLinearMachine since it could have child classes which would also have to be templated.20:11
c4goldswLet me link the specific lines that are issues within LARS20:12
c4goldswHeikoS take this for instace:
c4goldsww is located inside of CLinearMachine (hold on a second)20:15
c4goldswAnd is float6420:16
c4goldswSo, what would you recommend doing about this?20:17
@HeikoSok finished tpying?20:17
@HeikoSlet me check :)20:17
c4goldswYes haha20:17
@HeikoSso you want to make LARS a template?20:20
@HeikoSthen w needs to be of type T20:20
@HeikoSc4goldsw: is that what you are asking?20:20
c4goldswNot quite20:21
c4goldswJust to be clear: didn't you want me to template LARs?20:21
@HeikoSc4goldsw: yeah that was the idea20:21
@HeikoSso that it works with general features20:21
@HeikoSswitch to float32 should be possible20:22
c4goldswI've gotten that eigenmap thing working by the way.  Now, if I'm going to do that,  I'll also have to template CLinearMachine and any of it's subclasses.  Can I do that?20:22
c4goldswif I'm going to template LARS*, ...20:22
c4goldswI'm sort of asking for permission because it seems as if you want PR sizes to be small, that's all.20:22
@HeikoSok soo20:23
@HeikoSif w should be T, then yes you have to template these classes20:23
@HeikoSyou can also imagine20:23
@HeikoSthat w stays float64_t20:23
@HeikoSbut the LARS *implementation* uses CDenseFeatures<T>20:23
@HeikoSand then copies the results into the float64_t w at the end20:24
@HeikoSbecause it is more about the data passed to the machine20:24
@HeikoSrather than the internals of the machine20:24
c4goldswSo can I just cast anything into float64_t at the very end?20:24
c4goldswOr rather20:25
c4goldswI don't even have to do that, do I.20:25
@HeikoSyeah it is more about input data being templated20:25
@HeikoSI mean we *can* template Linear machine20:26
@HeikoSbut it is just a vector20:26
@HeikoSso not so sure20:26
c4goldswWhat does w do anyway?20:26
@HeikoSabout the relevance of that20:26
@HeikoSc4goldsw: it represents the model20:26
@HeikoSbetter read up on that if you touch it ;)20:26
@HeikoSlinear regression20:26
c4goldswlike a set of weights?20:26
@HeikoSx^T w20:27
@HeikoShaha ;)20:27
c4goldswI'm laughing at myself right now20:27
c4goldswAlright, I think I can make due with this for now.20:27
c4goldswAnother question though HeikoS20:28
@HeikoSc4goldsw: do that in a first step20:28
@HeikoSand then we can discuss with viktor20:28
c4goldswActually, I'll try to answer my question myself.  Thanks for the help HeikoS20:29
@HeikoSc4goldsw: no shoot20:29
c4goldswwhat is / are CRegressionLabels and why do the have a type?20:30
c4goldswdo they*20:30
c4goldswIs it the kind of labels you assign to classes or what?20:30
@HeikoSc4goldsw: they are an instance of labels where the labels vector is float64_t20:30
@HeikoSand they offer an interface for that20:30
@HeikoSCBinaryLabels have a labels vector that is binary20:31
c4goldsw(not OOP classes, but categories of things to be classified by a machine)20:31
@HeikoSit is the distinction between classification and regression20:32
@HeikoSis that an answer?20:33
c4goldswNo :)20:33
c4goldswWikipedia article?20:33
@HeikoSok so check the interface of them20:33
@HeikoSthis is just implementation20:33
c4goldswAh, ok20:33
@HeikoSdoesnt have to do with math20:33
@HeikoSin classification y is in {-1,1}20:33
@HeikoSin multiclass y is in {0,1,2,3, ...}20:34
@HeikoSin regression, y is in R20:34
@HeikoSand the labels just give an interface to access labels for that20:34
@HeikoSthe different specializations of CLabels I mean20:34
c4goldswAlright, that kind of makes sense.   I'll dwell on it.20:35
@HeikoSlet me know if it still doesnt make sense tomorrow20:35
c4goldswWill do20:35
c4goldswAnd thanks20:36
-!- c4goldsw [5da420e6@gateway/web/cgi-irc/] has quit [Quit: - A hand crafted IRC client]20:37
-!- lambday [8028b10a@gateway/web/freenode/ip.] has quit [Ping timeout: 250 seconds]20:44
-!- HeikoS [] has quit [Quit: Leaving.]20:45
-!- sonne|osx [] has joined #shogun20:56
-!- c4goldsw [5da420e6@gateway/web/cgi-irc/] has joined #shogun21:03
-!- c4goldsw [5da420e6@gateway/web/cgi-irc/] has quit [Client Quit]21:04
-!- sonne|osx [] has quit [Quit: sonne|osx]22:36
--- Log closed Tue Jun 21 00:00:49 2016