Open in new window / Try shogun cloud
--- Log opened Sun Apr 01 00:00:19 2012
-!- n4nd0 [] has quit [Ping timeout: 252 seconds]00:01
-!- romovpa_ [b064f6fe@gateway/web/freenode/ip.] has quit [Ping timeout: 245 seconds]00:02
gsomixsonney2k, hey00:04
-!- blackburn [~qdrgsm@] has joined #shogun00:11
-!- n4nd0 [] has joined #shogun00:13
-!- romovpa [b064f6fe@gateway/web/freenode/ip.] has joined #shogun00:17
gsomixsonney2k, >:300:27
-!- gsomix [~gsomix@] has quit [Quit: ????? ? ?? ??? (xchat 2.4.5 ??? ??????)]00:28
-!- romovpa [b064f6fe@gateway/web/freenode/ip.] has quit [Ping timeout: 245 seconds]00:29
-!- Vuvu [~Vivan_Ric@] has quit [Remote host closed the connection]00:30
-!- Vuvu [~Vivan_Ric@] has joined #shogun00:34
-!- blackburn [~qdrgsm@] has quit [Quit: Leaving.]00:42
-!- blackburn [~qdrgsm@] has joined #shogun00:45
PhilTilletblackburn, are you sleeping? :D01:10
PhilTilletyay, i'm not the only one awake!01:10
blackburnyeah but I'm going to01:10
PhilTilletok :D01:10
blackburnany news?01:11
PhilTillettried to improve the precision of my GPU thing01:11
PhilTilletcould it be possible that the shogun implementation is less precise?01:11
PhilTilletI computed some operations with octave to debug, and it appeared that the difference between the octave result and my GPU was 001:12
PhilTilletwhile the difference between the octave result and the Shogun result was 10^-801:12
blackburngaussian kernel right?01:14
PhilTilleti changed the source to remove the exponential01:14
PhilTilletto isolate the roundoff error01:14
PhilTilletstatic inline float32_t dot(01:15
PhilTillet00702             const float32_t* v1, const float32_t* v2, int32_t n)01:15
blackburnwhich source?01:15
PhilTilletshouldn't the result be float64_t???01:15
PhilTilletoops sorry for the 00702, it's a line number01:15
blackburnwhat is it?01:15
PhilTilletthe CMath::dot01:15
blackburnthere should be 64 one01:15
PhilTilletbut the 64 one takes float64_t* as input01:16
PhilTilletwhile the features are float32_t01:16
-!- exodus [d078ac53@gateway/web/freenode/ip.] has joined #shogun01:16
PhilTilletand we want a float64_t result01:16
-!- exodus is now known as Guest7252301:16
PhilTilleti'll try to change that01:17
blackburnwhy your features are 32?01:17
PhilTilletI took a test case from shogun's examples01:17
PhilTilletand the features were 3201:17
PhilTilletwhile the labels and alphas were 6401:17
blackburnah that can cause the problem01:18
PhilTilletthis way twice more features feat in memory01:18
PhilTilletI mean, that 32 bit dot function is strange in any case01:20
PhilTilletcause the internal result is 64 bit01:20
PhilTilletbut it casted at return time01:20
blackburnah yes01:20
blackburnI agree01:20
blackburnthat can be a patch01:21
blackburnif you want01:21
PhilTilletyes :p01:21
PhilTilleti will release it as a patch with my GPU apply function01:21
PhilTillet(which is not ready yet :D)01:21
PhilTillet(trying to fix that round off error first)01:21
blackburnso will you send proposal only for gpu stuff?01:21
PhilTilletMaybe for Built generic multiclass learning framework too01:23
PhilTilletbut I mean01:23
PhilTilletmy main proposal will be the OpenCL one01:24
blackburnok I think it would be ok to to combine something01:24
n4nd0good night guys01:24
PhilTilletgood night n4nd001:24
blackburnn4nd0: good night01:24
PhilTilletblackburn, what do you mean?01:24
blackburnPhilTillet: I mean it is ok to propose some complex idea01:25
blackburnas I think01:25
blackburnanyway what would you suggest as OpenCL project?01:25
PhilTilletsomething big01:25
PhilTilletAt least a complete SVM on GPU01:26
PhilTilletwell at least for basic kernels01:26
PhilTilleti don't know if string kernels could be done on time01:26
PhilTilletI think yes01:26
blackburnstring kernels can't be very optimized with gpu01:27
blackburnbut linear svms are still there :)01:27
PhilTilletwell, I was thinking about any kernel but string kernels, apply and training01:27
PhilTilletand if I have time, maybe custom kernels01:27
blackburngpu accelerated liblinear sounds like something interesting I think01:29
-!- n4nd0 [] has quit [Ping timeout: 264 seconds]01:29
PhilTilletI could make custom kernels very neat using the tool i developed for ViennaCL (and wrote a paper for)01:29
PhilTilletbut that tool (automatic OpenCL code generator) is not advanced enough yet at the moment01:29
PhilTilletso people could write custom kernels without any OpenCL knowledge01:30
blackburnI think you should focus on linear things01:30
blackburnand then start with kernels01:30
PhilTilletyes I think that too01:30
PhilTilletbut linear thing would I think not require the whole summer01:31
blackburndepends.. :D01:31
PhilTilletwell wait01:31
PhilTilletdefine "things"01:31
blackburnto port whole liblinear to gpu effectively is something hard to carry out I think01:31
PhilTilletI'll ask a newbish question, what's the difference between liblinear and libsvm?01:32
@sonney2kblackburn, and I don't expect it to be fast either...01:32
@sonney2klibsvm might be more worthwhile to port01:32
blackburnsonney2k: good morning01:32
@sonney2kyeah good morning ;-)01:32
blackburnPhilTillet: liblinear is for training only linear svms01:32
blackburnand libsvm is for training kernel ones01:33
PhilTilletI see01:33
blackburnsonney2k: harshit complained today about ocas/liblinear idea01:33
blackburnI said it is pretty out of priority - hey both ocas and linear are up-to-date01:33
blackburndon't you think we could remove it?01:34
-!- Guest72523 [d078ac53@gateway/web/freenode/ip.] has quit [Quit: Page closed]01:35
@sonney2kblackburn, I expect new liblinear w/ regression support to appear soon (today?)01:37
blackburnoh yes01:37
@sonney2kwell they usually release on april 101:37
blackburnit is released01:37
blackburnoh no01:37
@sonney2kblackburn, harshit could implement a couple of dotfeatures01:38
@sonney2kfor example local binary patterns, hog, the approximations for histogram kernel directly as dotfeatures01:39
blackburnsonney2k: makes sense probably..01:39
@sonney2kPhilTillet, it makes sense to first speed up apply times for kernelmachines (like you do) and distancemachines01:41
@sonney2klinear machines too if possilbe01:41
@sonney2kbut I don't think it is01:41
PhilTilletI see01:41
PhilTilletwhy not training time too?01:41
@sonney2kbecause you only need to do w^T x (for lots of x)01:41
@sonney2kmuch more difficult01:41
@sonney2kone thing that would directly help is to compute the kernel with opencl01:42
@sonney2kbut that has to be done for *every* kernel / distance01:42
@sonney2kand I guess none of the string kernels will benefit from this01:42
blackburnsonney2k: why liblinear team does not list us as wrapper?01:43
@sonney2kno idea01:43
blackburnas interface*01:43
blackburndon't they like shogun? :D01:43
PhilTilletsonney2k, well, computing the kernel with OpenCL is what i'm doing for applying no?01:43
@sonney2kPhilTillet, not only - you can store all SVs in GPU mem01:45
@sonney2kthat won't be possible for training01:45
PhilTilletoh, right01:45
PhilTilletmakes things more complicated01:46
PhilTilletbut well, some people have succeeded in doing full SVM on GPU!01:46
CIA-64shogun: Soeren Sonnenburg master * ra1f473c / (9 files in 5 dirs):01:47
CIA-64shogun: Merge pull request #405 from pluskid/gsoc-pullrequest-101:47
CIA-64shogun: Accuracy Evaluation for Clustering (+5 more commits...) -
PhilTilletand, concerning this round-off error, I changed that dot result but the result is still different01:48
blackburnsee you later guys01:50
PhilTilletsee you later01:50
@sonney2kPhilTillet, don't you need all training data to be on GPU memory?01:51
-!- blackburn [~qdrgsm@] has quit [Quit: Leaving.]01:51
PhilTilletsonney2k, yes, but every trick that can be used with the CPU when the data can't fit in ram can probably be applied to the GPU01:53
@sonney2kPhilTillet, well lets assume data fits in ram01:54
@sonney2kbut not gpu mem01:54
@sonney2kwhat then?01:54
PhilTilletgood question01:55
PhilTillethow do you do on CPU when the data does not fits in ram?01:56
PhilTilletonline learning?01:56
@sonney2kwe don't train an svm then01:56
@sonney2kbut nowadays you can have systems with 64G easily01:57
PhilTillettrue, RAM can be clusterized01:57
PhilTilletnot GPU RAM01:57
@sonney2kand GPU has few 100 MB / max few GB right?01:57
PhilTilletwell, few GPU have few 100 MB01:57
PhilTilletand these GPU probably offer poor GPGPU performance01:58
PhilTilletthere are some dedicated GPU like the Tesla with 4GB01:58
@sonney2kso one would need to somehow cache examples that don't fit in memory01:58
@sonney2kwell I would optimize not for dedicated hardware but common hardware01:58
PhilTilletyes :p01:59
PhilTilletbut the GPU RAM can be obtained at runtime01:59
PhilTilletbut it's true that training SVM on half of the dataset than on the other half is probably not equivalent to train it o the whole dataset02:01
@sonney2kPhilTillet, well the most expensive operation is similar to the one you just speed up02:03
@sonney2kproblem is that the support vectors may change slightly over time02:03
PhilTilletOh I see02:03
PhilTilletI thought we were talking about training?02:03
@sonney2kyeah that is all that can be speed up in training02:04
@sonney2k90% of the time is kernel comp.02:04
PhilTilletI see02:04
PhilTilletbut no "Support Vectors Matrix" :D02:04
@sonney2kyes a matrix of SV's02:06
@sonney2kbut of course this only holds for real-values inputs02:06
@sonney2kif we talk about strings -> nogo02:07
PhilTilletstring kernel computation on GPU must be super uber complicated02:07
PhilTilletokay, so for my application, should I focus on liblinear or libsvm?02:09
@sonney2ki don't see how you could do anything for liblinear - or can you speed up w^T x when x is not in GPU mem?02:10
PhilTilletwhy wouldn't it be in GPU mem?02:10
@sonney2kbecause it wouldn't fit02:13
PhilTilletwell, chunks of x will always fit in memory02:15
PhilTilletand this is a linear operation02:15
PhilTilletso basically it would be about caching x in CPU02:16
PhilTilletand loop on transfer chunks on GPU, compute :p02:16
PhilTilletwith PCI-E the transfer is super fast02:16
PhilTilletOh, and I have confirmation that the precision error rather comes from shogun for that case02:18
@sonney2kfrom where?02:19
@sonney2kare kernel matrices the same02:19
PhilTilletI tested it on a quite simple case02:19
PhilTillet#define NUM 202:19
PhilTillet#define DIMS 102:19
PhilTillet#define NUM_SV 202:19
PhilTillethmm, i was not able to see the kernel matrices02:19
@sonney2kplease check whether kernel matrices return exactly the same thing02:20
PhilTillethow can I display the kernel matrice?02:20
PhilTillet(for CPU)02:20
@sonney2kfirst do get_kernel_matrix and then CMath::display_matrix02:20
@sonney2kfor your proposal - I think it makes sense to focus on any computationally very intense problem so better O(n^2) effort algoritms02:21
@sonney2kso kernel machine testing etc first02:21
@sonney2kthen svmlight training (similar operation that you need for testing)02:22
PhilTilletI see02:22
@sonney2klibsvm on GPU - there is a paper about it - read it02:22
@sonney2kand then liblinear02:22
@sonney2kliblinear has some block-decomposition KDD paper02:22
@sonney2kwhere they train when data doesn't fit in ram02:23
@sonney2kso this idea could be used for GPU too02:23
PhilTilletI see02:24
PhilTilletdisplay_matrix does not seem to work on SGMatrix02:27
@sonney2kis the double ptr02:29
@sonney2kI have to sleep now...02:29
PhilTilletok, good night02:29
@sonney2kkeep us posted!02:29
PhilTillethaha ok :D02:30
shogun-buildbotbuild #413 of java_modular is complete: Failure [failed compile]  Build details are at  blamelist: pluskid@gmail.com03:01
shogun-buildbotbuild #409 of python_modular is complete: Failure [failed test_1]  Build details are at  blamelist: pluskid@gmail.com03:28
shogun-buildbotbuild #405 of ruby_modular is complete: Failure [failed compile]  Build details are at  blamelist: pluskid@gmail.com03:40
-!- romi_ [~mizobe@] has quit [Ping timeout: 246 seconds]04:33
-!- romi_ [~mizobe@] has joined #shogun04:35
-!- flxb [] has quit [Quit: flxb]04:42
PhilTilletsonney2k, sent my pull request for fixing the precision issue :p04:47
-!- PhilTillet [] has quit [Quit: Leaving]04:47
-!- vikram360 [~vikram360@] has quit [Ping timeout: 246 seconds]05:01
shogun-buildbotbuild #415 of java_modular is complete: Success [build successful]  Build details are at
-!- vikram360 [~vikram360@] has joined #shogun05:40
shogun-buildbotbuild #407 of ruby_modular is complete: Success [build successful]  Build details are at
-!- n4nd0 [] has joined #shogun08:10
-!- gsomix [~gsomix@] has joined #shogun08:41
-!- vikram360 [~vikram360@] has quit [Ping timeout: 276 seconds]08:42
-!- vikram360 [~vikram360@] has joined #shogun08:46
-!- harshit_ [~harshit@] has joined #shogun08:46
-!- blackburn [~qdrgsm@] has joined #shogun09:11
gsomixblackburn, yo09:11
n4nd0already movement around here :)09:15
n4nd0good morning people09:15
blackburnn4nd0: hey good morning09:15
CIA-64shogun: Chiyuan Zhang master * r92508eb / src/shogun/features/Labels.cpp :09:22
CIA-64shogun: Merge pull request #1 from pluskid/master09:22
CIA-64shogun: bug fix for CLabels::set_int_labels -
CIA-64shogun: Sergey Lisitsyn master * rdefbb68 / src/shogun/features/Labels.cpp : Merge branch 'gsoc-pullrequest-1' of git:// -
blackburnwhoa awful mergees09:22
n4nd0why so?09:31
blackburnn4nd0: look ^ he merged his master to feature branch09:35
-!- vikram360 [~vikram360@] has quit [Ping timeout: 246 seconds]09:42
n4nd0aham I see09:44
-!- vikram360 [~vikram360@] has joined #shogun09:45
blackburnn4nd0: check mailing list :)09:48
n4nd0blackburn: reading it right now :)09:48
n4nd0blackburn: I like the references ;)09:49
-!- vikram360 [~vikram360@] has quit [Ping timeout: 260 seconds]10:00
-!- vikram360 [~vikram360@] has joined #shogun10:00
harshit_blackburn: Thanks for that mail, I was having hard time figuring that out . :)10:13
-!- blackburn [~qdrgsm@] has quit [Ping timeout: 246 seconds]10:28
-!- vikram360 [~vikram360@] has quit [Ping timeout: 240 seconds]10:31
-!- vikram360 [~vikram360@] has joined #shogun10:32
-!- n4nd0 [] has quit [Ping timeout: 264 seconds]10:42
-!- blackburn [~qdrgsm@] has joined #shogun10:44
-!- harshit_ [~harshit@] has quit [Ping timeout: 244 seconds]10:48
-!- gsomix [~gsomix@] has quit [Ping timeout: 246 seconds]10:53
-!- gsomix [~gsomix@] has joined #shogun11:07
-!- gsomix [~gsomix@] has quit [Quit: ????? ? ?? ??? (xchat 2.4.5 ??? ??????)]11:15
-!- gsomix [~gsomix@] has joined #shogun11:15
-!- n4nd0 [] has joined #shogun11:31
-!- flxb [] has joined #shogun11:33
-!- harshit_ [~harshit@] has joined #shogun11:45
-!- harshit_ [~harshit@] has quit [Client Quit]11:48
-!- harshit_ [~harshit@] has joined #shogun12:18
-!- nickon [] has joined #shogun12:44
-!- PhilTillet [] has joined #shogun12:48
-!- PhilTillet [] has quit [Ping timeout: 246 seconds]13:00
-!- PhilTillet [] has joined #shogun13:04
-!- PhilTillet [] has quit [Ping timeout: 245 seconds]13:10
-!- PhilTillet [] has joined #shogun13:17
-!- PhilTillet [] has quit [Ping timeout: 252 seconds]13:21
-!- PhilTillet [] has joined #shogun13:22
-!- PhilTillet [] has quit [Ping timeout: 276 seconds]13:30
-!- PhilTillet [] has joined #shogun13:40
-!- gsomix [~gsomix@] has quit [Quit: ????? ? ?? ??? (xchat 2.4.5 ??? ??????)]13:41
-!- gsomix [~gsomix@] has joined #shogun13:41
-!- PhilTillet [] has quit [Ping timeout: 248 seconds]14:04
-!- PhilTillet [] has joined #shogun14:24
-!- gsomix [~gsomix@] has quit [Quit: ????? ? ?? ??? (xchat 2.4.5 ??? ??????)]14:36
-!- n4nd0 [] has quit [Read error: Operation timed out]14:41
-!- PhilTillet [] has quit [Ping timeout: 250 seconds]14:51
-!- n4nd0 [] has joined #shogun15:38
-!- gsomix [~gsomix@] has joined #shogun15:39
-!- PhilTillet [] has joined #shogun15:41
PhilTilletHi :p16:20
-!- n4nd0 [] has quit [Ping timeout: 264 seconds]16:22
-!- n4nd0 [] has joined #shogun16:49
-!- harshit_ [~harshit@] has quit [Remote host closed the connection]16:52
blackburnhi there17:09
PhilTillethi blackburn17:12
blackburnPhilTillet: so did your fix solved your precision problem?17:18
PhilTilletyes :D17:18
blackburnmerging then17:18
PhilTilletsent a pull request, but did a little mistake17:18
blackburnyes, that's me commented it17:18
PhilTilleti used blas_ddot instead of blas_dsdot17:19
PhilTilletnot used to blas17:19
CIA-64shogun: Philippe Tillet master * r08f27a3 / (2 files): Bugfix in dot product for 32bit,32bit vector dot product computation -
CIA-64shogun: Sergey Lisitsyn master * red87836 / (2 files): Merge branch 'master' of git:// -
PhilTilletcool :)17:23
shogun-buildbotbuild #647 of libshogun is complete: Failure [failed compile]  Build details are at  blamelist:, Phil.Tillet@gmail.com17:27
PhilTilletdsdot does not exist?17:27
blackburnoh I had to check it17:29
PhilTilletthat would be too bad if there is no function taking two float vectors and returning a double17:30
PhilTilleti was sure there was though :/17:30
blackburnPhilTillet: no that's ok17:31
blackburnwrong commit probably17:31
PhilTillet dsdot seems to exist in fortran though17:31
blackburnPhilTillet: wait didn't you commit that?17:32
PhilTilletcommited what?17:32
blackburnPhilTillet: dsdot17:33
PhilTilletoh oops no17:33
PhilTilletthought you would merge with it17:33
blackburnok my bad sorry17:33
blackburnI'll fix it17:33
PhilTilletok :)17:33
blackburnPhilTillet: dsdot is in blas so no worries17:33
blackburnthis time I'll check whether it is working17:34
PhilTilletok :)17:34
blackburnPhilTillet: need your opencl expertise17:40
blackburnwhat kind of graphics card would I need? :D17:40
blackburnwould GT 440 work well?17:41
PhilTilletwell , should be ok17:41
PhilTilletI use GT 540 M17:41
blackburnI am actually using notebook with some shity integrated card but I'm going to buy some card for other machine17:44
blackburnshogun-buildbot: WORK17:48
blackburnyes I probably should commit before that17:49
CIA-64shogun: Sergey Lisitsyn master * rf334179 / src/shogun/mathematics/Math.cpp : Fixes precision issue fix -
CIA-64shogun: Sergey Lisitsyn master * rb43c2ab / src/shogun/mathematics/munkres.cpp : Removed warnings -
CIA-64shogun: Sergey Lisitsyn master * r067287a / (2 files): Added getter for support vector indices for MC liblinear -
blackburnshogun-buildbot: this time WORK17:50
PhilTilletOh, seems like I still have some precision error... It's weird I was sure they were gone o_o17:51
PhilTilletokay, WEIRD17:51
PhilTilletsometimes, error = 0, sometimes, error = 10^(-8)17:51
PhilTilletno, i tested on my local changes17:51
PhilTilletso it should always work17:51
PhilTilletbut still there is some stochastic behaviour17:51
shogun-buildbotbuild #648 of libshogun is complete: Success [build successful]  Build details are at
-!- PhilTillet [] has quit [Ping timeout: 245 seconds]17:56
-!- PhilTillet [] has joined #shogun17:58
-!- PhilTillet [] has quit [Ping timeout: 272 seconds]18:03
nickonare there shogun devs that develop under windows using cygwin ? :)18:25
n4nd0nickon: none pay me for saying this but ... why?? why windows??18:27
nickonyou are probably right, putting cygwin on windows to develop on windows is pretty silly :)18:28
n4nd0believe me ... linux doesn't bite, nor anything18:29
-!- PhilTillet [] has joined #shogun18:32
nickonhaha, I'm a windows user, but I've been using Linux regularly for some projects18:35
nickonI'm not gonna switch to linux for my everyday activity though :)18:35
n4nd0idk, that's a bit up to each one of course18:36
n4nd0but in my opinion, as a developer it is a must to use linux for the job/projects18:36
-!- PhilTillet [] has quit [Ping timeout: 276 seconds]18:42
-!- PhilTillet [] has joined #shogun18:43
PhilTilletThat precision thing is really a headache18:43
PhilTilletThe commit added stochasticity, now the result for an example is right 50% of the time (with random features betwen 0 and 1)18:46
PhilTilletbefore the patch it was never right :p18:46
-!- genix [~gsomix@] has joined #shogun18:48
-!- gsomix [~gsomix@] has quit [Ping timeout: 246 seconds]18:51
blackburnPhilTillet: that's pretty strange actually yes18:51
-!- PhilTillet [] has quit [Ping timeout: 264 seconds]18:52
n4nd0so here is a doubt19:01
n4nd0I get this message19:01
n4nd0terminate called after throwing an instance of 'shogun::ShogunException'19:01
n4nd0in an example19:01
n4nd0it should appear the typical message caused by SG_ERROR, but it doesn't19:01
n4nd0any clue why?19:01
n4nd0but I find it weird because, for example, when I compile with loglevel MSG_DEBUG19:03
n4nd0I cannot see from this example debug messages19:03
n4nd0I can see them from another with python_modular though19:03
n4nd0"this" example I am talking about is in C++19:03
blackburnn4nd0: ah you need to init shogun there19:04
n4nd0blackburn: it is done19:04
n4nd0blackburn: init_shogun, not init_shogun_with_deaults19:04
n4nd0will try with the 2nd one19:04
n4nd0init_shogun_with_defaults made it appear19:05
blackburnn4nd0: other option is19:05
blackburntake a look at19:05
n4nd0ah all right19:06
n4nd0with the print message stuff19:06
n4nd0blackburn: so spe is taking good shape :)19:15
blackburnn4nd0: that's nice19:15
n4nd0blackburn: do you want to check the graphical example?19:15
blackburndid you test mds?19:15
n4nd0do you mean if I compared it to mds?19:15
blackburndamn you catch things really fast19:15
n4nd0I have to prepare some details but the main work is done19:16
n4nd0I think I'll have soon it ready for a pull request so you guys can check if it is ok19:16
blackburnn4nd0: could you please add this example to applications/edrt?19:17
blackburnbtw what is the result for isomap?19:17
n4nd0let me see19:17
n4nd0any parameter setting in particular?19:17
blackburnyes, k = 5-1019:18
-!- genix [~gsomix@] has quit [Ping timeout: 244 seconds]19:18
-!- PhilTillet [] has joined #shogun19:22
n4nd0same results19:24
blackburnand with lle?19:24
-!- harshit_ [~harshit@] has joined #shogun19:26
-!- PhilTillet [] has quit [Ping timeout: 252 seconds]19:27
n4nd0before I answered too fast ...19:30
n4nd0but actually the results of Isomap and LLE doesn't seem to be very related to the input helix19:30
-!- PhilTillet [] has joined #shogun19:31
blackburnn4nd0: you get wrong probably19:31
n4nd0blackburn: oh you mean I am doing something bad?19:32
blackburnboth isomap and lle gets *better* results19:32
n4nd0like wrong I mean19:32
blackburnno, everything else is ok :)19:32
n4nd0I lack a bit of theory in this stuff19:32
blackburnn4nd0: okay you helix is parametrized rgiht?19:33
n4nd0blackburn: yes19:33
n4nd0blackburn: no noise19:33
blackburnso there is probably two actual dimensions19:33
blackburnsome angle and this parameter t19:33
-!- genix [~gsomix@] has joined #shogun19:34
blackburnso isomap is almost ideal for me19:34
n4nd0it's fun to see them together :D19:36
blackburnand some reversed lle heart19:36
PhilTilletblackburn, precision mistake is finally fixed19:36
blackburnPhilTillet: what caused it?19:36
PhilTilletthe last problem came from a missing cast to double in my GPU implementation19:36
PhilTilletdouble = float - float19:37
PhilTilleti guess it gave the right result when the last digit of the float was the same19:37
blackburnn4nd0: you probably should rather compare to mds19:37
blackburnPhilTillet: yes makes sense19:37
n4nd0blackburn: any particular setting?19:38
blackburnn4nd0: for mds? no parameters at all19:38
PhilTilletor something like that19:38
PhilTillethmm wait19:38
PhilTilletmaybe i've been too optimistic19:38
n4nd0blackburn: ah ok, stupid question ...19:38
n4nd0blackburn: btw, this SPE has two strategies, global and local19:38
PhilTilletI think there are a lot of problems who are stacking :D19:38
n4nd0blackburn: local really sucks, even with this helix (that I guess it is kind of easy)19:39
blackburnn4nd0: probably I need to refer this SPE paper19:39
blackburnn4nd0: no, helix is not easy19:39
blackburnn4nd0: can you imagine measures lying on helix? :D19:39
blackburnsome parameters of system or so19:39
n4nd0blackburn: no, but I meant more like it at least seems easy to find a representation in 2D19:40
-!- genix [~gsomix@] has quit [Ping timeout: 246 seconds]19:40
blackburnyes exactly19:40
blackburnit is not easy to map to 2d19:40
blackburnI think19:40
n4nd0blackburn: ok19:40
n4nd0blackburn: the results for this dataset are the sames (in terms of how the graphics look like) to the ones in the matlab toolbox19:41
blackburnthat's nice19:41
n4nd0blackburn: for global is ok, for local, sucks19:41
blackburnI have never checked other impls actually19:41
blackburncan you please do that?19:41
blackburnhmm however19:41
blackburnno, not needed19:41
n4nd0you mean with the other converters as well?19:41
blackburnI'm pretty sure19:41
blackburnyes :D19:42
n4nd0I just used it as a sanity check19:42
n4nd0to know that the impl is ok19:42
harshit_blackburn: I have send a new pull request and i dont think it will have any conflicts now.19:43
blackburnharshit_: yes19:43
blackburnharshit_: btw I talked to Soeren, he thinks liblinear will release soon19:43
blackburnand it makes sense to update it19:43
harshit_yeah i read that irc log19:44
harshit_So should i remove c5.0 from the list of things in my proposal.19:44
blackburnif you don't want to19:44
harshit_how much time do you think, It would take me to integrate new regression feature of liblinear19:45
harshit_just an estimate19:45
-!- PhilTillet [] has quit [Ping timeout: 272 seconds]19:45
blackburnI think 2 weeks would be fully enough19:45
-!- PhilTillet [] has joined #shogun19:50
blackburnn4nd0: one request about spe19:52
blackburnjust like mds it would be nice to have embed_distance method19:52
blackburnand apply can make use of it19:52
PhilTilletblackburn, I have fixed the precision issues, a still error remains though, that is, for 1000 examples of dim 1000, (1000 svs, too), the total error is 10^-1419:53
PhilTilletsounds ok :p19:53
n4nd0blackburn: tell me19:54
blackburnn4nd0: already19:55
n4nd0blackburn: yeah, I tend just to read the red lines :P19:55
n4nd0blackburn: so let me do first a pull request for this and you can check if everything looks ok19:56
n4nd0blackburn: if it's, then I'll check for the other thing ok?19:56
-!- PhilTillet [] has quit [Ping timeout: 245 seconds]19:58
blackburnn4nd0: ah one more thing20:02
blackburndo you compute full distance matrix?20:02
n4nd0blackburn: yeah, I use the method from CDistance20:03
n4nd0blackburn: get_distance_matrix20:03
blackburnn4nd0: can you see disadvantage here?20:03
n4nd0blackburn: I think it is a requirement to have this data20:07
n4nd0blackburn: but maybe there is no need in having the full matrix stored20:07
blackburnyes exactly20:07
n4nd0blackburn: but that could turn out in re-calculations of the same distance20:07
n4nd0blackburn: if not stored20:08
blackburnyes makes sense to add option20:08
n4nd0so the user can choose whether to store or re-calculate?20:09
blackburnn4nd0: this can be done via custom distance20:10
blackburnif to store - compute custom distance with distance20:11
blackburnif not - just pass this distance20:11
-!- PhilTillet [] has joined #shogun20:11
blackburnand use distance(i,j) method20:11
blackburnhave you seen google maps today, guys?20:13
-!- harshit_ [~harshit@] has quit [Ping timeout: 248 seconds]20:13
n4nd0we're in bits20:14
n4nd0there's no name in Spain20:15
-!- harshit_ [~harshit@] has joined #shogun20:21
-!- vikram360 [~vikram360@] has quit [Ping timeout: 246 seconds]20:21
-!- harshit_ [~harshit@] has quit [Read error: Connection reset by peer]20:23
-!- PhilTillet [] has quit [Ping timeout: 260 seconds]21:06
-!- PhilTillet [] has joined #shogun21:13
-!- vikram360 [~vikram360@] has joined #shogun21:21
n4nd0blackburn: oh man, an SG_UNREF(features) in SPE and valgrind log had no end!21:44
n4nd0just that was missing21:44
blackburnn4nd0: so you forgot to unref features? :)21:44
n4nd0blackburn: yeah21:46
n4nd0I have not really understood why is it needed though21:47
n4nd0let me see21:47
n4nd0there must be sth doing SG_REF21:47
blackburndistance probably21:47
blackburnor so21:47
n4nd0it was me in the same method21:48
n4nd0I am pretty sad sometimes21:48
blackburnkeep up21:49
-!- harshit_ [~harshit@] has joined #shogun21:50
n4nd0blackburn: do you have a good reference for SPE?21:52
n4nd0to include in the doc21:53
blackburnn4nd0: didn't laurens mention something?21:53
n4nd0blackburn: let me check21:54
blackburnAgrafiotis, D. K. (2003). Stochastic proximity embedding. Journal of Computational Chemistry, 24(10), 1215-1221. Retrieved from
n4nd0??????? :)21:58
blackburnde nada?21:59
n4nd0literally it is like22:00
n4nd0of nothing22:00
blackburnn4nd0: what is like of nothing?22:01
n4nd0I like to do some literal translations Spanish - English, gets fun22:01
n4nd0de nada = of nothing22:01
blackburnmas que nada22:02
blackburnsong22:02 told me it is 'you are welcome'22:03
n4nd0oh yeah22:03
n4nd0yeah yeah, it is right22:03
blackburnn4nd0: how to translate mas que nada?22:04
n4nd0blackburn: more than anything22:04
blackburnsounds senseless22:05
blackburnwhat is this song about22:05
n4nd0blackburn: well ... it's in Portuguesse :P22:05
blackburnyou told me you are able to understand it a little :D22:05
n4nd0at least the one I know22:05
n4nd0let me check the lyrics22:06
blackburnyeah one by tom jobim or even black eyed peas hah22:06
n4nd0ah guy that wants to dance22:07
n4nd0he is feeling like party :)22:07
@sonney2kblackburn, I have a question wrt
@sonney2kI think the patch is wrong22:07
blackburnsonney2k: do you think so?22:08
blackburnwhat is source and dest?22:08
@sonney2kbecause lab is the argument we want to set22:08
blackburnoh shit22:08
@sonney2kplease check too22:09
blackburnthis method makes no sense AT ALL22:09
@sonney2kbut I feel rather certain22:09
n4nd0I must admit I read it and thought the correction was ok22:09
PhilTillethi sonney2k :)22:09
blackburnsonney2k: how can it set *lab*??22:09
blackburnI thought it sets labels with lab22:10
@sonney2kblackburn, labels is the member variable that is inited with lab.vlen22:10
@sonney2kand then it calls the function set_int_label()22:10
@sonney2kwhich sets each individual label22:10
@sonney2kPhilTillet, hi - btw I also have concerns with
blackburnagain, what is source?22:11
@sonney2kblackburn, soo patch is wrong22:11
blackburnsonney2k: is 'lab' a source for labels and 'labels' a destination?22:11
PhilTilletwell, with dsdot instead of ddot22:11
@sonney2kPhilTillet, you use cblas_ddot for single precision floats in your patch22:11
blackburnsonney2k: it is fixed already22:11
@sonney2kPhilTillet, ahh22:11
PhilTilletthere were other precision mistakes on my GPU Code but they are fixed too22:12
PhilTilletnow the precision is satisfactory22:12
@sonney2kPhilTillet, but why use a double internally? I mean it was OK before22:12
@sonney2kblackburn, yes22:12
PhilTilletsonney2k, well, no, the dot product is computed in single precision22:13
PhilTilletto be stored in a SGMatrix<float64_t>22:13
PhilTilletwhich is the kernel matrix22:13
blackburnsonney2k: dot is double internally and it is rather ok to use dsdot there22:13
blackburn(I think)22:13
@sonney2kPhilTillet, I think the best fix would be to use float32_t r=0; internally22:14
PhilTilletwhy losing precision on the dot product?22:14
PhilTilletI mean, I understand the need to store features in float32_t22:15
PhilTilletto save memory22:15
@sonney2kfeatures are float32 anyways so it doesn't really matter much22:15
PhilTilletbut scalars should be computed in double precision in my opinion22:15
PhilTilletthe big error came from here22:15
@sonney2kPhilTillet, it is also much faster of course to add things to float32_ts from float32_ts ...22:15
@sonney2kPhilTillet, I don't understand how that could be? I mean you could use double features and so the error should be gone or?22:16
n4nd0sonney2k: just to give my opinion, I think that the patch of the labels was OK, the change was right22:16
blackburnI second this :D22:16
PhilTilletsonney2k, yes, I could use double features and the error was gone22:16
PhilTilletbut it means double memory22:17
blackburnsonney2k: do you think is it so much slower to accumulate in double?22:17
@sonney2kblackburn, so what about the label patch? do you agree that the patch is wrong?22:17
blackburnsonney2k: no, it looks right for me22:17
@sonney2kblackburn, then lets go over it again22:18
@sonney2klab is the input22:18
-!- n4nd0 [] has quit [Read error: Connection reset by peer]22:18
@sonney2kthen the member variable labels is created uninitialized with len lab.vlen22:18
@sonney2kblackburn, OK?22:18
-!- n4nd0 [] has joined #shogun22:18
n4nd0sorry lost internet22:18
n4nd0I missed the stuff after my message (if sth happened)22:19
@sonney2kso then what we want to do is tranfer the content of lab to labels right?22:19
n4nd0sonney2k: yes22:19
PhilTilletsonney2k, I'll benchmark the use of float vs the use of double22:19
blackburnsonney2k: exactly22:19
@sonney2kso we need to call set_int_label(i, lab.vector[i]);22:19
@sonney2knot set_int_label(i, labels.vector[i]);22:19
blackburnyes exactly22:19
n4nd0sonney2k: yes22:19
@sonney2kbecause labels is uninitialized22:19
blackburnthat patch is was about that actually22:19
n4nd0sonney2k: exactly22:19
blackburnit changed labels to lab22:19
blackburnin set22:20
@sonney2kOK then :)22:20
@sonney2kmy bad :D22:20
@sonney2kso back to the dot thing22:20
blackburnsonney2k: moving back to dot thing I would suggest to measure22:20
@sonney2kI am pretty sure that sse will parallelize the operation if one uses float32's22:21
blackburnPhilTillet is already planning to :D22:21
@sonney2kbut it cannot with double22:21
@sonney2ks/parallelize/use the sse instruction to do 4 such multiplications at once/22:21
blackburnyou point is reasonable but lets check22:22
@sonney2kPhilTillet, benchmarking is a good idea - nevertheless when you use double everything should look fine right?22:22
@sonney2kI mean very little error (1e-14 ...)22:22
blackburnsonney2k: do we need another linux buildbot?22:23
blackburnsonney2k: ah yes I'll get opencl compatible card soon so will be able to test things too22:24
@sonney2kblackburn, we can build with opencl support even on machines that don't have a GPU22:25
@sonney2kit will just be much slower when the opencl stuff is done by the CPU22:26
blackburnI see but I meant to test performance as well as you22:27
@sonney2kblackburn, btw I liked your git summary mail - maybe you should put it as README.git into the repository22:27
blackburnok, makes sense22:27
blackburnbut a little later22:27
blackburnwould need to elaborate it probably22:27
@sonney2kand btw it makes a lot of sense to get us to use git commit --amend22:27
@sonney2kblackburn, no - please put it there22:27
blackburnsonney2k: I'd rather avoid amends22:28
@sonney2kthen we can iterate22:28
@sonney2kcurrently most commits have a broken commit followed by a hot fix22:28
@sonney2kso buildbot fails every second time22:28
@sonney2kexactly what amend will fix22:28
blackburnsonney2k: amend makes sense *only* before pushign22:28
@sonney2kof course22:29
blackburnso it would rather cause problems22:29
@sonney2kif you notice that you forgot to add a file or broke the test suite22:29
blackburnyes that's ok22:29
@sonney2kyou should rather commit your next commit with --amend to fix it22:29
blackburnbut if you amend by mistake..22:29
blackburnand pushed it before22:30
blackburnoh that's pain22:30
@sonney2kthen you git reset hard and done22:30
blackburnmy point is to ask devs to consider bigger commits22:30
n4nd0I have changed to large commits, let's see if the new stuff doesn't break this time22:30
blackburnthat do not bring shogun uncompileable22:30
@sonney2kI like small commits22:31
blackburnand use amend in case of mistakes22:31
@sonney2kbut every single commit should compile and pass test suite22:31
blackburnyes exactly22:31
@sonney2kand that is what we don't have currenlty22:31
@sonney2kwe have often huge pull requests with 10 commits which are in fact one and 5 of the 10 don't build22:31
blackburnit is my practice actually22:31
blackburnnot broken commits :D22:32
@sonney2kso merging these together before issuing a pull request is a good idea22:32
blackburnsonney2k: can you remember by heart the date of slots being announced?22:32
blackburnbut after deadline right?22:33
@sonney2kafter we ranked students IIRC22:33
@sonney2kso somewhen mid april I think22:33
n4nd0sonney2k: what expectations do you have about slots?22:34
blackburnI pray for 822:34
@sonney2k15 proposals by now22:34
n4nd0blackburn: would be really nice22:34
blackburn(whie being an atheist) hah22:34
blackburnsonney2k: much lesser than year before, right?22:34
@sonney2kyes a lot less22:35
blackburnlast year it was 6022:35
blackburnor so22:35
@sonney2kit paid of to require patches22:35
@sonney2k>70 even22:35
-!- gsomix [~gsomix@] has joined #shogun22:35
n4nd0anyway, there are still five days left22:35
blackburnthat's probably bad we have a lot less proposals22:35
n4nd0and I guess this is a bit like homework, waiting to the last moment! haha22:36
@sonney2kcould mean fewer slots - no idea. proposals have much higher quality though22:36
gsomixsonney2k, moin.22:36
blackburnyes but do they ask about quality?22:36
n4nd0blackburn: if the number is a problem we can each send 20 proposals for shogun :P22:37
blackburngreat idea lol22:37
blackburnfunny if it *really* makes sense hahah22:38
n4nd0would be kind of sad if it makes I'd say22:39
blackburnsonney2k: do you mind contact carol about that?22:39
blackburn<=5 would be catastrophic22:41
n4nd0blackburn: I thought of it today, it would be really so22:41
n4nd0let's see if we can do sth to improve the number of slots22:42
n4nd0but no idea what do they base it on22:42
n4nd0but how does this stuff work actually22:43
blackburnno chance we will get all 922:43
n4nd0google says to each organization22:43
n4nd0of you got 5, and you 3 and you ...22:43
n4nd0and the org. chooses which students do the project22:43
n4nd0or google says this three students do it22:44
blackburnonly slots22:44
n4nd0got it22:44
blackburnorg does all the ranking22:44
harshit_sonney2k: are you around ?22:44
n4nd0blackburn: they are talking in #gsoc about it if you want to check22:45
@sonney2kn4nd0, yeah I asked there...22:45
-!- PhilTillet [] has quit [Remote host closed the connection]22:46
n4nd0sonney2k: :)22:46
harshit_sonney2k: what all dot features can I include as part of my proposal, apart from local binary pattern features22:47
harshit_and lbp which implementation do you think would be best to port , i think opencv has got a nice one which we can use22:48
blackburnah no logs there22:49
gsomixsonney2k, it seems I solved the problem with modelselections tests and python3.22:49
blackburnn4nd0: could you paste to it to directly me? ;)22:49
n4nd0blackburn: sure22:50
@sonney2kharshit_, blackburn how about wikings new preprocessor as dorfeatures?22:50
blackburnmakes sence22:50
@sonney2kgsomix, nice - so what is missing now? conversion of examples with 2to3?22:51
harshit_whats wiking preprocessor ? is there any reference for that ?22:51
blackburnyes, check the doc22:52
@sonney2kblackburn, n4nd0 - that's the essence
blackburnyes checking22:52
n4nd0let's see22:53
blackburnsonney2k: 1) 2) fits pretty well22:53
gsomixsonney2k, hmm. I'm working on the problem with the types and typecodes now.22:55
n4nd0blackburn: I mean if they really take into account students that stay in the project22:55
n4nd0blackburn: we ge 20 at least with your work ;)22:55
blackburnn4nd0: yes no idea how they track that22:55
nickonI guess you have 16 proposals by now :) I just submitted my application, just to let you guys know22:56
n4nd0blackburn: 4 is nice for us too22:56
@sonney2kunfortunately I totally forgot when we got student applications last year22:56
blackburnsonney2k: what do you mean 'when we got'?22:57
@sonney2kI recall there were very few in the beginning but then some explosion in #applications towards the deadlines22:57
@sonney2kso many that it became a huge problem to even read them all...22:57
-!- PhilTillet [] has joined #shogun22:58
gsomixsonney2k, typecode of NPY_INT32 is not equal to typecode of NPY_INT. I want to completely verify types and typecodes.22:58
@sonney2kso I hope we will have around *manageable* 3022:58
n4nd0I think much more will come in the last days22:58
PhilTilletsonney2k, you were super right22:58
n4nd0but anyway, reading this22:58
@sonney2kat least once... :D22:58
n4nd0 E.g., if an organization receives 20% of the total applications for the program, then they'll receive ~20% of the student slots for the program22:58
PhilTilletdsdot was 2 times slower than sdot22:58
blackburn2 times?!22:58
PhilTilleton my mobile CPU yes22:58
n4nd0I said it before half joking but ... may it help if we send more applications for fun?22:59
@sonney2kPhilTillet, makes sense - sse can do 4 ops instead of 2 in one go22:59
blackburnsonney2k: PhilTillet: so shall I restore it to sdot?22:59
@sonney2kn4nd0, no22:59
PhilTilletblackburn, yes :D22:59
n4nd0sonney2k: idea disregarded then22:59
blackburnhere you go23:00
CIA-64shogun: Sergey Lisitsyn master * r3518f6d / src/shogun/mathematics/Math.cpp : Restored sdot at float32_t dot -
harshit_blackburn : whats wiking's preprocessor ?23:00
blackburnharshit_: HomogeneousKernelMap23:00
@sonney2kPhilTillet, but still if you run everything in double you should get high precision23:00
PhilTilletyes, I did23:00
@sonney2kharshit_, btw did you test your new newtonsvm code? does it still produce the same result like the matlab one?23:01
@sonney2kPhilTillet, and?23:01
PhilTilletwell I did it long ago, and made some fixes since them on precision, I just remember it was much slower :p23:01
PhilTilleti'll retry it now that I have done some fixes23:01
harshit_sonney2k:yes, it is producing same result for the final weight vector23:01
harshit_sonney2k : but there is one concern that i mentioned earlier23:02
harshit_the problem with float64_t precision23:02
harshit_need some way to use floatmax_t in matrix multiplication23:03
blackburnwhoa I can't believe it operates on such small precision23:05
harshit_Actually it doesn't change the final weight vector or bias, but restricts the no. of iterations23:05
@sonney2kharshit_, what do you need floatmax for?23:07
harshit_for calculating 2 values , and then taking ratio of those 2 values23:08
harshit_in float64_t 2 values become almost zero, so there ratio turns out to be undefined23:09
harshit_have a look :
harshit_in line no 14 and 13, two variables namely g and h are being computed23:11
harshit_that turns out to be about 2 in last iteration in matlab23:12
harshit_but in C++ it is 023:12
blackburnthere should be a way to avoid underflow..23:12
blackburnharshit_: what are values you divide there?23:15
@sonney2kharshit_, wait if you print out g and h in matlab and in C++ over the course of optimizations - what is going on?23:15
@sonney2kyou should see when/how these numbers deviate ...23:15
n4nd0blackburn: once I used some scaling method for HMMs, it might work here to avoid underflow23:16
harshit_the deviation is only in the last iteration23:16
harshit_when h and g becomes very small23:16
harshit_in MATLAB they are of order 1e-3123:16
@sonney2kharshit_, is the deviation in  h and g visible?23:16
harshit_yes, but only in last iteration23:17
blackburnshouldn't it stop on this g(radient?)23:17
harshit_actually the last iteration i am talking about is the loop which is calling line_search_linear23:17
harshit_blackburn : yeah it stops23:18
harshit_but the value of t is what troubles me23:18
harshit_ohhh wait.. they are vector multiplications not matrix23:19
harshit_So i can make use of dense_dot here23:20
harshit_right ?23:20
blackburnyes if this vector is in train set23:20
harshit_sorry CMath::dot23:20
blackburn(this you want to dot with)23:20
@sonney2kharshit_, which exact formula are you talking about?23:24
harshit_which formula are you asking for, in matlab code or my C++ code ?23:26
harshit_in matlab it is in line 13 and 1423:27
harshit_i want to make use of floatmax_t as datatype for g and h23:27
harshit_and also for the variables it is dependent upon23:28
blackburnoh how I love this meanless names in matlab code23:28
blackburnASDASD[asdsadas] = adasdrewrq/;sad23:29
harshit_so wikings paper is the one which is going to be published in ieee pami23:31
harshit_sorry ieee cvpr23:31
harshit_sorry once again : is published *23:32
blackburnyes, it was published there23:32
harshit_btw, who is wiking23:32
harshit_andrea or andrew23:33
@sonney2kharshit_, so how much are g and h deviating C++ vs matlab I mean?23:33
blackburnharshit_: no he is not the author23:35
blackburnhe just implemented it23:35
harshit_wait i'll give you a complete picture of what is going on23:35
harshit_Recompiling shogun,taking time :(23:40
@sonney2kharshit_, install ccache!23:41
@sonney2kthat really speeds up things - and compile with --disable-optimizations23:41
n4nd0oh! didn't know about ccache23:42
n4nd0the description looks promising23:42
n4nd0sonney2k: thank you very much :)23:42
harshit_didnt knw abt that23:42
-!- gsomix [~gsomix@] has quit [Read error: Operation timed out]23:42
CIA-64shogun: Soeren Sonnenburg master * r72e11b3 / (66 files in 5 dirs):23:44
CIA-64shogun: Merge pull request #402 from shelhamer/add-param-macro23:44
CIA-64shogun: Convert parameter assignments to SG_ADD macro -
-!- nickon [] has quit [Quit: ( :: NoNameScript 4.22 :: )]23:47
-!- gsomix [~gsomix@] has joined #shogun23:47
blackburnsonney2k: it looks like liblinear did not release yesterday23:54
blackburnuh that was a nice tradition23:55
-!- PhilTillet [] has quit [Ping timeout: 244 seconds]23:55
harshit_sorry for such a long delay23:56
harshit_here is output comparison for toy dataset23:56
@sonney2kharshit_, could you please print using %.16g ?23:58
@sonney2kotherwise we don't know the exact numbers23:58
@sonney2kharshit_, and from matlab use format long G23:59
@sonney2kto get the high resolution values?23:59
--- Log closed Mon Apr 02 00:00:13 2012