Open in new window / Try shogun cloud
--- Log opened Thu May 10 00:00:37 2012
-!- cronor [] has quit [Read error: Connection reset by peer]00:04
-!- cronor [] has joined #shogun00:04
CIA-113shogun: Sergey Lisitsyn master * ra0c2a2c / (2 files): Fixed crasher in HomogeneousKernelMap -
CIA-113shogun: Sergey Lisitsyn master * r469d3b4 / src/shogun/preprocessor/HomogeneousKernelMap.cpp :01:43
CIA-113shogun: Got HKM to work01:43
CIA-113shogun:  -
-!- av3ngr [av3ngr@nat/redhat/x-roigqstaldablgrl] has joined #shogun02:48
blackburnI have to sleep :D02:52
blackburndid first openmp vs pthreads benchmark for dotfeatures03:16
blackburnall the same03:16
-!- blackburn [~qdrgsm@] has left #shogun []03:17
-!- n4nd0 [] has quit [Ping timeout: 240 seconds]03:39
-!- vikram360 [~vikram360@] has quit [Ping timeout: 248 seconds]05:17
-!- vikram360 [~vikram360@] has joined #shogun05:18
-!- wiking [] has joined #shogun06:37
-!- wiking [] has quit [Changing host]06:37
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun06:37
-!- gsomix [~gsomix@] has joined #shogun06:53
-!- gsomix [~gsomix@] has quit [Ping timeout: 252 seconds]07:05
-!- wiking [~wiking@huwico/staff/wiking] has quit [Read error: Connection reset by peer]07:06
-!- wiking_ [~wiking@huwico/staff/wiking] has joined #shogun07:06
-!- n4nd0 [] has joined #shogun07:37
-!- cronor [] has quit [Read error: Connection reset by peer]08:03
-!- wiking_ [~wiking@huwico/staff/wiking] has quit [Quit: wiking_]08:04
-!- wiking [] has joined #shogun08:09
-!- wiking [] has quit [Changing host]08:09
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun08:09
-!- cronor [] has joined #shogun08:18
-!- blackburn [~qdrgsm@] has joined #shogun08:57
-!- abn_ [av3ngr@nat/redhat/x-dxmxfeutkmfrzcsf] has joined #shogun08:57
-!- abn_ [av3ngr@nat/redhat/x-dxmxfeutkmfrzcsf] has quit [Client Quit]08:58
sonne|workblackburn: we should have a couple of divergences in shogun09:09
sonne|workcool stuff09:09
sonne|workblackburn: sry fall asleep yesterday09:09
blackburnsonne|work: hehe09:09
blackburnsonne|work: and I lost my sleep09:10
blackburnbut fixed some things09:10
sonne|workme too got woken up by someone very small09:10
* sonne|work is excited about KL/JS/Bregman divs09:11
blackburnsonne|work: how should it look like?09:11
sonne|workit is a distance between distributions09:12
sonne|workI think I even implemented entroy/rel entropy in CMath:: many years back09:12
sonne|workactaully bregman divergence can be euclidian distance with appropriate choice of F09:13
sonne|workso I guess yes distance it is09:13
blackburnsonne|work: however it is a distance between samples09:13
blackburnmay be some other base would be better09:14
blackburnsonne|work: I have idea how to shrink distances code09:16
blackburnthey are all full of stuff get/free09:16
blackburnwe need to redefine *only* computing routine09:16
blackburngiven context of lhs and rhs vector09:16
-!- cronor [] has quit [Quit: cronor]09:16
sonne|workblackburn: for same feature type - yes09:19
blackburnsonne|work: real distances09:20
blackburnat least09:20
blackburnyeah I have to go to job too09:22
blackburnsonne|work: try fugitive - for example workflow is :Gstatus - check files with '-' :Gcommit09:23
blackburnI agree with its description - it is so cool it should be illegal :D09:24
-!- av3ngr [av3ngr@nat/redhat/x-roigqstaldablgrl] has quit [Quit: That's all folks!]09:30
n4nd0blackburn: I am checking this fugitive thing, looks nice!09:35
blackburnn4nd0: are you using vim too?09:35
n4nd0blackburn: yes09:35
blackburnthen try all these things too :)09:35
blackburnpowerline is really neat09:35
blackburnand clang_complete is awesome09:36
n4nd0I have not heard about those09:36
CIA-113shogun: Sergey Lisitsyn master * raf84965 / (2 files):09:39
CIA-113shogun: Revert "Exposed Subset in modular #445"09:39
CIA-113shogun:  -
-!- cronor [] has joined #shogun09:43
-!- vikram360 [~vikram360@] has quit [Read error: Connection reset by peer]09:43
-!- vikram360 [~vikram360@] has joined #shogun09:43
-!- blackburn [~qdrgsm@] has quit [Quit: Leaving.]09:48
-!- av3ngr [] has joined #shogun09:56
-!- nickon [] has joined #shogun10:09
-!- blackburn [5bdfb203@gateway/web/freenode/ip.] has joined #shogun10:09
n4nd0nicococo: hey! how is it going?10:11
n4nd0nicococo: do you have a moment?10:11
sonne|worknicococo: btw I don't think we should even consider SO with kernels10:18
sonne|workit has no relevance in practise10:19
blackburnsonne|work: did you notice I accidentally enlarged shogun by 10k LoC? :D10:20
sonne|workblackburn: why that?10:21
blackburnsonne|work: slep10:21
sonne|workdoes anything in there work already?10:21
blackburnsonne|work: where?10:21
sonne|workslep + shogun?10:21
blackburnnot now but first SGObject regressor to be merged soon10:22
sonne|workback to work...10:22
blackburnsonne|work: I tried ecoc this night10:28
sonne|workwhich scheme?10:28
blackburnrandom d10:29
blackburndense and sparse10:29
blackburnlow performance10:29
blackburnlower than OvR10:29
blackburnso probably need data dependent scheme10:29
sonne|workblackburn: I guess this is only useful for *many* classes10:29
sonne|workrandom I mean10:29
blackburnyes and may be not linear models10:29
blackburnI can easily imagine some class pairs or so are not linearly separable10:30
sonne|workalso I am no longer that convinced that the +1 / -1 choice in sampling scheme is that good ...10:30
sonne|workanayway back to work10:30
blackburnok work work10:30
blackburnI have nothing to do here10:30
blackburnmay be I shall drink tea10:30
n4nd0sonne|work: no kernels used in SO in practise??10:33
sonne|workn4nd0: it is *very very very* slow10:33
wikingblackburn: yo what happened with HKM :)10:34
sonne|workso even 100 sequences with kernels is HUGE SCALE10:34
sonne|worknot largescale!10:34
wikingblackburn: since i'm just finishing up the example code for it10:34
blackburnwiking: fixed already10:34
* sonne|work work10:34
wikingblackburn: what was the problem? the bug was because of the sgvector/matrix changes?10:34
blackburnwiking: yes10:34
wikingblackburn: "what's the does the acronym HELP stands for?" "???" "Bring a liter of vodka"10:35
wikingof course only works in hungarian10:35
blackburnhungarian lessons10:36
-!- av3ngr [] has quit [Quit: That's all folks!]10:50
-!- eric_ [2e1fd566@gateway/web/freenode/ip.] has joined #shogun11:08
eric_hi all11:08
n4nd0hey eric_11:11
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection]11:31
CIA-113shogun: Viktor Gal master * rb8e0fa9 / (2 files):11:31
CIA-113shogun: Minor fixes for evaluation_cross_validation_multiclass11:31
CIA-113shogun:  -
CIA-113shogun: Soeren Sonnenburg master * rc4a34c1 / (2 files):11:31
CIA-113shogun: Merge pull request #518 from vigsterkr/master11:31
CIA-113shogun:  -
-!- wiking [] has joined #shogun11:32
-!- wiking [] has quit [Changing host]11:32
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun11:32
n4nd0sonne|work: is there any problem with using friend classes?11:43
sonne|workn4nd0: avoid if possible - you must have a very good reason to use it...11:45
n4nd0sonne|work: I am going to think of it a bit more and if I still think that it makes sense I will try to convince you ;)11:45
sonne|workeveryone is doing that these days11:46
blackburnsonne|work: is it true that some editor said about your paper 'it is already in shogun'?11:47
blackburnchris said you had some issue like that11:47
sonne|workbut someone said that we should try shogun - it must have faster methods than the one we presented11:48
n4nd0:D that's fun11:48
sonne|workI usually had the algorithms in shogun before even considering to write a paper11:48
sonne|workthat *never* was a problem11:49
blackburnsonne|work: chris has some algo implemented11:49
sonne|workthe only problem was that people used this and didn't know what to cite11:49
blackburnbut not yet accepted11:49
blackburnto ECML11:49
sonne|workso it is good to have a tech report11:49
sonne|workor sth11:49
blackburnso we think whether to merge it before deadline11:49
sonne|workas I said I *never* had a problem wrt that11:50
blackburnhmm ok11:50
-!- pluskid [] has joined #shogun11:52
sonne|workblackburn: I know a couple of people though that kept stuff secret and then it never went into shogun11:55
blackburnsonne|work: I'd say most of stuff is not worth secret11:55
blackburnSVM is worth for example :D11:55
sonne|workyeah but think of it - you have a toolbox with 1000 methods11:56
sonne|worknow 1 new is in there with some strange name11:56
sonne|workso what?11:56
sonne|workwho will even try this one out?11:56
blackburnhehe no one11:56
blackburnI don't think we have more than 100 users actually11:56
sonne|worka lot more11:56
blackburn*active* users11:56
sonne|workwe have like 200 unique visitors on the website per day11:57
blackburnthose are using it day by day?11:57
blackburnwhat do I think is we need to heavy promote 2.011:57
blackburnwe would need more applications though11:58
sonne|workwell if everyone here does - yes11:58
sonne|workyes cool applications get you users11:58
blackburnfood :D11:58
blackburnn4nd0: where do you want to establish friendship in shogun?11:59
n4nd0I have to think a bit more about it, but I'll let you know soon probably12:00
blackburnn4nd0: does pluskid's concept fit to your ideas of SO labels?12:01
pluskidsonne|work: is the new CLabels hierarchy OK?12:02
blackburnpluskid: he is sonne|food now12:02
blackburnpluskid: but let me say it is ok for me :)12:02
n4nd0it looks reasonable for me as well12:03
pluskidn4nd0: long time no see12:03
blackburnpluskid: would require casting but no other way I think12:03
n4nd0pluskid: exams ...12:03
pluskidn4nd0: how many remains?12:03
pluskidblackburn: yes, sad12:04
n4nd0pluskid: maybe one on the 30th, I am not sure if they will allow me to take it from here, otherwise I will skip it12:05
pluskidsounds complicated situation, are you visiting at another school?12:05
blackburnn4nd0: skip??12:06
n4nd0blackburn: do it next year12:06
blackburnI would like to be able to skip exams :D12:06
blackburn''nah I don't want to take this exam'12:06
n4nd0pluskid: I live and study a master in Sweden and have still some courses left from my degree in Spain12:06
blackburnn4nd0: if it was russian univ you could send they some money :D12:07
blackburnn4nd0: how image would look like if you SVD it, leave only largest eigenvalues (and according vectors) and multiply it back?12:10
n4nd0leave largest singular values right?12:11
blackburnyeah sure12:11
n4nd0I guess it wouldn't look very detailed12:12
n4nd0but the strongest features would remain12:12
blackburnn4nd0: I asked my fellows year ago..12:12
n4nd0general shapes and so on12:12
blackburnthey DO NOT KNOW IT12:12
blackburnthat should be impossible12:12
blackburnhow can mathematician (I study mathematics as major as they do) do not know it12:13
n4nd0I don't know12:13
n4nd0maybe they got scared with the image thing12:14
blackburnn4nd0: it is called low rank approximation btw12:14
n4nd0might be so if it is the first time you face a problem like that12:14
n4nd0aham good to know, thanks!12:14
blackburnn4nd0: there are some related methods for kernels12:14
blackburnfor example nystroem approximation12:15
blackburnthat makes possible to estimate kernel matrix by a few values12:15
blackburnn4nd0: funny thing about MLOSS is that different toolkits do everything in different ways12:21
blackburnI do not understand what do they plan to do12:21
n4nd0looks interesting12:22
blackburnI am free 14.05.2012 - 19.08.201212:39
blackburnsonne|work: freedom! :D12:39
n4nd0blackburn: congrats!12:40
blackburnn4nd0: however I have to write thesis :D12:41
n4nd0what about?12:41
blackburnn4nd0: road sign recognition12:42
blackburndeadline is in three weeks12:42
-!- pluskid [] has quit [Ping timeout: 260 seconds]13:05
blackburnn4nd0: my thesis is going to be *the only* work on domain adaptation available in russian :D13:17
blackburnn4nd0: what is your bachelor's thesis about?13:17
n4nd0blackburn: I have not done any yet13:19
n4nd0blackburn: in Spain we don't have this bachelor + master organization13:19
n4nd0my degree, the one I started with is 5 years long13:20
blackburnbut how did they accept you for masters?13:20
n4nd0they required 180 ECTS or three year of university studies13:20
n4nd0I had that ;)13:20
n4nd0180 ECTS is a Swedish bachelor13:20
blackburnah credits13:21
blackburnI see13:21
blackburnn4nd0: we have no credits here :)13:21
blackburnonly grades and pass/fail13:22
n4nd0in some very old degrees is like that13:22
n4nd0no credits and no grades either?13:22
blackburnfor now I have got about 40 grades (possible values are 3,4 or 5)13:22
blackburnand about 20 'pass'13:22
blackburnhowever I have no 3 grades13:23
blackburnthat means I am receiving a stipend :)13:23
-!- pluskid [~pluskid@] has joined #shogun13:23
n4nd0pluskid: hey, I would like to ask you about the new labels hierarchy13:26
pluskidn4nd0: so?13:26
n4nd0pluskid: I guess you will use some MulticlassMachine that inherits from CMahine, right?13:27
n4nd0CMachine has CLabels13:27
n4nd0and you'd probably like that the MulticlassMachine had CMulticlassLabels13:27
pluskidall machines has CLabels, but do cast in the run time, just like Features13:27
n4nd0all right13:27
n4nd0so the idea is to add casts wherever they are necessary13:28
n4nd0probably with one in a base method should be enough13:28
n4nd0ok :)13:28
blackburnn4nd0: what is you are working on?13:28
n4nd0blackburn: I am designing how SO class structure should look like13:29
pluskidand I guess you will create some CSOLabels, or to be specific CTreeLabels, CSeqLabels, etc13:29
n4nd0I agree with creating CStructuredLabels13:29
n4nd0but no CTreeLabels and so on13:30
blackburnn4nd0: ??13:30
n4nd0my idea is that, for example13:30
pluskidStructuredLabels might be too generic13:30
blackburnto override label class?13:30
blackburnconcrete label I mean13:31
n4nd0a tree can be more than a label13:31
blackburnbut what?13:31
pluskide.g. in NLP, POS tagging is a tree?13:31
blackburncan't see any problem there..13:32
-!- blackburn is now known as blackburn|food13:32
-!- pluskid is now known as pluskid|some13:32
-!- pluskid|some is now known as pluskid13:32
-!- pluskid is now known as pluskid|is-there13:33
-!- pluskid|is-there is now known as pluskid13:33
n4nd0I think it makes sense to have CStructuredLabels as13:34
n4nd0CStructuredLabels : public CLabelsImpl< CStructuredData >13:35
n4nd0and one can define Tree, Sequence, and so on extending CStructuredData13:35
sonne|workpluskid: hmmh13:35
pluskidyes, but I think to have specific TreeLabels , SeqLabels helps you to specify what StructuredData (i.e. TreeData, SeqData) should be13:36
sonne|workthe new label thing will certainly not work for structured labels where the type is some class13:36
pluskidsonne|work: why?13:36
sonne|workbut I am not so excited about the templates too13:36
sonne|workpluskid: because you SGVector<type>13:36
n4nd0I think it is already done with some class in the PR13:37
pluskidI can use std::vector ... @_@13:37
sonne|workyeah you would have to use dynarray13:38
pluskidthe underlying object will not be subclass of CSGObject I think13:38
sonne|workbut for more complex labels you would want to return ptrs?13:38
pluskidcan be something like SGVector (lightweight object wrapping some underlying heavy data)13:40
sonne|workyou mean some kind of SGGraph / Tree whatever13:40
pluskidhowever, that will be up to n4nd0, whatever he need/like13:41
sonne|workpluskid: but why would one need get_vector in the main class anyways?13:41
sonne|workI mean in features we also don't have it13:41
sonne|workbut only specialized classes doing this13:42
pluskidwhat's get_vector?13:42
pluskidyou mean CLabelsImpl::get_label() ?13:43
sonne|workin CFeatures we don't have any get/set feature matrix/vector13:43
pluskidthat's for code sharing. CLabelsImpl defines get_label, then all classes derived from it automatically have this method13:43
pluskidCLabelsImpl will not be visible from users13:44
pluskidusers only see the interface CLabels, and specific CBinaryLabels, etc13:44
sonne|workpluskid: you also have code sharing if you have just some real valued labels for mc/binary/regression13:45
-!- nickon [] has quit [Quit: ( :: NoNameScript 4.22 :: )]13:45
sonne|workfor SO labels things are different anyways13:45
pluskidsonne|work: yes, that's why I think it is not necessary to do refactoring at this time13:46
pluskidthe new hierarchy will be also suitable for SO labels13:46
pluskidif we do refactoring, we should take into consideration SO13:46
pluskidor else no need to do refactoring13:47
pluskidsince the current system works fine13:47
sonne|workpluskid: number of labels, confidence, subset all can be in the base class13:47
pluskidyes, they are in the base class13:47
sonne|workwith SGVector<elem_t> m_labels - we can no longer access things as double* right?13:56
sonne|workand we would need new typemaps for each elem_t13:56
sonne|worktrying to squeeze everything into a common base class with get_vector() being shared makes it too complicated imho13:58
pluskidsonne|work: can't we just work with CLabels in python?13:59
pluskidCLabels, CBinaryLabels, CMCLabels13:59
sonne|workI don't understand13:59
pluskidwe don't expose the internal in Python13:59
sonne|workwe currently need to set the values of the labels somehow13:59
pluskidso no need to have typemaps for internal structures like elem_t14:00
pluskidset labels can be set_label(float64_t)14:00
sonne|workso when you pass a numpy.array([1.0,2.0,3.0]) it will set an SGVector<float64_t> in labels14:00
pluskidset_label(float64_t) for binary and regression, set_label(int32_t) for MC14:00
pluskidthat could also be supported14:01
pluskidsimple to wrap14:01
pluskidset_labels(SGVector<T> labels)14:01
pluskidthis method can be added easily14:01
pluskidwithout exposure of the internals14:01
sonne|workand then you internally copy?14:01
sonne|workand when you return things - copy again?14:01
-!- blackburn|food is now known as blackburn14:02
sonne|workI just wanted to get rid of this with the SGVector refcount stuff14:02
pluskidyou mean return a big SGVector<float64_t>?14:02
pluskidwe have a SGVector in CLabels, the memory is already there14:02
sonne|workyeah - I mean you would have too right?14:02
sonne|workbut it is SGVector<elem_t>14:03
pluskidyes, we cannot return that to the users14:03
pluskidbut do users need SGVector<int32_t> that often?14:03
n4nd0blackburn: hey, maybe you can help me a moment with this14:04
sonne|workwell many methods need it for training14:04
n4nd0blackburn: it is related to the friend classes I said before14:05
pluskidthen a copy is needed14:05
blackburnn4nd0: uh..14:05
blackburnwhy structured model?14:05
n4nd0blackburn: to put together the pieces that are application specific14:06
n4nd0such as the compute_argmax and the computation of joint (input instance + label instance) features14:06
blackburnhmm makes sense14:07
blackburnok and where are friends?14:07
n4nd0so as you see there14:07
n4nd0CLabels and CFeatures pop up everywhere14:07
n4nd0because they are required everywhere mainly14:07
n4nd0I am looking for the best way to handle this14:08
blackburnn4nd0: no I don't think it should be like that14:08
n4nd0blackburn: let's think first on the labels for example14:08
n4nd0blackburn: CMachine has a class member for that, thus CSOMachine will have it14:09
n4nd0but now, how can we make it accesible for CStructuredModel and CStructuredLoss?14:09
n4nd0one option is just to put it as an argument of the methods that need them14:10
blackburnn4nd0: yeah seems fine to me14:10
blackburnbetter than friend14:10
n4nd0mmm why?14:10
blackburnor may be no, I am unsure14:11
n4nd0for me it makes kind of sense that CStructuredModel and CStructuredLoss have access to labels and features as if they were members14:11
n4nd0since they (CStructuredModel and the loss) are members of CSOMachine as well14:12
blackburnsonne|work: any opinion on that?14:12
n4nd0sonne|work: take a look to the attachment if so14:12
sonne|workpluskid: if we don't use templates we can avoid this - I don't have time now to look into it further so I guess we have to postpone this14:13
sonne|workn4nd0: what?14:13
pluskidsonne|work: OK, I'm fine14:13
pluskidI'd continue to work with DECOC now14:14
sonne|workpluskid: yes thansk14:14
sonne|workn4nd0: what is the problem?14:14
n4nd0sonne|work: I think that it makes sense that CStructuredModel and CStructuredLoss have access to the features and the labels of CSOMachine as if they were their class members14:15
sonne|workahh new paradigm here14:15
n4nd0CSOMachine contains: labels, features, model and loss14:15
sonne|workcurrently only the machine has the features14:15
sonne|workbut now labels need features too14:16
n4nd0model and loss need features and labels14:16
n4nd0we can either pass them as arguments to their methods14:16
n4nd0or allow friendship between CSOMachine and CSModel14:17
-!- pluskid_ [] has joined #shogun14:17
n4nd0and betweent CSOMachine and CSLoss14:17
sonne|workn4nd0: I prefer that features are set from Machine -> labels/losss/model14:17
sonne|workso you just set them upon train14:17
sonne|workand drop them when done14:17
sonne|workso you can use them directly ...14:18
blackburnI prefer that too14:18
n4nd0sonne|work: ok, I can move features inside model14:18
n4nd0sonne|work: but loss needs them too so ...??14:18
sonne|workthe machine needs the loss14:18
sonne|workso the machine can give the loss the features14:18
n4nd0:D but it's the same issue14:19
n4nd0because model also needs the features14:19
n4nd0for compute_joint_feature14:19
-!- pluskid_ is now known as pluskid|watermel14:20
sonne|workmachine can pass the features to model and loss - so what is the problem?14:21
-!- pluskid [~pluskid@] has quit [Ping timeout: 260 seconds]14:21
n4nd0you just said that SOMachine shouldn't have the features as a member right?14:22
n4nd0sonne|work: but Loss could have them?14:22
sonne|workn4nd0: I said that SOMachine should have them and loss and whoever needs it14:22
n4nd0sonne|work: all of them as a class member?14:23
n4nd0all right ...14:23
n4nd0then I don't understand when you said14:23
n4nd014:17 < sonne|work> n4nd0: I prefer that features are set from Machine -> labels/losss/model14:23
n4nd014:17 < sonne|work> so you just set them upon train14:23
n4nd014:17 < sonne|work> and drop them when done14:24
sonne|workthat is what I meant with that14:24
sonne|workwithin CSOMachien you do loss->set_features(m_features) etc14:24
n4nd0it looks like problem solved then :)14:24
n4nd0I directly assumed that to have it as member in all the classes was not a solution14:25
n4nd0looks redundant14:25
blackburnfriend looks worse anyway14:25
sonne|workblackburn has no friends14:25
blackburnn4nd0: yeah I have no friends so I do not want friendship in shogun :D14:26
n4nd0but we do have friendship in shogun :P14:26
n4nd0I saw something in multiclass14:26
n4nd0that's why I am a bit surprised you don't like it guys14:27
blackburnhmm where?14:27
n4nd0friend of CSVMMulticlass14:27
blackburnwhat is friend?14:27
blackburnthis can be avoided14:27
n4nd0SVM.h:268:friend class CMulticlassSVM;14:27
blackburnin future14:27
blackburnit is related to sv indices AFAIK14:28
sonne|workn4nd0: IIRC in pluskid|watermel's commit :)14:29
sonne|workI also added some friends14:29
-!- pluskid|watermel is now known as pluskid14:29
blackburnhey guys try "git grep FUCK"14:29
sonne|workno idea how to avoid them14:29
n4nd0blackburn: you kidding?14:29
blackburnn4nd0: no I do not :D14:29
blackburnwe have 2 'shit' word occurencies14:30
blackburnand one FUCK14:30
pluskidfound it in ChangeLog...14:30
n4nd0haha true14:30
sonne|workonly when you threaten to beat me up - you are allowed to commit commit msg containing F.CK14:31
blackburnsonne|work: did he threaten to beat you? haha14:32
blackburnbut hey you are 1.914:32
blackburnyou should be able to beat up anyone :)14:32
sonne|workblackburn: by just jumping on him :D14:32
blackburnsonne|work: I can definitely kill someone by jumping on him (95kg :D)  -- feel free to ask14:33
sonne|workalmost like kim schmitz14:34
sonne|workI have to woooork!14:34
blackburnsonne|work: I am not like that guy for sure :D14:35
sonne|workblackburn: megablackburn megashoguning14:35
n4nd0so what about SOLabels?14:37
blackburnn4nd0: pluskid and two commits containing 'shit' word are here too14:37
blackburnone is mine and one is of fabio di bona14:37
n4nd0the thing is that I don't see lot of sense in doing a class SGTree and later CTreeLabels14:38
blackburnn4nd0: why?14:38
blackburnwell may be you are right14:38
n4nd0because we could end up having14:38
n4nd0CTreeLabels, CSeqLabels ....14:38
blackburntrue I am ok with generic SO labels14:39
n4nd0that just differ in the type, whether SGTree or SGSequence14:39
blackburnno other specialization?14:39
n4nd0probably in internal functions14:39
n4nd0something that SGTree and SGSequence must implement14:39
n4nd0but I don't think that is even required right now, this specialization14:40
n4nd0since the methods required for SO will be implemented in a specialization of the StructuredModel14:40
blackburnok then14:43
n4nd0but I have to think this aspect more carefully14:44
blackburnsonne|work: when do you plan to start with sparse and string stuff?14:46
sonne|workblackburn: I thought you do sparse I do string?14:46
blackburnsonne|work: yes - when do you plan to start with it?14:46
sonne|workno idea14:47
blackburnpluskid: I want a watermelon too14:47
pluskidblackburn: nothing left :D14:48
blackburnthey are available only in september here14:49
sonne|workpluskid: before I forget: I made the unref() protected and added the x=SGVector() to force deletion15:12
sonne|workI couldn't make it private because it is not possible to call unref() in destructor (calling some virtual method)15:13
pluskidsonne|work: you mean destructor of some subclass?15:13
sonne|workyes I need to call unref() from there15:14
cronorIs there a toy dataset in shogun for regression, that does not have 100% accuracy?15:14
pluskidsonne|work: why not let the destructor of SGReferencedData to call unref() ?15:15
sonne|workpluskid: because it is not possible to call a virtual method in destructor15:15
sonne|workbase class destructor15:15
sonne|workcronor: well generate one - sin(x)+rand ...15:16
pluskidsonne|work: OK, I see15:16
pluskidthat's cool15:16
sonne|workbut anyway it is sooo much nicer now15:16
sonne|workpluskid only problem now is SGStringList/SparseMatrix15:16
pluskidwhat's their problem?15:17
sonne|workthey both use arrays of SGString/SparseVector15:17
blackburnsonne|work: imagine how it would be cool to get more 2012 features instead of 1985 ones ;)15:17
sonne|workand an overhead of 20 bytes per SGString/SparseVec15:17
sonne|workwould be there with the new system15:17
sonne|workSGVector/Matrix is not really a problem15:17
sonne|worknot sure if we just live with that or if we try to be smart15:18
sonne|workpluskid: ^15:18
pluskidmaybe we can try to live with that, and see whether we really have a problem with that extra 20bytes in practice15:18
blackburnI don't mind these 20 bytes here15:19
pluskidif we really have problem, then we try to find a solution15:19
sonne|workpluskid: maybe you are right15:20
sonne|workthe only example I have was some data set I trained years ago15:20
sonne|work50e6 examples15:20
sonne|workso overhead would be 1G15:20
blackburnsonne|work: 100mb overhead?15:20
sonne|work50*20 =100015:20
blackburnah I was always weak in math15:20
* pluskid is not good at arithmetic 15:21
sonne|workI cannot even count15:21
blackburnsonne|work: what is dataset size?15:21
blackburnthen huge overhead, right..15:21
-!- nicococo [] has quit [Ping timeout: 245 seconds]15:21
sonne|workyeah strings were length 14115:21
-!- gsomix [~gsomix@] has joined #shogun15:22
blackburnhowever we have to recall in modular interfaces everything is copied almost two times15:22
sonne|workonly once15:22
sonne|workrecall we have the new sg* stuff now15:22
sonne|workand for python there may even be ways :D15:23
blackburnsonne|work:sad it is not possible to map numpy matrices as sg stuff15:23
n4nd0gtg now guys15:23
n4nd0see you later!15:23
sonne|workblackburn: it is...15:23
blackburnsonne|work: how to handle references?15:24
-!- n4nd0 [] has quit [Quit: leaving]15:24
pluskidmaybe SparseMatrix is used more often, and we can implement in some more efficient way (instead of simply array of SparseVector)?15:24
sonne|workpluskid: what is more efficient?15:24
sonne|workit is actually pretty fast now15:24
pluskidI mean memory efficient15:25
blackburnsonne|work: memory wise efficient15:25
sonne|workI see15:25
sonne|workwell yeah if we keep some internal SGSparseVector type15:25
sonne|worklet say SGSparse15:25
blackburnwe can add intermediate class there15:25
sonne|workthen we could convert these into SGSparseVector15:26
sonne|workbut w/o refcount15:26
sonne|workand add a function that returns a copy w/ refcount15:26
sonne|workI am not aware of any sharing of SGSparseVectors yet15:26
sonne|workso it might be ok15:27
pluskidbtw, sonne|work, since you are starting to like the automagic ref-counting in SGVector/SGMatrix, I would like to remind you that what you implemented in the new SGVector/SGMatrix is conceptually identical to a shared_ptr15:31
pluskidbut a shared_ptr is more general15:31
blackburnsonne|work: and it is boost15:31
pluskidthan SGReferencedData15:31
blackburnvector map set15:32
sonne|workpluskid: what overhead does shared_ptr come with?15:32
pluskidfor example, let's denote our old un-ref-ed SGVector SGOldVector15:32
sonne|workwit SGRefD - I know it is 20 bytws15:32
pluskidsonne|work: the boost one's overhead is a bit heavier, because it has to work with anything15:33
pluskidbut we can customize a simpler one15:33
pluskidwith only those overhead as our SGRefD15:33
pluskidthough with some limitations15:33
sonne|workwhich limitations btw?15:34
pluskidit will only work with our SG** type15:34
sonne|workI don't see any so far15:34
pluskidI mean, for SGRefD, you have to derive some class from that, and implement some method15:34
pluskidbut with shared_ptr, you typedef shared_ptr<SGOldVector> SGNewVector15:34
pluskidthen SGNewVector is the ref-counted vector15:35
pluskidthe principles are the same, just if you use template, you write less code15:35
pluskidbecause the compiler write code for you15:36
pluskidanyway, just saying that15:36
pluskidthe current SGRefD is already pretty cool15:36
pluskidwe couldn't be too ambitious in a short time15:36
sonne|workpluskid: for SGObject we can use a more heavy solution but we have 2 weeks before things have to be more or less stable again15:37
pluskidsonne|work: yeah, I'm just saying15:38
sonne|workmy experience with boost so far was that compile time went up 1000%15:38
pluskidsonne|work: hmm, that's the biggest problem15:38
sonne|workand wrapper code size too15:38
sonne|work(from swig)15:38
sonne|workand we already need ~3G to compile the wrapped code...15:38
blackburnsonne|work: we can do somthinng similar to shared_ptr15:38
blackburnnot to use boost15:38
pluskidbtw I mean the boost-way of writing our own shared_ptr, not to try to introduce boost as our dep15:38
pluskidoops... 3G15:39
pluskidI see why my laptop hangs before I add more memory15:39
sonne|workpluskid: I would be more than happy if you start that after we release shogun 2.0 after GSoC15:39
sonne|workpluskid: if you use clang it is ok15:39
blackburnsonne|work: SGVector should contain not pointer but valarray I think15:39
sonne|workpluskid: if you have an idea how to split up a .cpp file into many - we could resolve the issue15:40
pluskidsonne|work: I'm just trying to remind you sth at some time to try to decrease your hate with template :p15:40
sonne|workpluskid: no I like templates15:40
sonne|workbut only for simple types15:40
sonne|workfor everything else it can become messy/slow15:40
sonne|workblackburn: :P15:41
blackburnsonne|work: ehm? how can template be slow15:41
pluskidblackburn: why valarray here?15:41
sonne|workblackburn: compile time15:41
blackburnpluskid: we need to check if it gives any advantage15:41
blackburnrumours are it is faster?15:41
pluskidblackburn: for math operations?15:42
sonne|workblackburn: than atlas?15:42
blackburnsonne|work: atlas is slow anyway15:42
-!- eric_ [2e1fd566@gateway/web/freenode/ip.] has quit [Quit: Page closed]15:42
blackburnI need to check source15:43
blackburnwhat could make it faster?15:43
pluskidsonne|work would argue that valarray has extra overhead15:43
blackburnI thank gods sonne|work do not mind openmp15:45
sonne|workpluskid: indeed15:45
sonne|workI think it will have quite a bit of overhead15:45
sonne|worklook when we tried to publish OCAS15:45
sonne|work(the fast SVM cutting plane solver)15:46
sonne|workit was very slow15:46
sonne|workand the reason was qsort in stdlib!15:46
pluskidqsort in C stdlib is slow15:46
sonne|workIIRC 10 times slower than what we do in shogun15:46
pluskidbecause it use function pointers15:46
pluskiddo you mean C qsort or C++ std::sort ?15:47
sonne|workso I don't really trust third party stuff when it is about performance15:47
sonne|workC qsort15:47
sonne|workand memory efficiency15:47
pluskidsonne|work: then that would be reasonable15:47
pluskidfunction pointers are *very* slow15:47
sonne|workfor the rest - I don't care15:47
pluskidI think std::sort could be fast15:47
-!- gsomix [~gsomix@] has quit [Ping timeout: 244 seconds]15:47
pluskidin qsort, you have to do pointer derefence and  function context switch in every comparison of numbers15:48
blackburnsonne|work: are you sure std stuff is anyhow less efficient?15:48
pluskidthat totally kill CPU prediction, time flow, etc.15:48
pluskidbut std::sort doesn't have this problem15:48
pluskidit use functors, the function call can all be inlined15:49
blackburnpluskid: really? I did callback interface in my code15:49
blackburnare virtual functions better there?15:49
sonne|workblackburn: if you dont' do it often...15:49
pluskidblackburn: function pointers are slow, but if not like qsort (it is called so many times), I think you won't mind callbacks15:49
blackburnsonne|work: very often15:49
pluskidblackburn: virtual functions are also slow btw15:50
blackburnI did kernel(i,j) callback15:50
blackburnso is there any other way then?15:50
pluskidthat's why functors are popular in STL15:50
pluskidI'm not sure of your scenario15:50
pluskidbut if you want to use functors, template have to be introduced15:50
blackburnpluskid: I need a lot of kernel value computations15:50
pluskidor else we could embrace C++11 :D15:51
blackburnI don't mind templates there15:51
pluskidwhich defines std::function type, much better to use than a generic T type15:51
pluskidblackburn: maybe show me the code?15:51
-!- karlnapf [] has joined #shogun15:51
blackburnpluskid: yeah I would like to show but it is available only locally on other machine15:52
blackburnI can do a little bit later15:52
blackburnpluskid: to provide flexible api I made a callback interface15:53
blackburnfor example I pass a pointer to function that calls m_kernel->compute(i,j)15:53
pluskidblackburn: ok. the general idea is to replace function callback with a functor. just compare C qsort with std::sort (which accept a comparator IIRC?)15:53
blackburnprobably I didn't notice any time-wise overhead because it works with virtual functions anyway15:54
pluskidvirtual function is also kinda slow15:54
pluskidit's address has to be decided at run time15:55
pluskidso compiler can do nothing to optimize15:55
pluskidand the CPU cannot predict the address15:55
pluskidcache miss15:55
blackburnpluskid: no other way..15:55
pluskidbtw: things might be better if JIT is presented (like in Java)15:55
blackburnpluskid: why functors are faster?15:56
sonne|workpluskid: are you sure these things happen if everything is available together at *compile time*15:56
sonne|workI would expect the compiler to optimize these things away15:56
pluskidsonne|work: compiler cannot determine the content of a pointer at compile time15:57
pluskidblackburn: functors's method is non-virtual, can be inlined15:57
pluskidvoid foo() is always faster than virtual void foo()15:58
blackburngot it15:58
blackburnpluskid: however virtual would stay still - so probably no need to optimize it here15:58
pluskidblackburn: virtual functions are not always evil, we would try not to over-optimize. I think We'd better do some profiling to see the bottleneck before trying hard to optimize some part15:59
pluskidBTW, I think there are some people in C++ that use heavy template and never use virtual functions16:00
pluskidthey might hate virtual and dynamic things as much as sonne|work  hate STL :D16:00
blackburnI heard of that subculture :D16:00
pluskidblackburn: maybe boost guys are part of them16:01
pluskidhowever, using template this way is really sloooooooooooooow at compiling16:01
blackburnI will change everything once I take shogun over (HAHA! sonne|work)16:02
pluskidand as sonne|work said, the produced executable also glows very big, which would also produce large cache miss when running16:02
blackburnokay my long break is signed16:03
blackburnlast day before 3 month work break tomorrow16:03
pluskidone more drawback with template is that the compile error is ......16:05
pluskidyou might just want to die when presented with several hundred pages of compiling errors16:06
blackburnpluskid: I had one idea16:07
blackburnabout multiclass machines16:07
blackburndo you think it makes sense to have not binary trees?16:07
blackburncontaining multiclassmachines in nodes16:07
blackburnthis can hardly be done with ecoc I think16:08
pluskidwhat's the advantage?16:08
blackburnpluskid: hmmm imagine you have 3 types of square road signs and 3 types of round road sings..16:10
pluskidoh, you are writing your report16:11
pluskidthen that makes sense16:11
blackburnpluskid: yes however my best results are with OvR still16:11
pluskidmight better be a decision tree?16:12
blackburnpluskid: based on?16:12
pluskidbased on your best-performed classifier haha16:13
blackburnI mean how to construct that tree?16:13
blackburnin nodes16:13
pluskidfirst distinguish whether spare or round16:14
pluskidthen do MC classification on each branch?16:14
blackburnyes that sounds exactly as what I said ;)16:14
blackburnhowever I think I have to implement it by myself16:14
pluskidyeah, easily hand-crafted for your specific problem16:15
karlnapfsonney2k, blackburn, I found the reason why the locked training doesnt work anymore:16:26
karlnapfwill fix this later, gotta go now16:26
-!- karlnapf [] has left #shogun []16:26
blackburnkarlnapf whoops16:27
blackburnI'll fix that16:27
-!- gsomix [~gsomix@] has joined #shogun16:27
sonne|workblackburn: that code has drastically changed16:35
sonne|workI think the reason is this line //index_t idx=params->indices.vector ? params->indices.vector[vec] : vec;16:35
blackburnsonne|work: it was looking like it wasn't used at all..16:35
CIA-113shogun: Soeren Sonnenburg master * rbee313d / src/shogun/machine/KernelMachine.cpp : fix subset & kernel machines -
sonne|workI think that is the fix16:36
sonne|workblackburn: true actually16:37
blackburnI hope so16:37
sonne|workshouldn't it be result->set_label(vec, kernel_machine->apply(idx));16:38
blackburnsonne|work: idx, idx?16:39
sonne|workinstead of vec16:40
blackburnsonne|work: I am lost there16:40
CIA-113shogun: Soeren Sonnenburg master * r717f885 / src/shogun/machine/KernelMachine.cpp : use idx -
blackburnsonne|work: btw with openmp dot features are MUUUUCH more readable16:40
sonne|workanother attempt16:41
blackburnand kernel machine would be more readable too16:41
sonne|workblackburn: benchmark and if things are still same speed - I am ok16:41
blackburnsonne|work: tried on d=1000, N=10000 - the same16:42
blackburnmmore to benchmark thoug16:42
blackburnsonne|work: good thing about openmp - no crazy ifdefs16:44
blackburnjust simple pragma16:44
sonne|workI know16:44
sonne|workI used it...16:45
blackburnI am not trying to say you don't know ;)16:45
blackburnjust emphasize it16:45
blackburnparallel code = serial code and that is nice16:45
pluskidI need to do histogram on each dimension of the features, then what kind of CFeatures should I require and cast to use?16:47
blackburnpluskid: dot features or dense features16:48
blackburnpluskid: add_to_dense_vec is ok here I think16:49
blackburnso can be dotfeatures (a little more generally - supports sparsity)16:49
pluskidblackburn: so I just check whether it is a subclass of CDotFeatures?16:50
blackburnyeah just cast to dotfeatures16:50
pluskidblackburn: I need to access X(i,j)16:52
pluskidto compute the histogram16:52
pluskidmaybe DotFeatures is too generic?16:52
pluskidI don't find suitable interfaces to do this16:52
blackburnpluskid: why do you need X(i,j) but not X(:,j)?16:52
blackburnfloat64_t* hist = SG_CALLOC(float64_t, f->get_dim_feature_space());16:53
pluskidblackburn: X(:, j) is also OK, but only part of the data points are counted16:53
blackburnfor (int32_t i=0; i<f->get_num_vectors(); i++)16:53
blackburn   f->add_to_dense_vec(i,hist,f->get_dim_feature_space());16:54
blackburnwhy wouldn't it work?16:54
pluskidblackburn: I don't get your idea16:55
blackburnpluskid: oh sh sorry16:56
blackburnit is not a histogram16:56
blackburnthen densefeatures would work if you need X(i,j)16:56
pluskidblackburn: ah, that's cool!16:57
pluskidthank you!16:57
pluskidbtw: cool cat!!!16:57
blackburnbad I have no cat :(16:58
blackburnokay time to head to home16:59
pluskidbut you have a bear16:59
blackburnyeah right every russian has bear16:59
pluskidis this a classical story/joke? :D16:59
-!- wiking_ [] has joined #shogun16:59
-!- wiking_ [] has quit [Changing host]16:59
-!- wiking_ [~wiking@huwico/staff/wiking] has joined #shogun16:59
blackburnthese are the only russian things probably16:59
blackburnvodka balalayka17:00
pluskidnonsense to me17:00
blackburnvodka should make sense17:00
blackburnvodka always makes sense17:01
gsomixvodka \(^__^)/17:01
pluskida kind of wine?17:01
pluskidAh, I see17:01
-!- eric_ [2e1fd566@gateway/web/freenode/ip.] has joined #shogun17:01
blackburnpluskid: yes but 40% of alcohol17:01
blackburnrather kind of sake :)17:01
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 265 seconds]17:03
-!- wiking_ is now known as wiking17:03
eric_wiking: I didn't had much time to debug MC Xval but I ran the method using CMulticlassLibLinear as in your cpp example (evthg seems good in this way) and I compare the relusts with CGMNPSVM which give better MC perf when splitting the dataset manually, and give weird results when running Xval17:04
eric_all: any intuition why the MC Xval bug with some type of classifiers ,17:05
pluskidpainful... should I support only float64_t Features?17:07
blackburnpluskid: where?17:08
pluskida new ECOC encoder17:08
pluskiddata-dependent encoder17:08
pluskidOK, require CDenseFeatures<float64_t> is reasonable17:09
blackburnhmm how does it work?17:09
pluskidCLinearRidgeRegression also requires this17:09
blackburnyes that would be ok17:09
blackburneasy to refactor anyway17:09
pluskidit compute some stats on the data to create a tree-style ECOC17:09
blackburnoh I see17:10
blackburnthen yes just tight it to float64_t17:10
blackburnok be back later17:13
-!- blackburn [5bdfb203@gateway/web/freenode/ip.] has quit [Quit: Page closed]17:13
-!- pluskid [] has quit [Quit: Leaving]17:19
-!- nickon [] has joined #shogun17:27
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection]17:43
-!- wiking [] has joined #shogun17:43
-!- wiking [] has quit [Changing host]17:43
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun17:43
-!- cronor [] has quit [Read error: Operation timed out]17:54
eric_wiking: while CMulticlassLibLinear give correct/expected  Xval mean value, CMulticlassLibSVM or CGMNPSVM give false results17:55
wikingeric_: i guess u ran a crossval with the same setup with libsvm or something?17:56
wikingor how do u know that it's false for certain17:57
eric_Same kernel config for kernel machine and I tested with different manual split of dataset and got far better accuracy17:59
eric_wiking: but your Xval code seems good to me .. I don't get this : /18:00
wikingehehhe it's not my xval code just the example18:00
eric_the example I "copy" I meant18:00
eric_did you try another kernel machine with the example and libsvm dataset ?18:01
-!- blackburn [~qdrgsm@] has joined #shogun18:06
eric_wiking: will check with another base tonight and keep you inform =()18:11
eric_bye all18:11
-!- eric_ [2e1fd566@gateway/web/freenode/ip.] has quit [Quit: Page closed]18:11
-!- wiking_ [] has joined #shogun18:15
-!- wiking_ [] has quit [Changing host]18:15
-!- wiking_ [~wiking@huwico/staff/wiking] has joined #shogun18:15
-!- wiking [~wiking@huwico/staff/wiking] has quit [Read error: Operation timed out]18:16
-!- wiking_ is now known as wiking18:16
-!- gsomix [~gsomix@] has quit [Quit: Ex-Chat]18:17
-!- cronor [] has joined #shogun18:35
@sonney2kblackburn, please fix the warnings
wikingsonney2k: this removes one of your warnings
CIA-113shogun: Soeren Sonnenburg master * rc019459 / src/shogun/machine/KernelMachine.cpp : initialize indices with NULL - this should fix the null ptr exception -
@sonney2kwiking thx19:32
@sonney2kI think kernel machines will work now too19:32
@sonney2keven mc :)19:32
wikingsonney2k: we have some strange problem with xval and kernel mc19:33
wikingthe results are very weak19:34
wikingi.e. there's a huge difference between a simple manual splitting and any amount of xval runs :)19:34
CIA-113shogun: Viktor Gal master * rb4815de / (2 files):19:38
CIA-113shogun: HKM: fix warning and pass vector by reference19:38
CIA-113shogun:  -
CIA-113shogun: Soeren Sonnenburg master * r904ebab / (2 files):19:38
CIA-113shogun: Merge pull request #519 from vigsterkr/master19:38
CIA-113shogun:  -
blackburnsonney2k: can we make -fopenmp unconditional?19:46
CIA-113shogun: Sergey Lisitsyn master * r1b58787 / (3 files in 3 dirs): Removed a few SLEP warnings -
@sonney2kblackburn, not yet - I mean if we cannot get rid of pthreads why have another dependency?19:49
blackburnsonney2k: gcc supports it natively19:49
@sonney2kyes but whey 2 different systems?19:51
@sonney2kI mean if we can I would rather convert to openmp completely19:51
blackburnsonney2k: I expect pthreads only in dim reduction19:52
blackburnyes we actually can19:52
blackburnsonney2k: why expect?19:52
blackburnbecause quite a lot of work still to do and openmp conversion..19:52
blackburnthis can never be finished19:53
blackburnah btw19:53
blackburnI have a suggestion about locks19:53
@sonney2kbut you always work like this :D19:53
@sonney2ktotal chaos19:53
blackburndo you work in some other way?19:53
@sonney2kor maybe a hidden masterplan19:53
@sonney2kyes I have a masterplan - isnt that obvious :D19:53
blackburnchaos is cool - universe was born by it19:54
@sonney2kshogun too19:54
blackburnbut I can say I didn't miss a task yet19:54
blackburnI get back to it at some point19:55
blackburnsonney2k: I'm actually currently doing multiclass DA liblinear, SLEP tree lasso and fixing bugs19:55
blackburnah and openmp :D19:56
blackburnI mean you shouldn't worry it looks like a chaos19:57
@sonney2kwiking, btw how is your gsoc task developing?19:57
blackburnit seems things go by ok19:57
@sonney2kwiking, do you have a concept / did you already start?19:57
wikingsonney2k: both19:57
wikingi've started and i have concept19:58
wikingthe CCCP with OCAS19:58
wikingwith -1/1 labeling19:58
blackburnI will never stop laugh at CCCP19:58
wikingblackburn: hehehe19:58
@sonney2kblackburn, have you seen - libshogun examples pass make check-examples now19:59
@sonney2kstill some valgrind errros though19:59
blackburnreally? I just came back from jog - haven't seen anything yet20:00
wikingsonney2k: so i've used the concept of joachim's (svmlight) students paper and implementation adapted it to shogun without the structural part and using ocas20:00
blackburnsvr fails?20:00
blackburnprunevarsubean? wtf/20:00
blackburnsonney2k: check url you pasted20:01
@sonney2kstatic interfaces are broken it seems20:01
blackburnstatic fails hardly20:01
blackburnokkk another task20:01
blackburnI'll try to get it unb0rken :D20:01
@sonney2kyeah but the good thing is that libshogun examples work now20:02
blackburnsonney2k: I admit I do not hate static now20:02
blackburnas it was before20:02
-!- n4nd0 [] has joined #shogun20:03
@sonney2kblackburn, ???20:03
@sonney2kwhy not20:03
blackburnsonney2k: why not hate?20:03
blackburnno idea20:03
@sonney2kwell I wish we had a cool cmdline / script interface20:04
@sonney2ksometimes it sucks to be dependent on other scripting langs20:04
blackburnno I do not think we need it20:04
@sonney2kbut why do you not hate it then?20:04
blackburnsonney2k: it is ok :D20:04
@sonney2kit is sooo much work and probably no one using it20:04
blackburnsonney2k: yeah *your* work20:05
blackburnsonney2k: how can you use your cmdline interface?20:06
blackburnsonney2k: I mean in python you always can visualize/modify/etc20:06
@sonney2kon clusters - nice way to distribute jobs...20:06
blackburnI see no domain-specific language of machine learning20:06
blackburnon clusters hmm20:06
blackburnI've been thinking about it20:07
@sonney2kor as background process similar to libsvm20:07
blackburnit should look like some worker class20:07
blackburnbut it is really painful20:07
blackburnI think we should rather separate distributed shogun at some point20:08
blackburnwe can use existent code for that20:08
wikingsonney2k: why?20:10
@sonney2kblackburn, let me do some quick fixes to ui20:17
blackburnsonney2k: pozhaluysta ;)20:18
-!- cronor_ [] has joined #shogun20:19
-!- cronor [] has quit [Read error: Connection reset by peer]20:19
-!- cronor_ is now known as cronor20:19
-!- n4nd0 [] has quit [Ping timeout: 252 seconds]20:21
blackburnsonney2k: did you try clang_completE?20:29
-!- n4nd0 [] has joined #shogun20:31
@sonney2kblackburn, please send me all the links to these things20:36
@sonney2kI will try them out...20:36
blackburnsonney2k: a sec20:36
* wiking feels ignored 20:37
wikingn4nd0: here?20:38
blackburn (pathogen system, just put to .vim and add 'call pathogen#infect()' to vim config)20:39
blackburn (clang complete - just put to .vim/bundle)20:40
blackburn (powerline - cool status bar, to make it work in my system requires some custom patched font in your terminal)20:40
blackburn (git binding, commands like :Gstatus, :Gcommit)20:41
@sonney2kwiking, whats up20:47
CIA-113shogun: Soeren Sonnenburg master * rcb41b3b / (4 files in 3 dirs): fix various crashers in static interface -
wikingsonney2k: you've asked  :)20:47
@sonney2kblackburn, what does pathogen do?20:47
@sonney2kblackburn, so many!20:47
blackburnsonney2k: package system - makes you able to put plugins as is to bundle dir20:48
blackburnnot to merge directories but bundle/clang_complete for example20:48
blackburnhowever you still able to merge anything20:48
blackburnfor example it wouldn't work for A20:49
blackburnsonney2k: I hope you use A?20:49
blackburnsonney2k: if you want to install  powerline  it needs some patching20:50
wikingsonney2k: and i was wondering that what has been the outcome of the conversation with vojtech about libqp?20:50
blackburnI had to add export TERM="xterm-256color" to my .bashrc20:51
wikingblackburn: buuuuuuuu for bash120:51
wikingblackburn: why don't u use zsh?20:51
wikingblackburn: ok this is why:
wikingstart from here20:51
wikingand you'll like it for sure20:51
wikingfirst of course install zsh20:52
blackburnwiking: any killer feature?20:52
wikingblackburn: many :)20:52
wikingblackburn: i like the git support20:52
blackburnwhat's with git support?20:52
wikingblackburn: ok let me dig out for u a screenshot20:52
wikingblackburn: but the autocompletion with tab is really great as well...20:53
wikingblackburn: same with ssh hosts20:53
blackburnwiking: I have autocomplete there in bash20:53
wikingblackburn: and the autocomplete of various shell commands as well20:54
wikingcouldn't find better one now20:54
wikingbut i might make u a screenshot of mine20:54
blackburnwtf is going on20:54
wikingblackburn: ?20:55
blackburnI do not understand what is going on20:55
blackburnsjl at ecgtheow in ~/lib/oh-my-zsh20:55
blackburnmeaow meaow ~~~ !!@! ~~~ :::: ?20:55
@sonney2kblackburn, I installed the clang thing but how can I now complete what I typed?20:56
@sonney2kdo you perhaps have a config?20:56
blackburnsonney2k: just try to write this->20:56
blackburnin any source file20:57
@sonney2kwiking, re vojtech - it is in the chat logs. basically all yes but no time now so later once so bmrm is done20:57
@sonney2khe will do it or uricamic20:57
@sonney2kand yes he liked the idea of getting pr loqo, tron, ... into libqp20:57
@sonney2kthe c++ interface is sth we have to think about though20:57
@sonney2kthe only guarantee we have is his support / standard interface20:58
blackburnsonney2k: my .vimrc
blackburnlet g:clang_close_preview = 120:58
blackburnlet g:clang_complete_auto=120:58
blackburnthese ones are related to clang20:58
@sonney2kthen I get User defined completion ^U^N^P Pattern not found20:58
wikingsonney2k: vim .clang_complete20:58
wikingand depending where u are at the shogun dir20:59
wikingyou need to add -I20:59
wikingif u know what i mean :)20:59
wikingand then you'll be good to go20:59
wikingotherwise it cannot find the headers in your include path20:59
blackburnI did not do anythin - wiking what do you mean by -I?20:59
wikingblackburn: i guess you have shogun installed in a standard path?20:59
wikingblackburn: there u go21:00
wikingthat's why u don't need -I21:00
wikingblackburn: do u understand the screenshot?21:00
blackburnwiking: yes21:00
wikingit's 2 in 1 actually: shows u how your prompt can be tweaked21:00
wikingand a little peak about the autocompletion feature21:00
blackburnok I'll try it later21:01
blackburnI have to update my distrib in next days21:01
wikingand the other good thing is that autocompletion is case insensitive21:01
n4nd0wiking: tell me21:01
wikingand if for example you tab 'ogu'21:01
wikingand you have shogun at pwd21:02
wikingthen it'll complete it to be shogun21:02
wikingand of course other directories/files that contains 'ogu' char*21:02
wikingn4nd0: over with your exams?21:02
blackburnhuh cool21:02
n4nd0wiking: yeah21:02
wikingn4nd0: have time to talk now21:02
n4nd0wiking: yes21:03
wikingespecially about where to put the PSI21:03
wikingand how in SO21:03
blackburnoh headache discussions21:03
blackburnIm off :D21:03
wikingblackburn: <ignore>21:03
n4nd0wiking: I don't know if you have seen something in the logs before21:03
n4nd0there is a small UML diagram21:03
wikingn4nd0: yep i've checked that unreadable log21:03
wikingon gist21:04
n4nd0ok I will paste the diagram again21:04
@sonney2kfor you :D21:04
blackburnI've been waiting for this moment whole my life ;021:04
n4nd0wiking: so that function will go into CStructuredModel21:04
wikingn4nd0: compute_joint_feature_map?21:05
wikingi mean compute_joint_feature ()21:05
n4nd0wiking: there are still pieces to think about there though21:05
wikingok so here's my question21:05
wikingi come with an SO21:06
wikingand i want to define my own PSI21:06
wikingdo i inherit from CstructuredModel?21:06
@sonney2kblackburn, you are the one on the very left right?21:06
wikingn4nd0: why21:06
n4nd0wiking: why not?21:06
blackburnsonney2k: no next to the very right21:06
n4nd0wiking: one has to define application specific things in any case21:06
wikingn4nd0: so PSI is essentially (x,y) -> R^n21:07
n4nd0wiking: is it an issue to do that inheriting from it?21:07
@sonney2kblackburn, and I found you as a kid
n4nd0wiking: yes21:07
wikingn4nd0: well why don't just use callback method?21:07
n4nd0wiking: but we have to see how to adapt it for your latent thing21:07
wikingi mean why do you want to inherit a whole class21:07
blackburnsonney2k: guilty :(21:08
wikingso why don't u just make it as a function pointer that has to be passed21:08
n4nd0wiking: explain me how this callback work21:08
wikingn4nd0: function pointer21:08
wikingsomething like (Feature*) (compute_psi*) (feature x, feature y);21:08
n4nd0wiking: I see that21:08
wikingyou implement that function21:08
wikingand pass the pointer to it21:08
wikingsame with argmax21:09
n4nd0wiking: but where do we define that function?21:09
wikingn4nd0: in the header21:09
blackburnsonney2k: these warnings are impossible :D21:09
n4nd0wiking: how does CSOMachine access it?21:09
wikingi mean the prototype21:09
wikingn4nd0: well how does it access now ? :))21:09
wikingit's a public method21:09
n4nd0wiking: CStructuredModel is a member of it21:09
wikingor protected?21:10
wikingno worries if it's a member of it21:10
wikingyou'll have the reference for it21:10
wikingand that's it21:10
wikingi mean that function is user defined21:10
n4nd0wiking: yes21:10
wikingso it will be implemented21:10
wikingand then you just pass a pointer to that function21:10
n4nd0wiking: where do you pass it?21:10
wikingand 'save' it in Smodel21:10
wikingwho constructs Smodel?21:11
n4nd0wiking: when a StructuredModel is created?21:11
wikingn4nd0: essentially yes21:11
wikingcheck this21:11
wikingfuck where is it21:12
n4nd0wiking: and before I didn't mean the log in gist but the one this afternoon ;)21:12
wikingn4nd0: ah ok haven't seen that one21:12
wikingonly the gist one21:12
@sonney2kblackburn, ok then we just have to wait21:12
@sonney2kbuildbot is overloaded21:12
n4nd0wiking: but it's ok, I don't think you need to check it21:12
blackburnyeah these warnring already disappeared in libshogun compile21:12
wikingand then L3021:13
wikingso basically you need to implement that function21:13
wikingand you call the ctor with that function pointer21:13
wikingand that's it21:13
shogun-buildbotbuild #804 of python_static is complete: Success [build successful]  Build details are at
n4nd0wiking: your solution looks much better actually21:13
wikingthe thing is for me.... i have to be able to call this after each iteration21:14
wikingbecause i have PSI(x,y,h)21:14
-!- gsomix [~gsomix@] has joined #shogun21:14
wikingand h is changing in each iteration21:14
wikingthus i need to recalculate PSI21:14
wikingfor all the feature vectors21:14
n4nd0wiking: ok I will definetely go with pointer functions as you have suggested21:15
wikingand now that we are at it21:15
wikingsince more or less we are going to share SModel21:15
gsomixsonney2k, moin. It's all ok, I'm working. I need approximately one evening for changes in code.21:15
wikingi'm not 100% if we should call it like that21:15
wikingthat it needs to be implemented now21:15
n4nd0wiking: but even with pointer functions, I see an issue21:15
wikingor i inherit from it21:16
n4nd0wiking: the psi you need for latent has different parameters than the normal one21:16
wikinganyways i'll need to inherit from it... since i have an extra parameter for PSI21:16
wikingn4nd0: depends21:16
wikingn4nd0: i mean if i want latent SO svm21:16
wikingthen i have PSI(x,y,h)21:16
wikingbut if i do latent svm21:16
wikingthen it's PSI(x,h)21:16
n4nd0wiking: do you think it is a good solution to make psi(x,y,h)21:17
wikingn4nd0: well i would like to have it21:17
n4nd0wiking: and if it is going to be used for non-laten, h is not used21:17
wikingn4nd0: mono i mean psi(x,y,h) is just latent for sure21:17
wikingi.e. latent structural svm21:17
n4nd0yeah, I see that21:17
n4nd0but now21:18
wikingbut for example since i first do simple latent svm21:18
wikingsince we don't support yet SO21:18
wikingthen essentially i would use the same PSI function as you21:18
wikingthe meaning of it would be different of course21:18
n4nd0is it possible to have a StructuredModel that works for both (latent and not latent structural)?21:18
@sonney2kgsomix, good to hear21:18
wikingsince for me it's PSI(x,h) and for you it's PSI(x,y) but the function/class should not care about this21:19
wikingn4nd0: not for both21:19
blackburnI lost code because of git checkout21:19
@sonney2khey yeah21:19
@sonney2kshogun-buildbot, love and kisses!21:19
shogun-buildbotWhat you say!21:19
blackburncan I about checkout?21:19
n4nd0wiking: then you will need your own CStructuredModel?21:19
wikingn4nd0: i will need to derive a class that which can handle 3 parameters x,y,h21:20
wikingn4nd0: but that's only when you are ready with SO21:20
wikingSO svm that is21:20
wikingso for now21:20
wikingSModel as is would be fine for me21:20
wikingnot realy21:20
wikingso i mean i would need to ad modifications to id21:21
wikingto it21:21
wikingbut for example i could use it as a base class21:21
wikingso that's why i think that we should think about sharing this class21:21
wikingso that we don't do too much of a code duplication here21:21
wikingbecause either now or on the end of GSoC we'll need to merge this21:22
wikingi mean it would be nice to be able to merge it21:22
n4nd0better to do it from the very beginning21:22
n4nd0to think of it21:22
wikingsince as i said i want to have support for latent s-svm21:22
blackburnyay it is not lost!21:22
n4nd0blackburn: nice21:22
n4nd0wiking: ok, so let me prepare some code for the part I have shown you in the diagram21:23
wikingn4nd0: ok but then again as i said21:23
n4nd0wiking: and later we discuss again to ensure that everything fits21:23
wikingwe should think about the naming :)21:23
n4nd0wiking: sure21:23
wikingthink about the function pointer in the case of PSI and argmax as well21:23
n4nd0wiking: what part of the naming do you refer to?21:23
wikingthat it's actually StructuralModel21:23
wikingor StructuredModel21:23
wikingbecause for me that is LatentModel21:24
wikingso to say21:24
n4nd0wiking: it makes no difference for me21:24
wikingn4nd0: yeah of course not21:24
n4nd0I mean, I don't know the difference between both21:24
n4nd0wiking: what is the difference?21:24
wikingn4nd0: well that's in the box it'll be essentially the same21:24
wikingbut it has different semantical meaning :)21:24
n4nd0what is structured and structural?21:24
wikingbut the functions inside21:24
n4nd0I have used both as synonyms this far21:25
wikingah no i was meaning here structured vs latent21:25
wikingso you named CStruturedModel21:25
n4nd0oh ok, I misunderstood21:25
wikingbut since i'd almost use the same class for myself21:25
wikingthen we should be able to name it in a more general way21:25
wikingbut anyhow21:26
wikingwe'll rename it later21:26
wikingjust do the code part21:26
wikingand when u have that part ready21:26
wikingi'll try to cherry-pick from your git21:26
n4nd0I have already started that part today21:26
wikingand then somehow merge ithat part into mine21:26
wikingn4nd0: cool21:26
n4nd0so for tomorrow I will probably have that part I showed you in the diagram21:26
wikingn4nd0: do you have a branch for that dev?21:26
wikingthat i could follow or something21:26
n4nd0wiking: not committed yet since it is in non-compilable state21:26
wikingyeye but if it's going to be commited21:27
wikingi mean when it's going to be commited21:27
wikingyou'll have a working branch for that or something21:27
n4nd0it's called so21:27
n4nd0"so" (to avoid misunderstandings) :P21:27
wikingmmm github is slow21:28
wikingn4nd0: that branch is not yet published right? since i just see structure21:28
n4nd0wiking: no no21:28
n4nd0wiking: nothing committed yet21:29
wikingi'll follow u on github21:29
wikingand then i'll get a notification21:29
n4nd0doesn't compile because I have not defined yet CStructuredLabels and the like21:29
wikingyeye sure21:29
shogun-buildbotbuild #838 of cmdline_static is complete: Success [build successful]  Build details are at
wikingthnx a lot21:29
wikingand lets see then in the upcoming days21:29
n4nd0that cannot be for real21:41
blackburnand in the end he is like21:41
CIA-113shogun: Soeren Sonnenburg master * r3ac30d8 / (3 files in 3 dirs): remove free_{vector,matrix} from typemaps -
CIA-113shogun: Soeren Sonnenburg master * r39b064e / src/shogun/classifier/svm/SVMLight.cpp : fix crasher in mkl / svmlight -
blackburnregression fails here in libshogun21:53
shogun-buildbotbuild #819 of r_static is complete: Success [build successful]  Build details are at
gsomixgood night guys22:29
blackburnsonney2k: so did you make it work?22:29
n4nd0see you tomorrow guys22:41
-!- n4nd0 [] has quit [Quit: leaving]22:41
blackburnsee ya22:41
-!- gsomix is now known as gsomix|z-z-z22:46
-!- karlnapf [] has joined #shogun22:49
-!- nickon [] has quit [Quit: ( :: NoNameScript 4.22 :: )]23:01
-!- karlnapf [] has left #shogun []23:26
-!- cronor_ [] has joined #shogun23:39
-!- cronor [] has quit [Ping timeout: 260 seconds]23:41
-!- cronor_ is now known as cronor23:41
blackburnsonney2k: with proper schedule and other options it is as fast as pthreads23:49
--- Log closed Fri May 11 00:00:40 2012