Open in new window / Try shogun cloud
--- Log opened Wed May 02 00:00:37 2012
CIA-64shogun: Sergey Lisitsyn master * r2c8ae73 / (4 files in 2 dirs): Proper retraining of multiclass -
CIA-64shogun: Sergey Lisitsyn master * r800be9b / (src/shogun/regression/LARS.cpp src/shogun/regression/LARS.h):00:50
CIA-64shogun: Revert "Removed unnecessary methods from LARS"00:50
CIA-64shogun: This reverts commit ca57115f7cad3b447fe4125299039ef17291ffb2. -
-!- Netsplit *.net <-> *.split quits: @sonney2k, wiking, naywhayare00:56
-!- blackburn [~qdrgsm@] has quit [Ping timeout: 260 seconds]00:58
-!- gsomix [~gsomix@] has quit [Quit: Ex-Chat]00:59
-!- Netsplit over, joins: wiking, naywhayare01:00
-!- sonney2k [] has joined #shogun01:02
-!- ServerMode/#shogun [+o sonney2k] by hitchcock.freenode.net01:02
-!- CIA-113 [] has joined #shogun01:48
-!- CIA-64 [] has quit [Ping timeout: 272 seconds]01:50
-!- av3ngr [av3ngr@nat/redhat/x-ygbjirmhcsmqgnqq] has joined #shogun02:40
-!- vikram360 [~vikram360@] has joined #shogun04:41
-!- vikram360 [~vikram360@] has quit [Ping timeout: 272 seconds]06:48
-!- vikram360 [~vikram360@] has joined #shogun06:53
-!- vikram360 [~vikram360@] has quit [Ping timeout: 246 seconds]06:58
-!- vikram360 [~vikram360@] has joined #shogun06:59
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking]07:53
-!- wiking [] has joined #shogun07:56
-!- wiking [] has quit [Changing host]07:56
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun07:56
-!- sonne|work [~sonnenbu@] has joined #shogun08:18
-!- av3ngr [av3ngr@nat/redhat/x-ygbjirmhcsmqgnqq] has quit [Quit: That's all folks!]09:19
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking]09:42
-!- av3ngr [~av3ngr@] has joined #shogun09:51
-!- av3ngr [~av3ngr@] has quit [Read error: Connection reset by peer]10:40
-!- pluskid [~pluskid@] has joined #shogun11:05
sonne|workhey pluskid!11:05
sonne|workthanks for your comments about sgvector11:05
pluskidsonne|work: so is the new sgvector available now?11:06
sonne|workwe will do the interface variant first and then later do the rename SGIVector / SGVector if we have some good usecases11:06
sonne|workpluskid: no not yet11:06
sonne|workbut soon11:06
pluskidhope to see the new classes, because it is really used everywhere :D11:07
sonne|workpluskid: the other big transition I think we should do rather soon is the CLabel split up11:07
sonne|workpluskid: it will break things...11:07
sonne|work(sgvector I mean)11:07
pluskidyes, we got some discussions, but stops then11:07
sonne|workwe will probably spend a week or so fixing leaks / etc11:08
pluskidsonne|work: so we hope it breaks ASAP, so we can fix those soon :)11:08
sonne|worksuch that when gsoc starts we are back to stable again11:08
sonne|workpluskid: so regarding labels I think an easy start is to derive multiclass and RealLabels and Binary Labels from current labels11:09
pluskidyes, the memory usage will be very difficult to track because it is rather unpredictable of where the memory is allocated/freed in the previous SGVector11:09
sonne|workyes :(11:09
sonne|workI have some ideas but sometimes it is DKJ$%H$OH%!!11:09
sonne|workpluskid: would you want to do the CLabels change?11:09
sonne|worknot sure if I am asking to much here...11:09
pluskidsonne|work: sure11:10
sonne|workbut all these hacks with checking if label is 2 class11:10
pluskidsonne|work: did you know the draft design we discussed about the other day?11:10
sonne|workbinary or so suck11:10
sonne|workhence the RealLabels name :)11:10
sonne|workpluskid: what I think is that the current clabels class will work as-is for binary, mc, and regression11:10
sonne|workso maybe all that is needed are some overloaded methods that check whether the set label vector is valid11:11
pluskidyou mean something like is_valid_twoclass ?11:11
sonne|workI don't (currently) think we need some extra IntLabels - internally things could still be doubles11:12
sonne|workbut using a more generic name11:12
sonne|worklike is_valid()11:12
sonne|workand that check should be done when label vector is set / created11:12
sonne|workso constructor and set function only11:12
pluskidyou mean, for example, in MulticlassMachine, is_valid ensures the labels are at least 3 classes?11:13
sonne|workmulticlassmachine uses CMulticlassLabels11:13
pluskidoh, I see, you mean we still store and set/get as float11:13
sonne|workand is_valid would only check if the set labels are integers >= 011:13
pluskidI sse11:14
sonne|workmc labels would need extra functions like get_num_classes etc11:14
pluskidbut maybe someone needs to extend more, like in SO learning?11:14
pluskidthen a float might not be enough?11:15
sonne|workbut it is totally unclear how that would look like11:15
sonne|worki.e., which shared functions exist at all?11:15
pluskidactually, I'm wondering do they have to have a shared baseclass?11:16
sonne|workyeah only for the look of it I guess :)11:16
sonne|workmaybe is_valid would still make sense11:16
sonne|workand maybe even some way to check if a predicted label == true label11:17
sonne|workso some way to compare a label11:17
pluskidthat is important for SO11:17
pluskidand some way to compute distance11:17
pluskidof labels11:17
sonne|workthough there are tons of ways11:17
sonne|workand they can be arbitrarily complex11:17
pluskidthe problem is, if the CLabels do not have a shared base class11:18
sonne|workpluskid: I would say we start with CLabels -> MC,RealLabels,Binary11:18
pluskidwe might want to move methods like apply() set_labels() in CMachine to proper subclasses like CMulticlassMachine, CSOMachine, etc.11:19
sonne|workand if we realize we can share things we could do CLabels -> SOLabels, (RealLabels -> MC, Binary)11:19
pluskidmaybe have to create a CBinaryMachine and CRegressionMachine11:19
sonne|workmakes sense - I am worried that this will explode our class hierachy though11:20
sonne|workit is certainly more clean...11:20
pluskidyeah, CMachine becomes more abstract11:20
pluskidin this way, we no longer have to worry about a common base class of different kind of labels11:21
pluskidCMulticlassMachine will use CMulticlassLabels11:21
pluskidCBinaryClassMachine will use CBinaryLabels11:21
sonne|workwe had the same problem with CMachine (in apply) using CFeatures11:22
sonne|workbut there we just just CFeatures and check at runtime that things match11:22
pluskidhmm, but Features are much more complicated than labels I think?11:22
sonne|workpluskid: what i mean is that machines usually work with one type of features11:22
sonne|worksome machines (kernel machines) can work with arbitrary types11:23
pluskidsonne|work: hmm, I see11:23
pluskidsonne|work: but particular kind of machine *only* work with particular kind of labels11:23
sonne|workpluskid: anyway I think the discussion about split up of machine by label can be postponed11:23
sonne|workyeah maybe11:24
pluskidI'll write an email to the mailing list11:24
sonne|workbut think of some machine11:24
sonne|workfor which you can set the loss function11:24
sonne|workthat one will work also for different labels11:24
sonne|workactually the new liblinear would be an example11:24
sonne|workone can do regression or binary or mc classification with it11:25
sonne|workof course one can split things up and make them explicit11:25
sonne|workand we did mostly so far11:25
pluskidbut we have 3 wrappers for liblinear for regression, mc or binary, don't we?11:25
pluskidyou mean in the future we might wrap LibLinear as a generic CMachine?11:26
sonne|work2 yes11:26
sonne|workI like the split11:26
sonne|workit makes things more explicit11:26
sonne|workbut in future we might have some machine that you just give a CLoss object11:27
pluskidhmm, thanks, I'll try to summarize and write an email to the list to ask other people's opinion11:27
sonne|workand then it can do anything11:27
-!- blackburn [5bdfb203@gateway/web/freenode/ip.] has joined #shogun11:27
sonne|workso I am not in favor of splitting Machines by label11:27
blackburnoh some discussion there11:27
blackburnenlighten me ;)11:27
sonne|workbut clabels only11:27
pluskidsonne|work: it's currently OK with reg, binary and mc11:28
sonne|workblackburn: I asked pluskid if he could do the other big transition (clabel splitup)11:28
pluskidbut if we like to add SO11:28
blackburnsonne|work: btw we need to help n4ndo with it11:28
blackburnhe is a little stucked with that design decision11:28
blackburnhow can SO labels look like?11:28
pluskidcurrently, we have get_label(int), and get_int_label(int), if we have SO, we might need get_AAA_label(int), get_BBB_label(int) something like those in CLabels11:29
sonne|workpluskid: then we add them in there - what is the problem?11:29
blackburnI am ok to add some method there11:29
sonne|workpluskid: we have to cast labels11:29
blackburnyeah no way w/o casting probably11:29
pluskidblackburn: what it return? a CSGObject ?11:30
blackburnpluskid: yes, or some StructuredOutput base class11:30
sonne|workcan be anything11:30
pluskidsonne|work: ok, I see11:30
pluskidso dynamic_cast again11:30
pluskidlike with features11:30
sonne|work(so vector/matrix could suffice ...)11:30
sonne|workpluskid: well with CFeatures we explicitly check for type11:31
pluskidthen why would we bother splitting?11:31
sonne|workand then cast11:31
blackburnpluskid: I had one concern about lars11:31
sonne|workpluskid: well there might be some shared functions still11:31
pluskidsonne|work: dynamic_cast will return NULL if it is not the subclass type you want11:31
blackburnlet us discuss it after that issue11:31
sonne|worklike is_valid11:31
blackburnget_number of labels is shared at leasy11:31
pluskidbecomes more clear now11:32
sonne|workpluskid: I know but one cannot check which type an object has in C++ in a compiler independent way11:32
pluskidsonne|work: hmm, that's true11:32
sonne|workso it is better to put an enum in there11:32
pluskidleave for supper11:33
pluskidbe back in a while11:33
blackburnsonne|work: I have one idea about backcompatibility11:33
blackburnLabels should be a factory11:33
blackburnLabels([1,2,3]) => MulticlassLabels11:33
blackburnLabels([graph1,graph2]) => SO labels11:33
sonne|workintelligence in labels :D11:34
blackburnno, hardcode rather11:34
blackburnbut compatibility would be here11:34
blackburncode compatibility11:34
blackburnas for serialization..11:34
blackburnI'd rather let users convert their object by theyselves..11:35
blackburnit becomes too difficult to handle11:35
sonne|workyeah true serialization will be b0rked11:38
pluskidbut we cannot produce object of another class from a constructor11:52
pluskidbtw, in the data/toy directory11:54
pluskidfm_train_real.dat label_train_multiclass.dat are data and label for training11:54
pluskidfm_test_real.dat is data for testing11:55
pluskidbut do we have labels for testing?11:55
-!- karlnapf [] has joined #shogun11:55
blackburnpluskid: no, I don't mean C++ class for that11:55
blackburnprobably python function Labels() would work too11:56
blackburnI know how to do that at least in java and python11:56
pluskidin Java you can new CLabel() and get a CMulticlassLabel ?11:57
blackburnpluskid: about LARS - don't you think it should be LeastAnglesRegression?11:57
pluskidblackburn: you mean the name?11:57
pluskidI'm OK with both11:57
blackburnpluskid: yeah11:57
blackburnI think we should prefer *Regression naming11:57
blackburnI do work on some regression right now11:57
blackburnFeatureTreeLeastSquaresRegression namely11:58
pluskidhaha, our class names are becoming longer :)11:58
blackburnpluskid: I have spent a lot of time but no idea how to do that shorter..11:58
blackburnhowever in my multitask part this naming could be convenient11:59
blackburnnext class to implement is TaskTreeLeastSquaresRegression11:59
blackburnpluskid: so I have one ask - could you please rename it and provide constructor taking (CFeatures*,CLabels*)12:00
-!- wiking [] has joined #shogun12:00
-!- wiking [] has quit [Changing host]12:00
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun12:00
pluskidblackburn: don't worry, at least our names are shorter than org.aspectj.weaver.patterns.HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor12:00
blackburnpluskid: lol12:00
pluskidblackburn: LARS?12:00
blackburnpluskid: yeap12:01
blackburnpluskid: and also please remove save/load12:01
pluskidthat's cool12:01
pluskidI hate them :D12:01
blackburnand get_w that does store to given pointer12:01
blackburnonly SGVector should stay12:01
blackburnoh I hate shindows :E12:02
blackburn2 minutes to force reboot12:02
pluskidblackburn: wait a minute, I forgot about the code12:02
blackburnit says it will reboot automatically in 1.2312:02
blackburnand restart later is inactive12:02
pluskidyou mean what get_w?12:03
blackburnpluskid: float64_t*&12:03
pluskidok, see you later12:03
-!- blackburn [5bdfb203@gateway/web/freenode/ip.] has quit [Ping timeout: 245 seconds]12:08
-!- blackburn [5bdfb203@gateway/web/freenode/ip.] has joined #shogun12:15
blackburnpluskid: re12:15
pluskidblackburn: where's in examples?12:16
pluskidis it removed?12:16
blackburnhmm I didn't move or remove it12:17
pluskidOh, I found it12:17
pluskidit is moved to graphical folder12:17
pluskidbtw: what do you mean by get_w?12:17
pluskidI wrote that in the way CLinearMachine implemented12:18
blackburnpluskid: why?12:18
blackburnbecause of nz parameter?12:18
blackburnline 15712:18
blackburnthis method is not needed (I know it is in linearmachine but should be removed as well)12:19
pluskidso you want to copy into the pointer, instead of simply assigning?12:20
pluskidyou mean remove it?12:20
pluskidI see12:20
blackburnpluskid: yes no need to have it because it won't work in modular12:21
pluskid<pluskid> btw, in the data/toy directory12:25
pluskid<pluskid> fm_train_real.dat label_train_multiclass.dat are data and label for training12:25
pluskid<pluskid> fm_test_real.dat is data for testing12:25
pluskid<pluskid> but do we have labels for testing?12:25
pluskidblackburn: do you know this? ^^12:25
blackburnpluskid: yes, no testing labels12:26
pluskidhmm, strange...12:26
pluskidthen no way to compute the prediction error12:26
blackburnpluskid: we rather compare results are the same12:28
pluskidblackburn: I just want to get a sense of how various ECOC scheme performs :)12:28
blackburnhmm I can give you some data if you want12:30
pluskidblackburn: is there any pre-existing in the data directory?12:30
pluskidthat submodule is quite large12:30
blackburnno, our data is rather toy12:30
blackburnthere are some applications data and testing data12:30
blackburnbut I do not give a f how to operate on genome data12:30
pluskidgive me some link to mldata or UCI is also OK12:31
pluskidI don't want big data12:31
pluskidjust some local play12:31
pluskidon my laptop12:31
pluskidto get some basic sense12:31
pluskidinstead of to publish a paper :p12:32
pluskidI wish I can run the experiment within several seconds12:32
blackburnheh you can't really compare accuracy on small dataset I think12:33
pluskidthen large data is also OK12:34
pluskidas long as my laptop can run it :)12:34
sonne|workblackburn: sure you can :)12:35
blackburnsonne|work: ECOC vs OvR? lets see..12:35
blackburnpluskid: I will compare your ecoc on my data soon12:36
blackburnwould be clear if it works correct and even if it gives any extra performance12:36
sonne|workwhy not use mnist data?12:36
sonne|work(some subset is totally enough)12:36
sonne|workpluskid: looks like we are too late for winning
sonne|workbut it also has some nice mc data with *lots* of classes12:38
blackburnpluskid: that mnist suggestion of sonne|work is pretty good, it is more 'standard'12:38
pluskidblackburn: I see, I have that data12:39
blackburnpluskid: but I'll let you know how does it work on my HOG data12:39
blackburnsonne|work: and you ;)12:39
pluskidI usually use the raw data12:40
pluskidmaybe feature extraction will produce better performance12:41
blackburnsonne|work: I still think ECOC would hardly work on small data12:43
pluskidblackburn: here comes the LARS renaming pull request12:46
pluskidsonne|work: I'll work on CLabels refactoring once I added some python_modular examples for Sparse/Dense Random ECOC12:46
pluskidwork progress would be a bit slow these days because I'm with a serious cough12:47
pluskidhope to cure it soon :)12:47
blackburnpluskid: thanks12:47
blackburnpluskid: oh get well soon12:47
blackburnyou already did great job on ecoc12:47
pluskidblackburn: maybe we already have something similar to that of scikit, but I haven't look at the data-dependent ECOC coding in ECOClib yet12:48
pluskidthat would be a big work I guess12:48
blackburnpluskid:it looks like all you would need is to provide more distances12:49
blackburnand more coders sure12:49
pluskidblackburn: distances are decoders12:50
pluskidand there are some data-dependent *en*-coders12:50
blackburnpluskid: I see12:51
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 265 seconds]12:55
sonne|workpluskid: sad to hear! get well soon13:07
pluskidsonne|work: thanks, I hope, too13:07
sonne|workblackburn: why not? if you have the right ECOC strategy or even some prior knowledge about the hierarchy things can work better with fewer data13:09
blackburnsonne|work: just some gut feeling that can be wrong for sure :)13:09
-!- wiking [] has joined #shogun13:22
-!- wiking [] has quit [Changing host]13:23
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun13:23
sonne|workthe mighty wiking...!13:25
wikingi've made it13:25
sonne|workhardcore connecting yeah13:26
blackburnsonne|work: I guess he mean his paper ;)13:27
sonne|workwiking: congrats to that one too :D13:27
wikingsonne|work: hehe yeah i was rather meaning my paper for the conf :P13:28
wikingthe only thing i have to do now is to find my supervisor so that he can sign the copyright form for the paper since his name is going to be on it, although he did not give a damn about it...13:29
wikingisn't it a bit ironic? :)13:29
blackburnyou are kind of extreme guy13:30
wikingand that's even more funny that i cannot reach him, neither phone nor email nothing :D13:32
wikingn4nd0 is still in spain?14:16
blackburnwiking: yes14:17
wikingmm has he told when is he going to be around?14:17
-!- pluskid [~pluskid@] has quit [Ping timeout: 250 seconds]14:18
-!- pluskid [~pluskid@] has joined #shogun14:18
blackburnwiking: he is going to have exam on 7th or 8th14:19
wikingah ok14:19
wikingso no n4nd0 till the 9th14:19
wikingroger that14:19
blackburnwiking: did you plan to work on something?14:19
wikingneed to talk with him14:20
wikingabout SO framework14:20
wikingwith PSI representation14:20
blackburnyeah we need to discuss design there14:21
blackburnfeel free to send email to him :)14:21
blackburnyou may also CC me and soeren14:21
wikingwell i think maybe the mailing list would be the best option, or?14:23
blackburnwiking: yes sure14:24
-!- pluskid [~pluskid@] has quit [Ping timeout: 276 seconds]14:26
-!- pluskid [] has joined #shogun14:26
sonne|workwiking: still CCing the relevant people :D14:33
wikingsonne|work: ookeey14:34
-!- eric___ [2e1fd566@gateway/web/freenode/ip.] has joined #shogun14:53
pluskidaaaaaaaaaaaaah, sick... >_<~~~14:56
sonne|workpluskid: painkiller to the rescue!14:59
sonne|work..and sleep15:00
eric___wiking: hi. comin back from holidays in the Alpes. We talked together last friday on running latent svm on action reco databases, remember ?15:06
wikingeric___: yoo yo yes15:07
wikingi hope u had fun there ;)15:07
eric___last ski weekend of the year15:07
eric___Last friday I asked questions about my problem of releasing mem with shogun like UNREF(svm) when I initialized SimpleFeature with pointer to opencv data strucure.15:09
eric___with SG_FREE(svm) the problem doesnt occurs, what the difference btw UNREF and FREE ?15:09
wikingwell unref is for the reference counter15:15
wikingfree just frees the object15:15
wikingbut afaik it should be essentially the same15:15
wikingas i hope free does consider the reference counter15:15
wikingand does not free the object if it's referenced15:16
-!- pluskid [] has quit [Quit: Leaving]15:16
sonne|workeric___: use SG_UNREF for objects derived from SGObject15:24
eric___wiking, sonne|work: thx15:28
-!- n4nd0 [02893bbe@gateway/web/freenode/ip.] has joined #shogun15:36
-!- gsomix [~gsomix@] has joined #shogun15:47
-!- n4nd0 [02893bbe@gateway/web/freenode/ip.] has quit [Ping timeout: 245 seconds]15:55
gsomixhi all15:56
sonne|workhi gsomix15:56
sonne|workhow is your computer doing?15:56
gsomixsonne|work, fine. everything is working15:57
blackburnsonne|work: could you please your blog post too? :D15:58
blackburnoh main word is missed lol15:58
sonne|workgsomix: very good15:59
blackburnsonne|work: yeah same issue15:59
sonne|workgsomix: so how about the hashset issue?15:59
sonne|workwould that be a good start for today?16:00
-!- n4nd0 [02893bbe@gateway/web/freenode/ip.] has joined #shogun16:02
gsomixsonne|work, I like it. but there is one specific detail in realization - size of table (array of lists for resolving collisions) is const.16:03
sonne|workgsomix: you could use a dynarray to grow it if that is needed...16:04
gsomixIIRC CSet is used for mallocs counting, right?16:04
sonne|workgsomix: currently yes - but when we have a faster hashset other use cases will pop up16:05
blackburnsonne|work: why not to use stl::vector?16:05
blackburnah or set16:05
gsomixsonne|work, could use a dynarray to grow it | it's not needed (in theory), because I use lists for resolving collisions. maybe I should use another type of resolving.16:07
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking]16:10
gsomixsonne|work, I should think about it a little. because I have written hashmap (hashset) for blackburn, not for common use.16:12
-!- wiking [] has joined #shogun16:18
-!- wiking [] has quit [Changing host]16:18
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun16:18
sonne|workgsomix: just use some fixed hash size (64k or so per default configurable in set constructor)16:18
sonne|workgsomix: that will work totally ok16:18
gsomixsonne|work, ok.16:19
blackburnsonne|work: gsomix: I can hardly remember why I needed it16:20
gsomixblackburn, lol :]16:21
-!- n4nd0 [02893bbe@gateway/web/freenode/ip.] has quit [Ping timeout: 245 seconds]16:25
-!- sonne|work [~sonnenbu@] has quit [Quit: Leaving.]16:35
gsomixblackburn, what about titled features? Can you merge it?16:44
blackburngsomix: yes not now16:44
blackburnshit exam tomorrow16:45
blackburnI should have prepared but I have not16:45
gsomixblackburn, which?16:45
@sonney2kblackburn, lenin stalin and all that :)17:04
blackburnsonney2k: marx17:05
CIA-113shogun: Chiyuan Zhang master * r9935912 / (7 files in 3 dirs): Rename LARS to LeastAngleRegression -
CIA-113shogun: Soeren Sonnenburg master * rd587b61 / (7 files in 3 dirs):17:05
CIA-113shogun: Merge pull request #492 from pluskid/rename-LARS17:05
CIA-113shogun: Rename LARS to LeastAngleRegression -
blackburnsonney2k:khruschev destalinized it a little so no more stalin :D17:06
@sonney2kgsomix, I dont' understand the feature title patch17:07
@sonney2kit removes hashset?17:07
@sonney2kintroduces hashmap17:07
@sonney2kbut then uses stl::map!??!17:07
@sonney2kdid I miss anything?17:07
@sonney2kblackburn, no way17:08
@sonney2kstl - why over sudden?17:08
blackburnsonney2k: I don't mind stl map there17:08
blackburndo you?17:09
@sonney2kyeah - you know...17:10
blackburnsonney2k: give me a reason :)17:10
-!- karlnapf [] has quit [Ping timeout: 276 seconds]17:11
@sonney2kwhat? the remainders of my authority won't help!?17:12
gsomixsonney2k, ah. I prepared hashmap, but wondered about the possibility of using stl::map.17:12
blackburnsonney2k: heh your authority is there still but reason?17:14
@sonney2kblackburn, how do you serialize it?17:15
@sonney2kgsomix, I would prefer your hashmap :)17:16
blackburnsonney2k: how do you serialize hashmap?17:16
@sonney2kif it uses standard data types like SG* stuff it will work17:18
blackburnsonney2k: I don't think it is much harder to serialize stl :)17:19
@sonney2kit is17:19
@sonney2khave to leave train17:19
-!- blackburn [5bdfb203@gateway/web/freenode/ip.] has quit [Quit: Page closed]17:19
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 246 seconds]17:25
gsomixsonney2k, okay master. :)17:27
gsomixsonney2k, I need to go. Dance classes.17:39
gsomixcu evening17:39
-!- wiking [] has joined #shogun17:40
-!- wiking [] has quit [Changing host]17:40
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun17:40
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 245 seconds]17:44
-!- wiking [] has joined #shogun17:48
-!- wiking [] has quit [Changing host]17:48
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun17:48
wikingwtf is with this latex template17:58
-!- n4nd0 [02893bbe@gateway/web/freenode/ip.] has joined #shogun18:29
eric___wiking: simple advice : should I work with double or float is enough precision (for svmmulticlass ..)18:53
n4nd0eric___: hey! I don't know about your particular application but most of the things in Shogun use internally float64_t (aka double)18:58
n4nd0eric___: so if you are trying to avoid some overhead using float instead of double, take that into account18:59
eric___n4nd0: allright, because my training data comes from opencv apps, and I use float32 in it19:00
eric___n4nd0: I should then rewrite the extracting data part with double type ..19:01
n4nd0eric___: if you think that you don't need so high precision, the one offered by float64_t19:02
n4nd0I would just use it as it is19:02
n4nd0it would have a bit more of overhead since float64_t would be used internally in Shogun, but it is probably unimportant19:03
-!- eric___ [2e1fd566@gateway/web/freenode/ip.] has quit [Quit: Page closed]19:24
-!- blackburn [~qdrgsm@] has joined #shogun19:58
blackburnhey n4nd020:02
n4nd0blackburn: hey!20:03
blackburnhow are you?20:03
n4nd0I am fine20:04
n4nd0tired of wireless communications :P20:04
n4nd0what about you?20:04
blackburnn4nd0: next exam?20:05
blackburnI have one tomorrow20:05
n4nd0blackburn: yeah, next exam on that20:05
n4nd0blackburn: what is the topic?20:05
blackburnn4nd0: politology :D20:05
n4nd0what is it?20:06
blackburnkind of social science I guess20:06
n4nd0oh like politics20:06
blackburnstudying politics20:06
n4nd0I was thinking of something related to math20:06
blackburnI'd rather listen to tom waits20:09
blackburnI do not want to study anything :D20:09
n4nd0yeah, I understand20:10
blackburnn4nd0: when will you get past exams results?20:11
n4nd0no idea20:13
blackburnwe have it immediate20:13
n4nd0at most two weeks after I did them20:13
n4nd0so probably I will get to know about them by next week20:14
* gsomix have returned from dance floor.20:14
blackburnn4nd0: two? wow20:14
n4nd0blackburn: yeah, it is about the same in Sweden normally20:14
n4nd0I think that at the moment is superfast!20:15
blackburnn4nd0: heh students here would die of heart attack if professor said he will let they know about results in two weeks20:15
gsomixblackburn, where are you?20:16
blackburngsomix: 315, need to discuss anything? I was going to start preparing for my exam20:16
gsomixblackburn, cake. just cake. :]20:17
gsomixtasty cake20:17
blackburnI am not really hungry but I'll visit you if I am ;)20:18
gsomixblackburn, ok. :]20:18
n4nd0do you like to cook cakes gsomix?20:19
n4nd0I think it is not the first time I see you guys are talking about it ;)20:19
blackburnhe get one from home I guess haha20:19
gsomixn4nd0, nope. I do not know how.20:19
gsomixn4nd0, I just have one. :)20:20
blackburnhe steal it from the shop20:20
@sonney2kblackburn, btw - shouldn't we get rid of the load/save functions?20:20
blackburnsonney2k: yes we should20:21
@sonney2kI mean the serialization stuff should be enough20:21
blackburnsonney2k: is it used in static?20:21
@sonney2konly problem is we need some replacement for it in static20:21
@sonney2kthere is no way to load anything from cmdline20:21
@sonney2kwoudln't be too much effort20:22
@sonney2kjust serialize the single trained model that is there20:22
blackburnsonney2k: you have slave for that :D20:22
@sonney2kgsomix, some easy job - just remove all the load/save functions from Machine and derived classes20:23
gsomixn4nd0, I know how to cook pelmeni. ;]20:23
gsomixsonney2k, ok.20:23
* sonney2k loves pelmeni20:23
blackburnsonney2k: really?20:23
@sonney2kgsomix, please send some over20:23
gsomixsonney2k, huh20:24
n4nd0gsomix: no idea what it is, let me check20:25
@sonney2kgsomix, exactly now that you are back CSet,CMap,Array/load/save etc are waiting20:25
* sonney2k is getting hungry20:25
blackburnsonney2k: what about borsch?20:25
blackburnyou should like borsch too :D20:26
gsomixor solyanka20:26
@sonney2kI love soljanka20:26
@sonney2kthough I don't recall the taste of borsch20:26
n4nd0blackburn: gsomix: do you know guys that this is really famous in Spain?
blackburnn4nd0: ooh that's nice salad sure20:27
n4nd0we call it ensaladilla rusa - Russian salad20:27
blackburnn4nd0: this one is very popular here too20:27
gsomixn4nd0, we cook it for the New Year. whole buckets. :)20:28
blackburnsonney2k: do you like selyodka pod shuboy?20:28
@sonney2kI don't know what this is20:28
n4nd0I like vegetables, I think I would like Russian food20:28
@sonney2kblackburn, how should I mark places where SGVector no longer works as expected?20:28
@sonney2kTODOVEC ?20:28
blackburnsonney2k: TODO?20:28
blackburnheh TODO SGVECTOR or so20:29
@sonney2kthere are tons of these20:29
blackburnoh that would be painful..20:29
@sonney2kit will require internal changes to machines, features, whatnot20:29
@sonney2kI can type TODOVEC faster :)20:30
blackburnpenetration is the word describing these processes20:31
@sonney2kblackburn, btw I think we need some base class for GC stuff20:31
@sonney2kgarbage collection20:31
blackburnsonney2k: yeah I understand but ?20:31
@sonney2kbecause sgvector, sgmatrix, etc all have this refcounting mechanism20:31
@sonney2kno idea20:31
blackburnwhat should it share?20:32
blackburnah I had one idea walking from job20:32
blackburnwe should implement clone() method based on parameters20:32
@sonney2kref/unref mechanism20:32
@sonney2kwith one virtual method to actually destroy things20:32
blackburnsonney2k: what is the difference between SGRef and SG objects?20:32
@sonney2kSGObject will derive from them20:33
@sonney2kSGObjects can be serialized in addition to having refcounting20:33
blackburnI lack Serialiazable interface20:33
@sonney2kyou want SGObject and derive SGSerializable from it?20:34
blackburnsonney2k: no I really like java interfaces20:34
@sonney2kinstead of SGRef -> SGObject , ...20:34
@sonney2kI have no idea why c++0x doesn't have interfaces20:35
@sonney2kthat really is the only cool thing about java I've learned so far20:35
blackburnsonney2k: the only??20:35
blackburnsonney2k: annotations?20:36
@sonney2kblackburn, actually I like the idea of having SGObject -> SGSerializable20:36
blackburnfor each20:36
@sonney2knever used this no idea what this is for20:36
@sonney2klame iterators20:36
@sonney2kbut c++0x has them20:36
blackburnsonney2k: do you know what dependency injection is?20:37
@sonney2kseems like we are trapped in some loop20:37
@sonney2kblackburn, focus man focus20:37
@sonney2k<sonney2k> blackburn, actually I like the idea of having SGObject -> SGSerializable20:37
blackburnsonney2k: yes seems to be a good idea20:37
blackburnsonney2k: actually we can imitate interfaces..20:38
@sonney2kblackburn, that will require a rename from SGObject -> SGSerializable first20:38
@sonney2kblackburn, how so?20:38
blackburnmultiple inheritance20:38
@sonney2kMI can do much more bad stuff yes20:38
blackburnsonney2k: we won't have diamond there20:38
@sonney2kbut other stuff20:39
blackburnas SGSerializable should only indicate class is serializable20:39
@sonney2kno MI20:39
n4nd0I read once an article about simulating interfaces in C++20:39
n4nd0I like interfaces too, maybe we could take a look to that article20:40
@sonney2kas long as it doesn't involve MI - yeah20:41
n4nd0well it uses some macros, but it MI indeed20:41
blackburndon't you think we should have NAME("name") macros?20:41
n4nd0#define implements public20:41
blackburnfor get_name method20:41
blackburn#define true false20:42
n4nd0don't get me wrong guys, I was not joking20:42
n4nd0the method had some other things20:42
blackburnn4nd0: yes I understand20:42
n4nd0but at the end it relies on MI20:42
blackburnI am not big fan of MI too20:42
n4nd0I realized that it was a bit as I was pulling your legs :D20:43
@sonney2kblackburn, no idea how that can work but yes I wanted that too20:49
blackburnsonney2k: wanted what?20:49
@sonney2kNAME macros for the classes20:51
blackburnshould be easy?20:51
blackburn#define NAME(CLASSNAME) virtual const char* get_name() const { return CLASSNAME; }20:52
blackburnwon't it work?20:52
@sonney2kblackburn, ahh yes20:52
@sonney2kI wanted more20:52
blackburnI tried to add GETTER/SETTER but failed20:52
blackburnI guess it is not possible20:52
@sonney2kthat one writes this instead of class CFooBar {  char* getrname() { return "FooBar"; } };20:53
@sonney2kblackburn, should sgvector.vector still be public?20:54
@sonney2kand length?20:54
blackburnor yes20:54
blackburnsonney2k: ok I think no20:54
@sonney2kyes is the easy answer so lets go for it for now20:54
blackburnbut would need to do some transition20:54
@sonney2keven more than we have currently20:54
blackburnI'd rather hide it20:55
blackburnin future20:55
-!- n4nd0 [02893bbe@gateway/web/freenode/ip.] has quit [Ping timeout: 245 seconds]20:57
blackburnokay I have to study I think20:57
blackburnI haven't read a page yet and exam is in 11 hours :D20:58
blackburnhowever brb20:58
-!- blackburn [~qdrgsm@] has quit [Quit: Leaving.]20:58
-!- blackburn [5bde8018@gateway/web/freenode/ip.] has joined #shogun21:02
@sonney2kblackburn, 4 minutes learning?21:16
blackburnsonney2k: hah no I'm reading that shit21:18
gsomix4 minutes learning? | I'm not surprised, blackburn studies all very fast. :)21:21
@sonney2kgsomix, I am also no longer surprised21:28
blackburnyeah I just imitate I know something :D21:28
@sonney2kthats how you do it!21:28
@sonney2know I finally know21:28
blackburnsonney2k: exactly21:28
* sonney2k dies in SGVector hell21:36
blackburnsonney2k: trying ecoc on road signs..21:40
blackburnyeah I can't focus on politics stuff21:40
-!- vikram360 [~vikram360@] has quit [Ping timeout: 246 seconds]21:53
-!- vikram360 [~vikram360@] has joined #shogun21:54
blackburnhmm no way - sparse one is not working yet in a proper way :(21:57
-!- blackburn [5bde8018@gateway/web/freenode/ip.] has quit [Ping timeout: 245 seconds]22:08
* sonney2k suffer**222:16
-!- blackburn [5bde8018@gateway/web/freenode/ip.] has joined #shogun22:16
gsomixsonney2k, why we need inline T get_element(int32_t index) const in CSet?22:17
@sonney2kgsomix, IIRC element() is for r/w access get_element not22:19
@sonney2kif it is not needed -> delete it :)22:19
@sonney2k(or not used yet)22:19
gsomixsonney2k, ok, I figured out.22:22
* gsomix is fighting for bytes.22:23
@sonney2kI have like zillions of errors left22:27
blackburnsonney2k: when I was first year undergraduate we were discussing with my friend how to compute vandermond matrix determinant and we decided to compute it step by step - and once we get N-5 x N-5 matrix we realized.. :D22:32
blackburnso it should be something like N-353 errors left :D22:33
@sonney2kblackburn, what is cool about the new sgvectro stuff is that you can write SGVector a = SGVector(...)22:39
@sonney2kand get automagic refcount increase of a22:39
@sonney2kand when the function exits a will be destroyed22:39
blackburnsonney2k: nice, copy constructor?22:39
@sonney2kso no need to manually call ref() / unref()22:39
@sonney2kthere are some rare cases where you want to immediately kill the vector (call unref)22:40
@sonney2kbut usually not22:40
@sonney2kit compiles!22:40
@sonney2klet me commit and break everything :(22:40
wikinganybody has any idea why latex creates an a4 dvi when i have \documentclass[10pt,twocolumn,letterpaper]{article}? :)22:42
blackburnwiking: huh22:43
blackburnwhy do you need dvi btw?22:43
CIA-113shogun: Evgeniy Andreev master * r61b244b / src/shogun/lib/DataType.h : added reference counting for SGVector (further SGIVector) -
CIA-113shogun: Evgeniy Andreev master * r3f444b9 / src/shogun/lib/DataType.h : minor fixes -
CIA-113shogun: Evgeniy Andreev master * r4b3c4f6 / src/shogun/lib/DataType.h : added no_ref_count arg, temporary changes -
CIA-113shogun: Evgeniy Andreev master * r4fbd7c5 / src/shogun/lib/DataType.h : minor fixes 2 -
wikingwell don't get me started with ieee :)22:43
@sonney2kits done22:44
@sonney2kthe world will end22:44
@sonney2kI better get some sleep22:44
blackburnsonney2k: why gsomix name there?22:44
@sonney2kwiking, shouldn't it be letter?22:44
wikingsonney2k: yes it should be, but it creates a4 :)22:44
wikingand i have nooo idea why22:44
blackburnhah right letter22:44
@sonney2kblackburn, hmmhh I merged his stuff but added my stuff22:45
@sonney2knot letterpaper22:45
@sonney2kbut letter22:45
wikingand i would need letter :)22:45
blackburnwiking: [10pt,twocolumn,letter]?22:45
@sonney2kall changes gone?!22:47
wikingblackburn: hop does not work22:47
@sonney2kblackburn, hmmhh seems like git rebase killed it all22:47
blackburnsonney2k: did you use amend?22:47
@sonney2kand then git pull --rebase22:48
@sonney2kgit commit --amend -a22:48
@sonney2kfollowed by git pull --rebase22:48
@sonney2kafter that all my changes were gone22:48
@sonney2kwhich is just 4 hours of work...22:48
blackburnwhy did you pulled?22:48
@sonney2kbecause there was some merge inbetween22:49
blackburnis local repo broken too?22:49
blackburnrebase shouldn't do that afaik22:50
@sonney2kblackburn, you think it is somewhere in git history?22:50
@sonney2kmaybe it is due to this merge commit?22:50
blackburnsonney2k: so is it lost in local repo too?22:50
@sonney2kI don't see the commit...22:51
blackburnsonney2k: hmm so where is your amended changes?22:53
blackburnI do not believe it can disappear because of rebase22:53
blackburnwiking: any idea?22:54
wikingwell rebase just rebases22:54
wikingit's all gone mate22:54
@sonney2kfrom the git faq22:54
@sonney2k So, we would normally just git pull --rebase to get ready to push, but if we do that, the merge commit gets deleted!22:54
blackburnsonney2k: damn so did you amend merge commit?22:55
@sonney2kfor merge commits one should do git pull --rebase -p22:55
@sonney2kInstead of ignoring merges, try to recreate them.22:55
blackburnone of the reasons I do not like amend22:56
@sonney2kblackburn, not related to amend22:56
@sonney2krelated to merge commits22:56
@sonney2kif you do a rebase on a merge commit your merge commit is gone22:56
shogun-buildbotbuild #727 of r_static is complete: Failure [failed test_1]  Build details are at  blamelist: gsomix@gmail.com22:57
blackburnsonney2k: but if you did basic commit it would be here still22:57
@sonney2kgreat wasted this evening ... anyway need to sleep now22:57
blackburnbad :(22:58
blackburnsee you..22:58
@sonney2kgit reset --hard origin/master would have recovered fromt his if I didn't push before *sigh*22:58
@sonney2kbtw one could also say rebase is bad23:00
@sonney2ka normal pull would have been no problem23:00
@sonney2kohh well we will all learn the hard way23:00
blackburnsonney2k: pull is bad23:00
shogun-buildbotbuild #749 of cmdline_static is complete: Failure [failed test_1]  Build details are at  blamelist: gsomix@gmail.com23:01
blackburnfetch/{merge,rebase} is generally better controlled23:01
@sonney2kblackburn, if you don't expect a problem then that would not have helped either23:01
blackburnsonney2k: painful wisdom - "never amend merge and rebase"23:03
shogun-buildbotbuild #715 of python_static is complete: Failure [failed test_1]  Build details are at  blamelist: gsomix@gmail.com23:05
@sonney2kyeah that is the downside of using git - you can loose everything ... with svn this is not possible23:07
blackburnsonney2k: we would break the neck doing that kind of development in svn23:10
-!- blackburn [5bde8018@gateway/web/freenode/ip.] has quit [Ping timeout: 245 seconds]23:18
@sonney2kgsomix, do you remember what you changed to support SGVector& ?23:40
@sonney2kI would like to get rid of this & stuff again...23:40
wikingit took me this much!23:41
wikingbut made it23:41
wikingu killed it?23:42
gsomixsonney2k, only arguments of methods and typemaps (added for SGVector&).23:42
@sonney2kwiking, ?!23:44
@sonney2kwho did you kill?23:44
@sonney2kgsomix, ok23:44
@sonney2kgsomix, are you making progress?23:44
gsomixsonney2k, in CSet and map to titled features?23:45
@sonney2kwell CSet first :)23:45
gsomixyep, of course. I figured out how to make hashset with indexes.23:46
gsomixunfortunately, it needed little more memory, than original CSet23:47
gsomixbut it should works faster.23:48
gsomix*it need23:48
wikingsonney2k: have u killed the git repo :)23:49
@sonney2kwiking, ?23:50
wikingsonney2k: the rebase... have u lost some commits?23:51
-!- vikram360 [~vikram360@] has quit [Ping timeout: 260 seconds]23:53
-!- vikram360 [~vikram360@] has joined #shogun23:53
gsomixsonney2k, btw, can you explain me later how to make templates with two args in shogun?23:54
wikingtemplate<class this, class that>23:54
gsomixwiking, I have some problems with class_list.cpp23:55
wikingor typename instead of class... depends what u want to template23:55
wikingwhat the error23:55
wikinggsomix copy-paste me a gcc error!23:58
gsomixwiking, related to declaration templated classes with standart types. It seems, shogun thinks, that all templated classes have only one arg.23:58
gsomixwiking, later. ok?23:58
wikinghehehe ok ok23:59
gsomixtemplated SG classes, I mean23:59
wikingi might not be here later though23:59
--- Log closed Thu May 03 00:00:37 2012