Open in new window / Try shogun cloud
--- Log opened Wed May 09 00:00:37 2012
wikingi've just checked the git blame classifier_qda.cpp00:01
wikinghow it morphed into this non-working code :)))00:01
CIA-113shogun: Viktor Gal master * r7dfdcba / examples/undocumented/libshogun/classifier_qda.cpp : Fix classifier_qda example -
wikingmkl is still a magic for me00:07
CIA-113shogun: Sergey Lisitsyn master * r585ebed / src/shogun/converter/Isomap.cpp : Fix crasher in Isomap -
-!- sonney2k_ [] has quit [Ping timeout: 260 seconds]00:16
-!- sonney2k [] has joined #shogun00:17
-!- shogun-buildbot [] has quit [Ping timeout: 255 seconds]00:18
-!- shogun-buildbot [] has joined #shogun00:18
blackburnwiking: still there?00:34
-!- PhilTillet [~Philippe@] has quit [Quit: Leaving]00:37
blackburnwiking: you made me recall one anecdote about putin00:37
blackburnhmm let me try to tell it :D00:37
blackburnmoscow, traffic jam, a lot of cars00:38
blackburnone guy is running and shout - putin is captured by aliens00:38
blackburn"they threaten to pour him with gasoline and set on fire!"00:39
blackburn"and they ask money"00:39
blackburnhe comes to one car and driver says 'how much do you need?' - that guys says 'how much you can' - and driver answers - 'i can give you 5 liters'00:40
CIA-113shogun: Sergey Lisitsyn master * r276fa54 / (4 files): Fixed crashers in PRC/ROC -
-!- cronor [] has joined #shogun00:59
-!- blackburn [~qdrgsm@] has quit [Quit: Leaving.]01:00
CIA-113shogun: Sergey Lisitsyn master * ra2c0e99 / (2 files): Fixed sizes of ROC and PRC graphs -
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking]01:23
-!- wiking [] has joined #shogun01:24
-!- wiking [] has quit [Client Quit]01:24
-!- av3ngr [av3ngr@nat/redhat/x-esiwbjbcmoextztr] has joined #shogun01:57
-!- vikram360 [~vikram360@] has joined #shogun02:38
-!- cronor [] has quit [Read error: Connection reset by peer]03:05
-!- vikram360 [~vikram360@] has quit [Ping timeout: 240 seconds]03:14
-!- cronor [] has joined #shogun04:00
-!- wiking [] has joined #shogun04:43
-!- wiking [] has quit [Changing host]04:43
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun04:43
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking]05:06
-!- vikram360 [~vikram360@] has joined #shogun05:15
-!- mode/#shogun [+o sonney2k] by ChanServ05:28
-!- wiking [] has joined #shogun05:45
-!- wiking [] has quit [Changing host]05:45
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun05:45
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking]06:15
-!- wiking [] has joined #shogun06:24
-!- wiking [] has quit [Changing host]06:24
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun06:24
-!- gsomix [~gsomix@] has joined #shogun06:31
-!- vikram360 [~vikram360@] has quit [Ping timeout: 265 seconds]06:35
-!- gsomix [~gsomix@] has quit [Quit: Ex-Chat]06:36
-!- gsomix [~gsomix@] has joined #shogun06:37
-!- gsomix [~gsomix@] has quit [Remote host closed the connection]06:56
-!- gsomix [~gsomix@] has joined #shogun06:59
wikinggsomix: what'sup?07:06
wikingactually how's that little task going that we've talked some weeks before?07:06
gsomixwiking, in progress. ^__^''07:14
wikinglol man07:20
wiking"Yahoo Board Member Out Over CEO's Bogus R?sum?"07:20
wikingi wonder how can u mix up your degree by mistake :D07:20
-!- n4nd0 [] has joined #shogun07:51
n4nd0good morning!07:51
n4nd0from Sweden finally :)07:51
@sonney2kwiking, yeah indeed I am not happy about std:: crap in pluskids patch08:00
@sonney2ksince we have alternatives it is not needed08:00
@sonney2kgsomix, btw please bring back CSet!08:01
wikingsonney2k: heheheh yeah i guessed...08:05
-!- vikram360 [~vikram360@] has joined #shogun08:07
wikingsonney2k: so u would go with CMap and CSet i guess, right?08:07
wikingas soon as we have CSet as well08:07
@sonney2kwiking, we had CSet - no idea why gsomix removed it...08:13
wikingsonney2k: yeah i saw it has morphed into CMap08:13
@sonney2kwiking, hmmhh I am wondering if 20 byte overhead for a sparse feature vector / string are ok08:14
wikingsonney2k: hahahah really? :)))08:14
@sonney2kwiking, you don't?08:15
wikingwell 20 bytes08:15
wikingit's really about 5 pointers :)08:15
@sonney2kptr is 8 byte08:16
@sonney2k2 ptrs + one int08:16
@sonney2ksomething is weird with multiclasssvms08:16
@sonney2kI cannot call apply() w/o getting an error08:16
@sonney2kwiking, for sgvectors we internally do't have a list of vectors08:17
@sonney2kbut just a double* aka SGMatrix08:17
@sonney2kso that doesn't matter08:17
@sonney2kbut for SGSparseMatrix we wouldh ave a list of SGSparseVector....08:17
wikingsonney2k: on 64bits...08:17
wikingotherwise it's 4 bytes08:17
@sonney2kit is nice that one can share it08:17
@sonney2kbut bad memory wise...08:18
@sonney2kthinking of that I trained on 50 million strings08:18
@sonney2kthat would mean 1G overhead08:18
@sonney2kok got to leave train08:19
gsomixoh, added08:26
gsomixbut I will commit in car08:27
gsomixgoing to Samara08:27
wikingcommit in car :>08:27
sonne|workgsomix: push please :)08:30
wikingsonne|work: arrived to work? :)08:30
-!- gsomix [~gsomix@] has quit [Ping timeout: 265 seconds]08:32
wikingseems gsomix is in the car commiting08:32
wikingkernel_matrix = 0x0,08:36
wiking  lhs = 0x0,08:36
wiking  rhs = 0x0,08:36
wikingon a supposedly trained kernel08:36
* wiking wonders08:36
wikingoooh yeah08:38
-!- uricamic [~uricamic@2001:718:2:1634:f2de:f1ff:fecf:a6a5] has joined #shogun08:44
wikingi guess we are missing a kernel.init () in classifier_mklmulticlass.cpp08:44
wikingthat's why both lhs and rhs is NULL08:44
wikingand that's why it dies with an assertion failure08:45
sonne|workwiking: I was looking at that example but there is more that is missing it seems08:46
sonne|workneeds to be debugged...08:46
sonne|workbut had to leave train before finishing08:46
wikingindex_t is unsigned08:47
wikingmmm not :)08:47
wikingwhy not: shogun/lib/DataType.h:typedef int32_t index_t; ?08:47
sonne|workyes int32_t08:48
sonne|workwiking: just because you need quite a bit of extra care when dealing with it08:48
wikingbut why is an index type is signed?08:49
sonne|workwhen you do things like idx - 10008:49
wikingi mean for sure there's a reason08:49
wikingi just wonder why08:49
sonne|workyou cannot check < 008:49
sonne|workerr >=008:49
wikingyes but you can check idx < 10008:50
wikingit's essentially the same amount of branching08:50
sonne|workbut it needs extra care08:50
wikingeither this or that way it'll point u to a bad memory if u don't do a check08:51
wikingi.e. something[idx-100] where idx < 10008:51
wikingit's the same in case of a signed and an unsigned integer...08:51
wikingjust the bad memory is pointed into a different place :)08:52
sonne|workif any operation happens to idx08:52
sonne|workchecking idx will not rescue08:53
wikingi'm just saying since a) essential negative index has no meaning b) u get an extra bit :)08:53
sonne|workgive me an example where we need the extra bit08:53
wikingi mean that's 2* amount of indexable08:53
sonne|workI know08:54
wikingand since you were talking here about a 20byte overhead08:54
wikingand a huge dataset08:54
wikingif we really want to support those size08:54
sonne|work50 million << 2**3108:54
wikingthat 2* will count08:54
sonne|workno problem08:54
wikingyes i know08:54
sonne|workI would need 2 billion08:54
sonne|workand that is still orders of magnitude bigger08:54
sonne|workand I would rather switch to using int64_t if we have to switch08:55
wikingok i think i cannot have right08:55
wikingso i give up08:55
wikingfine then just let's try to use the same type, i.e. index_t for the variable that is actually doing the indexing08:56
wikingso if one day index_t is actually going to become int64_t then there's not problem08:56
sonne|workwiking: yeah - problem is that this would need a review of *all* code08:57
sonne|workI suspect 1% uses index_t08:57
wikingsonne|work: yeah sure i know08:57
wikingbut still we can take care of the ones that are pull requested from now on08:57
sonne|workwho wants to do that just for fun?08:57
sonne|workthat makes sense08:57
sonne|workindex_t is a bit confusing though08:58
sonne|workas it is not what we use in SG MALLOC etc08:58
sonne|workthere we of course use 64bit...08:58
wikingwell yeah size_t08:59
wikinggit grep vlen|grep for|wc -l09:01
wikingahhaha this is heavy shit: shogun/lib/SGVector.h:for (int32_t i=0; i<vlen; i++)09:02
wikingmmm and even the api is defined09:02
wikingas len is int32_T09:03
wikingyeah u are right it'll take some time09:03
-!- cronor [] has quit [Read error: Connection reset by peer]09:03
sonne|workwiking: you have to know that we didn't (and still don't) even use SGVector that much09:03
sonne|worklots of stuff operates on double*09:04
wikingsonne|work: yeah i can see09:04
sonne|workand some len09:04
sonne|workI hope that will change now09:04
wikingi mean 95 lines is not so much compared to the whole LoC of shogun09:04
sonne|workbut still it is a looong way09:04
sonne|workalright work!@09:04
-!- cronor [] has joined #shogun09:05
-!- gsomix [~gsomix@] has joined #shogun09:48
gsomixProgramming in car is bad idea09:49
sonne|workgsomix: don't drive and code09:49
sonne|workthere are not enough traffic jams I guess :)09:49
gsomixI will come to Samara in an hour09:56
gsomix113km from home09:58
-!- av3ngr [av3ngr@nat/redhat/x-esiwbjbcmoextztr] has quit [Quit: That's all folks!]09:59
-!- gsomix [~gsomix@] has quit [Read error: Connection reset by peer]09:59
-!- gsomix [~gsomix@] has joined #shogun09:59
gsomix113km from home09:59
gsomixbad internet :)10:00
-!- gsomix [~gsomix@] has quit [Ping timeout: 256 seconds]10:11
-!- cronor [] has quit [Quit: cronor]10:13
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking]10:47
CIA-113shogun: Soeren Sonnenburg master * r2c888f8 / (3 files in 2 dirs):10:51
CIA-113shogun: Merge pull request #509 from pluskid/kernelmc-store-model10:51
CIA-113shogun:  (+5 more commits...) -
-!- cronor [] has joined #shogun10:52
-!- wiking [] has joined #shogun11:00
-!- wiking [] has quit [Changing host]11:00
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun11:00
-!- blackburn [~qdrgsm@] has joined #shogun11:30
-!- gsomix [~gsomix@] has joined #shogun11:58
gsomixok, I'm in Samara11:58
-!- cronor [] has quit [Ping timeout: 252 seconds]12:01
-!- cronor [] has joined #shogun12:05
blackburngsomix: is it you knock-knock? :)12:16
gsomixblackburn, aha12:16
blackburnI had been kind of sleeping yet this time12:16
blackburn@egorov I'm at Reichstag w/ @kantaria and 81,034 others12:18
blackburnsonne|work: hmm I have no clang complete12:39
blackburndo you use it?12:39
-!- vikram360 [~vikram360@] has quit [Ping timeout: 260 seconds]12:41
-!- n4nd0 [] has quit [Ping timeout: 245 seconds]12:43
wikingnyipp this clang_complete seems sweet12:48
blackburnwiking: how to use it?12:51
wikingblackburn: do u use vim or any derivative of vim like gvim?12:51
wikinguse it12:51
blackburnyeah already12:51
wikingor of course here's the
blackburnhow to generate that ctags file? :D12:52
wikingquote: "You don't need any ctags for it to work! Only clang is needed."12:52
blackburnwiking: okay so how to ask him for completion ? :D12:54
wikinghave u actually read this:
wiking After a . , -> and :: it is automatically trying to complete the code. If you want to "force" the completion, use <C-X><C-U> which is the mapping for user defined completion.12:55
blackburnno :D12:55
blackburnokay thanks12:55
wikingand here's some stuff about what to put into .clang_complete12:56
wikingif u are having problemoooos12:56
blackburnwiking: hmm nicht problemos12:57
blackburnworks like a charm12:57
wikingyeah it is12:57
blackburndid you know about it?12:58
wikingfirst time i'veheard now there on12:58
wikingpull request12:58
wikingpluskid should share more funky shit :)12:58
blackburnyeah I guess he knows something we do not12:59
blackburnmay be he even has script for shogun development12:59
blackburnI admit it takes some time :D12:59
wikingyeah this way doing coding is much faster13:00
wikingi mean for me a lot of times i had to do git grep functioncall13:00
wikingso that i know what the fuck is the return value and the argu13:00
blackburnno I mean may be even some make-painful-sgvector-transition commands13:00
blackburnwiking: how does it work??13:05
blackburnwiking: how can it be so fast :D13:05
blackburnsome C plugin for vim I had had for a while is much more slower13:06
blackburnbut it was a bunch of templates only13:06
wikingthis is because of libclang13:08
wikingi'm not 100% sure13:08
wikingbut afaik they do a binary based indexing as well13:08
wikingthe story is of course here that apple had a very shitty autocomplete mechanism for c/c++13:09
wikingin xcode13:09
wikingand now they did it within clang13:09
wikingsince they dropped gcc because of gplv313:09
blackburnwiking: does frame on top close after completion?13:10
blackburnit stays here :(13:12
-!- pluskid [] has joined #shogun13:16
-!- n4nd0 [] has joined #shogun13:17
-!- n4nd0 [] has quit [Client Quit]13:17
CIA-113shogun: Chiyuan Zhang master * r2e99d05 / src/shogun/machine/KernelMulticlassMachine.cpp : Use index_t instead of int32_t for index type. -
CIA-113shogun: Soeren Sonnenburg master * rf91c456 / src/shogun/machine/KernelMulticlassMachine.cpp :13:24
CIA-113shogun: Merge pull request #514 from pluskid/kernelmc-store-model13:24
CIA-113shogun:  -
sonne|workblackburn: I had a look at SGString/SparseVector13:28
sonne|workIMHO the overhead of 20 bytes for each is too much...13:28
sonne|workbecause we store stringlist/sparsematrix as list of sgstring/sparse vector13:29
sonne|workfor SGVector itself things are not soo bad13:29
sonne|workbecause we really rarely needed this13:30
sonne|workfor very small vecs13:30
sonne|workpluskid: ahh you around!13:30
sonne|workpluskid: I wanted to ask one thing - in current sgvector we have this refcount ptr13:30
sonne|worknow all incref'ing is done automagically13:30
blackburnsonne|work: then sparse matrix should be sparse in a different way!13:31
sonne|workblackburn: ?13:31
blackburnnot as collection of sparse vectors13:31
pluskidautomagically :D, good word13:31
sonne|workblackburn: why that?13:31
blackburnsonne|work: but that will enable us to do refcounted matrix..13:31
sonne|workpluskid: and unrefing too except that maybe someone wants to *manually* unref13:32
sonne|workblackburn: SGSparseMatrix will always work13:32
-!- vikram360 [~vikram360@] has joined #shogun13:32
blackburnyes but not with that overhead13:32
sonne|workpluskid: so in this case it may happen that someone calls x.unref()13:32
sonne|workpluskid: more than once13:32
sonne|workpluskid: so what I do is set all the ptrs to the data to NULL13:32
sonne|workpluskid: so that works ... but now the problem is when someone wants to do x.ref(); x.ref(); multiple times13:33
sonne|workthen he cannot unref() it twice13:33
sonne|workso I made ref() protected13:34
pluskidsonne|work: you mean, on a single unref() call, you reset all ref-counters?13:34
pluskidfor example, ref-count is 5 currently, when user *manually* call unref, you set it to 0?13:34
sonne|workpluskid: it is not needed anyway but somehow not my intuition13:34
sonne|workpluskid: no13:34
sonne|workpluskid: I set the ptr pointing to ref count to NULL13:35
pluskidah, then when will the data be free-ed?13:35
wikingpluskid: awessoooome! again!13:35
pluskidit looks strange13:35
pluskidwiking: ??13:35
sonne|workpluskid: when the last object's refcount gets 013:35
wikingpluskid: your pull req! i really needed that13:36
sonne|workblackburn: well if we keep SGSparseVector as is there is no problem13:36
pluskidsonne|work: oh, I see, you set the ref-count pointer of the current object to NULL13:36
sonne|workwiking: waiting for your patch to introduce index_t in SG* :)13:36
blackburnsonne|work: why not to change sgsparsematrix?13:36
sonne|workpluskid: exactly13:36
wikingsonne|work: you mean the replacement of the bad indexing variables?13:37
sonne|workblackburn: I said not change sparse vector - not sparse matrix13:37
pluskidsonne|work: do you decrease ref_count before reseting the pointer to NULL?13:37
sonne|workwiking: int32_t -> index_t13:37
sonne|workpluskid: of course13:37
blackburnsonne|work: ??13:37
wikingsonne|work: yep yep that one13:37
sonne|workpluskid: I just wanted your opinion on that13:37
pluskidsonne|work: a bit strange, let me think for 2 min :D13:37
sonne|workpluskid: it cannot leak memory - that is the good thing13:37
sonne|workpluskid: only problem is that ref() can never be called explicitly13:38
sonne|workblackburn: we have sparse *vectors* and sparse *matrices13:38
pluskidsonne|work: if ref() is not call explicitly, why unref() will be called explicitly?13:38
pluskidpeople should call ref() and unref() in pairs, or else it is a bug13:39
sonne|workblackburn: I am saying exploding sparse vectors is not good because we use them in sparse matrix13:39
blackburnsonne|work: obvious - why not to make sparse matrix independant from vector?13:39
sonne|workpluskid: argh13:39
blackburnthere are other ways to store sparse matrices13:39
pluskidsonne|work: ?13:40
sonne|workpluskid: no one ever needs to call unref() if he can live with the object being automagically destroyed at some point13:40
sonne|workpluskid: however sometimes you want to get rid of the old object13:40
pluskidsonne|work: then just re-assign it to an empty one13:40
pluskidthe operator= will call unref()13:41
sonne|workpluskid: or call unref13:41
blackburnwhy to unref anything?13:41
pluskidsonne|work: calling unref() is strange here, the object still exist but becomes invalid13:41
pluskidsg_vec = SGVector(length=0) will do, that's the standard way13:42
pluskidand this will solve your headache of ref/unref13:42
sonne|workpluskid: so you would make ref/unref private13:42
pluskidsonne|work: yes, as private as possible13:43
sonne|workand instead of writing sg_vec.unref() do sg_vec=SGVector<float64>()13:43
pluskidunless you have to interactive with some legacy code or some other lang (SWIG? maybe I don't know)13:43
pluskidsonney2k: yes13:43
pluskidsonne|work: btw, STL vector has a clear() method :p13:43
sonne|workpluskid: no swig will only ref/unref SGOBjects13:44
sonne|worknot data types13:44
sonne|workpluskid: what does it do?13:44
pluskidsonne|work:  it virtually do vec = std::vector()13:44
sonne|workSTL vector is not even guaranteed to be contiguous in memory13:44
pluskidsonne|work: no, it is13:44
pluskidvector should be continguous13:44
sonne|workit is but not in the standard13:44
pluskidI don't think so13:45
sonne|workat least when I considered it 10 years ago13:45
pluskidvector iterator is random-access iterators13:45
sonne|work>10 years ago13:45
* sonne|work is old13:45
pluskidfor a random-access iterators to work, it should guarantee contiguous memory13:45
wiking"From the C++03 standard (
wikingThe elements of a vector are stored contiguously, meaning that if v is a vector where T is some type other than bool, then it obeys the identity &v[n] == &v[0] + n for all 0 <= n < v.size().13:45
pluskidsonne|work: maybe time to re-consider STL and become young again :p13:46
blackburnsonne|work: just imagine you are 20 again13:46
blackburnyou should accept our suggestion!13:46
sonne|workhah I just learned: C++98 standard didn't completely guarantee contiguity, the C++03 standard was amended to explicitly add the guarantee.13:48
sonne|workof contiguous memory13:48
pluskidconsidering refactoring of CLabels, I start to prefer not doing it right now13:50
sonne|workpluskid: what is the issue?13:51
pluskidBecause the current class works fine with regression, binary and mc13:51
pluskidrefactoring won't change much13:51
pluskidI'm the current CLabels is just good enough, if we don't consider SO13:52
pluskidI'm expecting huge changes to our Label system when more SO learning is involved13:52
blackburnmy suggestion is13:53
blackburnto develop SOLabels standalone for now13:53
blackburnand machine too13:53
blackburnwe can always merge that kind of baselines13:53
blackburnand this would enable n4ndo to work on that13:53
blackburnnot requiring waiting for the changes13:54
pluskidI mean, if we ignore SO, CLabels work fine, so it is not urge to refactor CLabels; if we consider SO, then they will also need to refactor CLabels, our refactoring needs to be compatible with theirs, and since ours are rather small, we'd better follow the SO's side: what kind of class hierarchy they need, etc.13:55
sonne|workpluskid: I don't see what SO and regression/binary/mc labels could change except get_num_labels() and is_valid()13:56
blackburnI still think template labels could be cool there13:57
pluskidsonne|work: float64_t get_label(int32_t) will be meaningless in SOLabels, they should return a more complex object I think13:57
sonne|workpluskid: that is why this function is not in the shared baseclass13:58
sonne|workblackburn: I don't13:58
blackburnsonne|work: why?13:58
sonne|workblackburn: what do you think you gain by templates?13:58
pluskidsonne|work: so the shared baseclass becomes almost empty, only have functions like get_num_labels()13:59
blackburnsonne|work: generality13:59
sonne|workpluskid: yes13:59
blackburnsonne|work: even SO can be done with template13:59
sonne|workbut then the template needs to be of a certain class type14:00
sonne|worknot int / double etc14:00
pluskidsonne|work: that's OK, only a little painful because have to do cast almost everywhere14:00
blackburnsonne|work: why?14:00
sonne|workblackburn: how do you implement 'is_valid' ?14:00
blackburnsonne|work: specialize14:00
blackburnI am sorry i can't see problem there - what is ?14:01
sonne|workblackburn: give a more concrete example how you think it works14:01
blackburnis multiclass labels14:02
pluskidsonne|work: if we use template, then we'll not use a shared base class for various kind of labels14:02
blackburnthe only problem is that machine contains pointer to labels14:02
blackburnwe can mimic boost::any here somehow14:02
blackburnpluskid: do you agree?14:02
pluskidblackburn: I'd rather prefer we use only MCLabels in MCClass, SOLabels in SOClass, no base class14:03
blackburnno base class at all?14:03
pluskidblackburn: yes14:03
sonne|workpluskid: we need a base class14:03
blackburnsonne|work: why do we?14:03
sonne|workfor machines returning labels14:03
pluskidsonne|work: only because we have a generic CMachine, that is almost empty14:03
blackburnsonne|work: right14:03
pluskidsonne|work: we can split14:04
pluskidsonne|work: MCMachine.apply() returns MCLabels14:04
pluskidSOMachine.apply() returns SOLabels14:04
blackburnpluskid: we will lost CMachine interface then14:04
sonne|workyeah - I prefer having the interface14:04
sonne|workit is like apply(CFeatures*)14:04
pluskidblackburn: why do we need a generic apply()?14:05
sonne|workand train(CFeatures*)14:05
sonne|workpluskid: it is the interface of all machines14:05
blackburnpluskid: to make all machines similar14:05
blackburnin some kind14:05
pluskidsonne|work: but they are actually not similar, MC machine apply to MClabels, SO machine applys to MCClass14:05
blackburnhaving general interface seems to be cool anyway14:06
sonne|workpluskid: they are - they all work on features and labels14:06
blackburnall features are features14:06
blackburnand all labels are labels14:06
blackburnconcept stays14:06
pluskidCMachine can become empty, just like the base class CLabels can become empty14:06
blackburnpluskid: yes interface fate of that classes  :D14:07
pluskidblackburn: one option is to make CMachine empty; another option is to make CLabels empty14:07
blackburnwhy empty?14:07
pluskidalmost empty14:08
sonne|workpluskid: you have the same problem with kernels14:08
blackburnapply is here14:08
sonne|workand kernel machines14:08
sonne|workthey have an apply() method14:08
sonne|workand can work with *any* kind of features14:08
sonne|workthat fit the kernel14:08
pluskidhmm, seems we have discussed about this before14:09
pluskidanyway, I'm OK with either solution14:09
blackburnsonne|work: clang seems to be *very* cool14:11
blackburnhowever there is a bug I'll try to resolve14:11
blackburnah not a bug option14:12
-!- blackburn [~qdrgsm@] has left #shogun []14:12
-!- blackburn [~qdrgsm@] has joined #shogun14:12
blackburnwiking: g:clang_complete_auto = 114:13
blackburn g:clang_close_preview = 114:13
blackburnI want to make preview display doc14:14
blackburnpluskid: we want you to share more funky stuff :)14:21
pluskidblackburn: pathogen neocomplcache?14:29
blackburnpluskid: sounds like an illness name14:30
pluskidpathogen is an elegent way of managing vim plugins14:30
pluskidneocomplcache is a plugin that's cool I think14:30
pluskidno perfect plugins, but many are cool, clang_complete is one with promising future14:31
blackburnpluskid: do you use clang complete + neocomplcache?14:31
blackburnI am really excited with clang complete14:31
pluskidyes I use the two14:31
blackburnokay I'll try it now14:32
-!- eric_ [2e1fd566@gateway/web/freenode/ip.] has joined #shogun14:32
eric_hi all14:32
wikingeric_: try multi class now14:32
wikingi mean multi class xval14:33
eric_wiking: I saw it in the logs, thx :p14:33
eric_wiking: one question about it: I get one error : "MulticlassLibSVM does not support locking"14:34
wikingeric_: mmm have u checked the example?14:34
eric_wiking: what's locking ? Is it possible to run multiclass Xval with MulticlassLibSVM or MKLmulticlass ?14:35
blackburnpluskid: did you configure neocomplcache?14:35
eric_wiking: sure14:35
pluskidblackburn: yes, a bit14:35
wikingeric_: u should be able to run multiclasslibsvm14:35
blackburnpluskid: can you share a config?14:35
wikingin xval14:35
pluskidblackburn: a min14:35
gsomixsonne|work, CSet is on github now.14:35
wikingjust replace basically CMulticlassLibLinear -> CMulticlassLibSVM14:36
wiking 14:36
wikingkernel of course14:36
wikingfucking hell what's with this irc client14:36
wikingi've tested yesterday and workedforme14:36
CIA-113shogun: Soeren Sonnenburg master * r98c94f9 / (6 files in 2 dirs):14:36
CIA-113shogun: Merge pull request #515 from gsomix/CSet14:36
CIA-113shogun:  (+5 more commits...) -
eric_wiking: that's exaclty what I have done, it returns "MulticlassLibSVM does not support locking. Autolocking is skipped. Set autolock flag to false to get rid of warning."14:37
blackburnpluskid: cool! thanks14:37
gsomixsonne|work, wow, so fast. tnx.14:37
pluskidblackburn: ur wel~ :) hope you find interesting thing14:38
gsomixunfortunately I have to study the methods for solving the eikonal equation14:38
blackburnpluskid: yes - is git status a some plugin?14:38
gsomixcu later14:38
wikingeric_: ok, then add this: cross->set_autolock (false); to line 123 in evaluation_cross_validation_multiclass.cpp14:38
wikingi'm trying here as well14:38
pluskidblackburn: let me find14:38
wikingbut i still need to recompile shogun14:39
pluskidblackburn: vim-powerline14:39
pluskidblackburn: actually, you might find many useful plugin here:
pluskidblackburn: vim-fugitive is also needed for the git status line to work I think14:39
eric_wiking: warning disappear but got seg fault14:40
wikingpluskid: i've just used janus till now14:40
wikingeric_: i'll try it myself as well14:40
blackburnwow cool thanks, pluskid14:40
wikingstill waiting for the compilation14:40
blackburnwiking: do you use ccache?14:41
wikingblackburn: y14:41
blackburnok :)14:42
pluskidwiking: I use spf13 until this morning. Crazy by various mysterious behaviors and not being able to find where they are configured, I re-write my own vimrc today14:42
pluskidthat's what blackburn saw just now :D14:42
pluskidbtw: clang+ccache is cool14:42
wikingProgram received signal EXC_ARITHMETIC, Arithmetic exception.14:44
wiking0x000000010023294d in shogun::CMap<int, int>::hash (this=0x7fff5fbfdfa0, key=<value temporarily unavailable, due to optimizations>) at Map.h:24914:44
wikingeric_: sorry i have tested it with the version where still std::map was used ;)14:44
blackburnpluskid: did you patch your fonts for powerline?14:45
pluskidblackburn: no, it's fine14:45
blackburnhmm droid?14:45
blackburnI have troubles with liberation fonts, will try droid14:46
pluskidDroid sans mono14:46
blackburnhehe looks like a crap still14:46
blackburnpluskid: no colors, some crazy chars14:47
pluskidhmm... no idea, just works here14:47
blackburnI am using guake here14:48
pluskidKDE fan here14:48
wikingooooh loool stupid IDE handled % hash_size as comment14:52
eric_wiking: I got "Floating point exception" error14:52
wikingeric_: no worries i think i know what's the problem14:52
wikingthere's a modulo 014:52
wikinggsomix: here?14:53
gsomixwiking, yep.14:54
wikinggsomix: u wrote Map.h right?14:54
gsomixyep =___= what's wrong?14:54
wikinggsomix: return CHash::MurmurHash2((uint8_t*)(&key), sizeof(key), 0xDEADBEEF) % hash_size;14:54
wikingit can actually happen that hash_size = 014:55
gsomixwiking, show me code.14:55
wikingcheck line 249 in Map.h14:55
wikingand then if the map is constructed like this: CMap<int32_t, int32_t> all_sv;14:56
wikingthen basically hash_size = 014:56
wiking=> arithmetic error14:56
gsomixah, I got it.14:56
wikingeverything booooms14:56
wikingso i guess14:56
wikingin void add(const K& key, const T& data)14:56
wikingyou should do something with hash_size or something :)14:57
gsomixwiking, I'll fix it. please, use custom constructor14:59
gsomixat now14:59
wiking^^ pluskid14:59
pluskidoops, forgot to recommend ctrlp and a.vim -- the two best vim plugin in my knowledge :D15:04
blackburnpluskid: I use A15:06
blackburnpluskid: I have problem with clang complete and necompl15:06
pluskidblackburn: what's that?15:06
blackburnpluskid: it fails because they both define completeFunc function15:07
pluskidhmm? I didn't get any error15:07
gsomixwiking, fixed.15:08
gsomixI think I need to introduce rehash method for increase hash_size.15:09
blackburnpluskid: hmm interesting - it fails only after :A15:09
pluskidblackburn: ah, I see, also failing here15:10
-!- n4nd0 [] has joined #shogun15:14
CIA-113shogun: Evgeniy Andreev master * rbb6c2a7 / (src/shogun/lib/Map.h src/shogun/lib/Set.h): fixes in default constructors -
CIA-113shogun: Evgeniy Andreev master * rf416fe9 / (src/shogun/lib/Map.h src/shogun/lib/Set.h): another fixes in default constructors -
CIA-113shogun: Soeren Sonnenburg master * r191a0b1 / (src/shogun/lib/Map.h src/shogun/lib/Set.h):15:20
CIA-113shogun: Merge pull request #516 from gsomix/CSet15:20
CIA-113shogun:  -
wikinggsomix: testing15:23
-!- nicococo [] has joined #shogun15:24
wikingeric_: should work now15:28
wikingeven without calling set_autolock(false)15:29
eric_wiking: I pull, test, and come back.15:33
blackburnpluskid: how to get these colors like in powerline screenshots?15:34
blackburnI have no colors here at all15:34
blackburndo you have?15:34
eric_ahah improving your vimrc config ?15:36
eric_about that: does any1 get autocompletion with boost lib ?15:37
eric_I never succeed in having completion working with "template" library15:38
blackburneric_: yeah we solved this issue with using no boost :D15:38
pluskidI changed nothing15:39
blackburnpluskid: I see - some bug here :(15:40
blackburnin my config may be15:40
eric_do you have a common config ?15:40
eric_wiking: mmhh I got a seg fault. I will check my code again.15:44
wikingeric_: i've just changed that example code to use gaussian with multiclasslibsvm15:44
wikingand it ran w/o any errors15:45
gsomixwiking, works?15:45
wikinggsomix: yep like a charm thnx15:45
* gsomix breathed out15:46
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking]15:47
-!- wiking [] has joined #shogun15:48
-!- wiking [] has quit [Changing host]15:48
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun15:48
-!- cronor [] has quit [Ping timeout: 250 seconds]15:49
eric_wiking: still got seg fault15:52
eric_wiking: [0.096233,0.099767] with alpha=0.400000, mean=0.098000 Segmentation fault15:52
eric_wiking: ok solved. my fault.15:56
blackburnpluskid: export TERM="xterm-256color" solved it!15:57
eric_wiking: SG_UNREF(cross) is the issue16:00
eric_wiking: because it control unref of labels etc ..16:02
wikingeric_: great, now you can xval :D16:12
wikinghave fun16:12
eric_wiking: thx again!16:13
wikingeric_: thanx to pluskid16:13
eric_pluskid: +116:13
blackburntime to shogun!16:13
blackburnvim is moar awesome now16:14
pluskidu r wel! though I'm not sure what's happening here :p16:14
pluskidblackburn: solved clang_complete vs. neocomplcache conflict?16:14
blackburnpluskid: no just dropped neocomplcache16:14
blackburnfor now16:14
pluskidblackburn: considering that, too16:14
wikinggunshow: say it fast repeatedly16:15
pluskidthough it's very nice for completing header file path etc.16:15
wikingblackburn: SAY IT16:15
wikingyeah fast16:15
wikingand repeatedly16:15
wikingif u know what i mean? :)16:16
blackburnah :D16:16
pluskidblackburn: btw, maybe this could help:
blackburnI start to think most of github projects are vim plugins :D16:17
blackburnpluskid: pathogen is simply awesome16:18
blackburnI am curious whether sonne|work would accept it :D16:18
sonne|workvim plugin sure16:19
pluskidblackburn: it seems someone has mirrored *every* script in the official vim-script site to github16:19
blackburnsonne|work: try pathogen - installs plugins automagically16:20
blackburnand clang complete + neocomplcache is awesome too16:20
blackburnpluskid: aren't these guys authors?16:20
pluskidblackburn: no, see this user:
pluskidhe has 3,972 github repos16:21
pluskidall are vim-scripts16:21
blackburnpluskid: that's nice nevertheless16:22
gsomixvimers, vimers everywhere16:26
pluskidI was a Emacser16:28
sonne|workpluskid: poor guy16:28
sonne|workbut it is good that you converted from the dark side :-)16:29
pluskidI love emacs-lisp, I wrote a Emacs plugin that is quite popular ( Though I use vim nowadays, I never managed to understand the crappy vimscript syntax...16:29
pluskidblackburn: it seems installing this plugin can solve the conflict:
pluskidI haven't tested much, but at least the errors seems to be gone16:32
blackburnpluskid: yes errors are gon16:34
blackburnpluskid: what system do you use btw?16:41
pluskidblackburn: Arch Linux16:41
blackburnheh cool we cover a lot of distribs in our dev team16:42
pluskidwhat do we have?16:42
blackburnI use ubuntu (yet?), sonne|work uses debian, my mentor chris uses opensuse16:42
blackburnwiking uses macos16:43
pluskidthat's a good coverage16:43
blackburnyes, no windows but16:44
blackburnwho needs windows :D16:44
sonne|workbut shogun doesn't run under windows anywya16:44
blackburnyes only cygwin16:45
-!- n4nd0 [] has quit [Read error: Connection reset by peer]16:47
wikingi recall somebody struggling with shogun under cygwin16:47
wikingbut then he never came back16:47
blackburnyes it can happen if you try to compile shogun under cygwin16:48
* wiking wonders whether that is a sign for success or failure16:48
-!- n4nd0 [] has joined #shogun16:48
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking]16:56
sonne|workblackburn: he submitted many patches16:59
sonne|workand fixed many bugs tough16:59
blackburnsonne|work: about guy with cygwin?16:59
eric_sonne|work: any advice ? MulticlassLibSVM::load_serializable(): File contains no parameter version. Seems like your file is from the days before this was introduced.17:05
eric_sonne|work: what type of file should I choose to save/load svm machine trained17:06
eric_I use currently CSerializableAsciiFile17:06
blackburneric_: did you save it with exactly that version?17:07
blackburnpluskid: cool!17:07
eric_yes I rerun the trainind step17:07
blackburnit is a bug then17:08
pluskidnite boys17:13
blackburnsonne|work: I am ok with pluskid's patch - sounds very reasonable for me17:13
blackburnpluskid: good night17:13
pluskidblackburn: maybe he is sonney2k now (on the train), :D17:14
-!- pluskid [] has quit [Quit: Leaving]17:14
blackburnyes should be sonne|train17:14
-!- wiking [] has joined #shogun17:15
-!- wiking [] has quit [Changing host]17:15
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun17:15
blackburnn4nd0: check last pull request17:23
blackburnI believe it can be the acceptable solution17:23
n4nd0oh labels, interesting17:24
eric_wiking: remarq = in your Xvalid c++ example, when you apply the trained svm on the same features, the training error your print is actually the accuracy.17:29
-!- eric_ [2e1fd566@gateway/web/freenode/ip.] has quit [Quit: Page closed]17:32
n4nd0blackburn: I am not sure if I understand the functionality of LabelsImpl17:35
blackburnn4nd0: just storing/returning/etc17:35
blackburnn4nd0: generalize all the stuff17:35
n4nd0what can be used as a CLabel but not as a CLabelImpl?17:38
blackburnn4nd0: hmm machines have labels17:40
blackburnnot labelimpl because it is *any* templated17:40
n4nd0ahm I see17:42
n4nd0it looks nice to me17:42
n4nd0I have to go now17:43
n4nd0see you later!17:43
blackburnsee you17:43
-!- n4nd0 [] has quit [Quit: leaving]17:43
-!- gsomix [~gsomix@] has quit [Quit: Ex-Chat]17:45
CIA-113shogun: Sergey Lisitsyn master * r608f708 / src/shogun/regression/KernelRidgeRegression.cpp : Fixed KRR crasher -
-!- uricamic [~uricamic@2001:718:2:1634:f2de:f1ff:fecf:a6a5] has quit [Quit: Leaving.]18:49
-!- vikram360 [~vikram360@] has quit [Ping timeout: 240 seconds]19:46
-!- Marty28 [] has joined #shogun19:52
-!- puffin444 [62e3926e@gateway/web/freenode/ip.] has joined #shogun19:57
-!- Marty28 [] has quit [Quit: Colloquy for iPad -]20:01
blackburnsonney2k: you should try these cool plugins pluskid referenced!20:24
-!- n4nd0 [] has joined #shogun20:28
puffin444What are these plugins?20:30
blackburnpuffin444: ctags_complete20:31
CIA-113shogun: Soeren Sonnenburg master * r49462e7 / (15 files in 9 dirs): make unref() protected -
blackburnsonney2k: fixing plifs (fyi)20:48
CIA-113shogun: Sergey Lisitsyn master * rad0868b / (3 files): Fixed Plif and PlifMatrix SGVectors handling routines -
-!- blackburn [~qdrgsm@] has quit [Quit: Leaving.]20:53
-!- PhilTillet [~philippe@] has joined #shogun20:55
-!- blackburn [~qdrgsm@] has joined #shogun20:56
-!- ckwidmer [] has joined #shogun21:01
-!- PhilTillet [~philippe@] has quit [Read error: Operation timed out]21:05
-!- gsomix [~gsomix@] has joined #shogun21:10
gsomixcrazy day21:10
gsomixtoo many people in Samara21:10
blackburnyeah fire and gas can help there I think21:11
gsomixblackburn, hehe21:20
* gsomix have returned from dance floor21:20
@sonney2kblackburn, I have some general ML question21:23
blackburnfor me?21:24
@sonney2kdo you have any idea how one can compare two distributions21:24
@sonney2kI have some very simple ratios21:24
@sonney2kx,y  x+y=121:24
@sonney2kand I know what values x & y should have21:25
@sonney2kbut at some point they start to deviate21:25
@sonney2khow can I measure deviation21:25
@sonney2kblackburn, yes21:25
-!- vikram360 [~vikram360@] has joined #shogun21:25
@sonney2kI thought about sth like relative entropy21:25
@sonney2kaka kullback leiber divergence21:26
@sonney2kKL div21:26
blackburnyeah know that21:26
@sonney2knot so sure if that is the best chocie thoug21:26
ckwidmersonney2k, what do you think the downside is?21:26
@sonney2kckwidmer, no idea21:27
@sonney2kI haven't tried it yet21:27
blackburnwell KL is a kind of standard metric between distributions afaik?21:28
ckwidmerI used it once in a very simple setting, worked ok for what I was doing (checking how different distributions for different tasks are)21:28
blackburnsonney2k: do you want ->R function? or to find out whether they deviate?21:29
@sonney2kckwidmer, ok - that sounds pretty similar to my problem21:29
blackburnin the second case kolmogorov test would work21:29
@sonney2kblackburn, yeah some score telling how much they deviate21:29
@sonney2kso not just 'deviates'21:30
ckwidmersome people here in tuebingen use MMD (maximum mean discrepancy) for two sample problems21:30
blackburnsonney2k: yeah heiko should be expert there21:30
@sonney2kheiko is not here :(21:30
blackburnckwidmer: we have gsoc project about that ;)21:30
@sonney2kheiko is implementing arthurs code in shogun...21:31
ckwidmerI see21:31
ckwidmerone thing to consider with KL21:31
blackburnckwidmer: I am interested in that too btw21:31
ckwidmeris that it's not symmetric21:31
@sonney2kckwidmer, I know21:31
@sonney2kbut that's ok21:31
blackburnsonney2k: JS btw21:32
blackburnit is symmetric21:32
blackburnI do think you can even use JS kernel from shogun to measure it21:32
ckwidmeryou could also do something like KL(X,Y) + KL(Y,X)21:33
ckwidmeroptional :)21:33
blackburnckwidmer: I said that already :)21:33
blackburnckwidmer: JS it is21:33
ckwidmerguess sometimes, you have to spell it out for clarity21:34
@sonney2kfunny thing is that this is very close to JS21:34
blackburnckwidmer: :) jensen shannon21:34
blackburnif I understand you right21:35
@sonney2kckwidmer, what you wrote21:35
@sonney2kJS is KL(X, X+Y) + KL(Y, X+Y)21:35
@sonney2kand a couple of 0.5's21:35
blackburnoh okay sorry :D21:35
gsomixgood night guys21:36
@sonney2kgsomix, let me guess your android phone?21:36
@sonney2kgsomix, any progress on the array stuff btw?21:36
gsomixsonney2k, aha, phone gone crazy :)21:37
gsomixsonney2k, a little, just added methods in DynamicArray. now I need to replace all Array# in the code by DynamicArray.21:38
@sonney2kgsomix, very good - so thanks for the update and have a nice sleep!21:39
-!- PhilTillet [~philippe@] has joined #shogun21:39
gsomixsonney2k, May celebrations have ended -> more time to shogun21:39
@sonney2kblackburn where are we SGMatrix transition wise21:40
@sonney2kare examples back to normal?21:40
blackburnsonney2k: in big black ass :D21:40
@sonney2kor do we still have a few crashers?21:40
blackburnonly a few21:40
@sonney2kvalgrind errors...21:40
@sonney2kblackburn, ahh btw we didn't end the discussion about sparse matrix / sparse vector21:41
@sonney2kwhat I was saying is that the current SGSparseVector should either be kept or renamed to sth else21:41
@sonney2kif we want to save 20 bytes / vector21:41
@sonney2ksame with SGString btw21:41
@sonney2kif we decide not to save these 20 bytes21:42
@sonney2kwe can do crazy things like replacing / fetching vectors21:42
@sonney2kand sharing them21:42
blackburnsonney2k: do you know boost matrix21:52
blackburnm(i,j) = x21:53
blackburnehm.. we have too??21:55
-!- cronor [] has joined #shogun22:06
-!- ckwidmer [] has quit [Remote host closed the connection]22:14
blackburnsonney2k: about sgsparsematrix?22:15
-!- puffin444 [62e3926e@gateway/web/freenode/ip.] has left #shogun []22:27
blackburnfugitive should be illegal22:28
CIA-113shogun: Sergey Lisitsyn master * r34da81e / src/shogun/converter/MultidimensionalScaling.cpp : Used () matrix element access in the MDS -
-!- gsomix [~gsomix@] has quit [Read error: Operation timed out]22:31
blackburntime to merge some code22:32
shogun-buildbotbuild #904 of libshogun is complete: Failure [failed compile]  Build details are at  blamelist: blackburn91@gmail.com22:33
-!- Netsplit *.net <-> *.split quits: PhilTillet22:34
CIA-113shogun: Sergey Lisitsyn master * rc1bcbbb / src/shogun/converter/MultidimensionalScaling.cpp : Fixed bug in last commit -
blackburnshogun-buildbot: forgive me I was wrong it will never happen again22:38
wikinghehehe it's cool actually22:38
blackburnwiking: what is?22:39
wikingwe can make buildbot say anything22:39
blackburnwiking: last year we had one bot here22:39
* wiking already knows what's his next commit log will look like22:39
blackburnhe was answering with phrases he catched there22:39
blackburnit was funny actually22:39
shogun-buildbotbuild #905 of libshogun is complete: Success [build successful]  Build details are at
blackburn@sonney2kbettyboo, are you always smiling?10:5822:41
blackburn@bettyboosonney2k: but you are interested in shogun?10:5822:41
blackburn@sonney2kbettyboo, yes of course - now I understand the reason why you are smiling.10:5922:41
blackburn@bettyboosonney2k: input set of strings, output n-dimensional representation22:41
blackburnwiking: ^22:41
blackburnwiking: I'll make a 10k LoC commit in ten mins :D22:47
blackburn(I renamed everything to blackburn instead of shogun)22:47
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking]22:53
blackburnhmm got another idea for cool commit22:56
blackburnn4nd0: hey did you make any progress?22:56
-!- Netsplit over, joins: PhilTillet23:01
-!- PhilTillet [~philippe@] has quit [Ping timeout: 245 seconds]23:17
blackburnhave somebody ever grep for FUCK word in shogun git index?23:21
CIA-113shogun: Sergey Lisitsyn master * r3df8a13 / (25 files in 7 dirs):23:24
CIA-113shogun: Integrated SLEP (SparseLEarningPackage) core code23:24
CIA-113shogun:  -
-!- cronor_ [] has joined #shogun23:40
-!- cronor [] has quit [Ping timeout: 256 seconds]23:40
-!- cronor_ is now known as cronor23:40
--- Log closed Thu May 10 00:00:37 2012