Open in new window / Try shogun cloud
--- Log opened Tue Jul 23 00:00:43 2013
-!- iglesiasg [] has joined #shogun00:49
-!- mode/#shogun [+o iglesiasg] by ChanServ00:49
-!- Netsplit *.net <-> *.split quits: shogun-notifier-01:00
-!- shogun-buildbot [] has quit [Ping timeout: 240 seconds]01:28
-!- shogun-buildbot [] has joined #shogun01:30
-!- pickle27 [] has quit [Quit: Leaving]01:38
-!- nube [~rho@] has quit [Ping timeout: 246 seconds]02:18
shogun-buildbotbuild #401 of nightly_all is complete: Failure [failed compile]  Build details are at
-!- Yanglittle [b74040fc@gateway/web/freenode/ip.] has quit [Quit: Page closed]03:25
shogun-buildbotbuild #466 of nightly_default is complete: Failure [failed test]  Build details are at
-!- zxtx [] has quit [Ping timeout: 256 seconds]05:05
-!- nube [~rho@] has joined #shogun05:57
-!- hushell [] has quit [Quit: WeeChat 0.3.7]06:00
-!- hushell [] has joined #shogun06:06
gsomixgood morning06:17
-!- zxtx [] has joined #shogun06:48
-!- foulwall [~user@2001:da8:215:503:181f:cc72:682:e173] has joined #shogun07:04
-!- foulwall` [~user@2001:da8:215:503:e925:be30:a892:cbf3] has joined #shogun07:24
-!- foulwall [~user@2001:da8:215:503:181f:cc72:682:e173] has quit [Ping timeout: 264 seconds]07:24
gsomixsonney2k, can we try merge my code part by part? first small part is on github now.08:23
-!- foulwall` [~user@2001:da8:215:503:e925:be30:a892:cbf3] has quit [Ping timeout: 245 seconds]08:30
-!- foulwall` [~user@2001:da8:215:503:6871:a4b:3479:3809] has joined #shogun08:40
-!- gsomix_ [~gsomix@] has joined #shogun08:44
-!- gsomix [~gsomix@] has quit [Ping timeout: 245 seconds]08:47
-!- hushell [] has quit [Ping timeout: 264 seconds]09:02
-!- gsomix_ is now known as gsomix09:05
-!- gsomix [~gsomix@] has quit [Remote host closed the connection]09:18
-!- lambday [67157f4d@gateway/web/freenode/ip.] has joined #shogun09:21
@iglesiasggood morning09:31
-!- nube [~rho@] has quit [Quit: Leaving.]09:34
-!- nube [~rho@] has joined #shogun09:34
-!- iglesiasg [] has quit [Quit: Leaving]09:42
-!- iglesiasg [] has joined #shogun09:46
-!- mode/#shogun [+o iglesiasg] by ChanServ09:46
-!- lambday [67157f4d@gateway/web/freenode/ip.] has quit [Ping timeout: 250 seconds]10:00
-!- foulwall` [~user@2001:da8:215:503:6871:a4b:3479:3809] has quit [Read error: Connection reset by peer]10:37
-!- foulwall` [~user@2001:da8:215:503:6871:a4b:3479:3809] has joined #shogun10:41
thoralfsonney2k: clang 3.2, but never used.  Why?10:48
@iglesiasgthoralf: I think it was to try out that it compiles fine with the last changes in the compile flags for c++1111:07
thoralfiglesiasg: Thanks, I see.11:11
thoralfiglesiasg: About your comment on #122411:14
thoralfiglesiasg: I think the difference is between o->method(&object_from_stack) and o->method(object_from_stack)11:15
thoralfiglesiasg: The latter one does not have "my" problem.  Only the first one: When getting the reference to this object, the reference counts won't be maintained.11:16
@iglesiasgthoralf: I see11:20
@iglesiasgthoralf: so objec_from_stack->method() is fine as well11:21
thoralfiglesiasg: you probably mean objec_from_stack.method()11:22
thoralfiglesiasg: Otherwise it's on the heap.11:22
@iglesiasgthoralf: indeed :)11:22
@iglesiasgwith . not ->11:22
@iglesiasgthoralf: then it is fine to use it as in Hushell's pR11:23
thoralfiglesiasg: I think you can do everything with objects on heap/stack.  Only giving away the reference for stack-objects is problematic.11:23
thoralfiglesiasg: Yes, I think so.11:23
@iglesiasgthoralf: all right, thank you!11:23
-!- van51 [] has joined #shogun11:37
-!- HeikoS [] has joined #shogun11:43
-!- mode/#shogun [+o HeikoS] by ChanServ11:43
@HeikoSiglesiasg: around?12:01
@iglesiasgHeikoS: yeah12:02
-!- lambday [67157d36@gateway/web/freenode/ip.] has joined #shogun12:04
lambdayHeikoS: hi12:05
@HeikoSlambday:  hi!12:05
lambdayHeikoS: I coded up COCG_M, now writing tests12:05
lambdayHeikoS: but I have a big doubt12:05
@HeikoSlambday: yes?12:06
lambdayHeikoS: in the iteration, they apply real linear operator A to vector p, and then compute p'Ap12:06
lambdayso, if p and A are real, then how does it make a difference whether we use or p.transpose()*Ap12:07
@HeikoSlambday: linear algebra, dont know try it with an example ;)12:07
lambdayHeikoS: well, for complex, it does! I checked! but for real I think they are same :-/12:08
lambdaybecause for dot, they have to take the conjugate of p or something like that12:08
@HeikoSlambday: what are the consequences?12:09
lambdayHeikoS: consequence is, if for this case (real linear operator with real vector but complex shift) dot is same as the other one, then we won't have to call it COCG_M.. it will become just CG_M12:10
lambdayI'll check whether they give same results for both of these12:10
@HeikoSlambday: ahh I see12:10
@HeikoSyeah better check this :)12:11
lambdayHeikoS: oh and the meeting is tonight, right? 19:00 GMT?12:11
@HeikoSlambday: yes tonight12:11
lambdayHeikoS: what will be the topic? you said its really crucial for us to pass the mid-term12:11
@HeikoSlambday: organisational12:12
@HeikoSis everyone on track? problems? progress?12:12
@HeikoSwhat does the mid-term mean?12:12
@HeikoShow are the example ideas going?12:12
@HeikoSipython notebook examples12:13
-!- gsomix [~Miranda@] has joined #shogun12:13
gsomixhey guys12:13
lambdayHeikoS: ipython notebook example?12:13
lambdaygsomix: hi :)12:14
@HeikoSlambday: yes, we want all students to write one :)12:14
lambdayHeikoS: okay...12:14
@HeikoSlambday: remember everyone should do a big example?12:14
@HeikoSin addition to small illustrating ones? the big one should be in the form of such a notebook12:14
@HeikoSlike a report for gsoc12:15
lambdayHeikoS: yes... ours will be on the huge sparse matrix12:15
lambdayHeikoS: alright... gotcha12:15
gsomixcan I help with get_name methods in classes? it breaks many unit-tests.12:15
lambdaygsomix: I fixed another one... will add in the next PR12:15
@HeikoSgsomix: I will check the unit tests now, it might be that I need help :)12:15
@HeikoSlambday:  did you do any recent changes to sparse features?12:27
@HeikoSunit test fails, but did not before12:28
lambdayHeikoS: I added complex12:28
lambdayHeikoS: which one fails?12:28
@HeikoSlambday: what do the unit tests on your machine do=?12:28
lambdayHeikoS: I'm checking12:29
-!- lisitsyn [] has joined #shogun12:29
lambdayHeikoS: mine gives segfaults in ProductKernelTest.test_array_operations and does not progress any further :(12:30
@HeikoSlambday: do you have the latest gut12:30
@HeikoSand make clean in tests before?12:31
lambdayyes just did a git pull12:31
lambdaychecking again12:31
-!- iglesiasg [] has quit [Quit: Leaving]12:35
lambdayHeikoS: yes.. it gives segfaults..12:35
@HeikoSwill try to fix it12:35
lambdayHeikoS: but I added that before the clone unit-tests12:35
lambdayit didn't give this fault that time :(12:35
@sonney2kfoulwall`, ping12:35
@HeikoSlambday: I know I wrote these tests 2 weeks ago and they worked12:36
@HeikoSah I should not have let the unit tests fail for so long :(12:36
@HeikoSnow its hard to detect where this came from12:36
lambdaywhen I added complex for sparse features, these all were still good12:37
lambdayI didn't change anything in past 1 week in that I guess12:37
@HeikoSthanks for checking12:38
lambdayHeikoS: no problem.. let me know if I can do anything :(12:39
@HeikoSfoun dit12:41
lambdaywhat was it?12:42
@HeikoSchanges in sparse features12:43
@HeikoSthere are more problems12:43
@HeikoSgood that we have some tests12:43
@sonney2kHeikoS, hey...12:49
@HeikoSsonney2k: hi12:50
@HeikoSsonney2k: oh man, I will fix the tests asap now12:50
@HeikoSsome things already slipped through12:50
@sonney2kvan51, maybe having some shared thing similar to the tokenizers could help doing linear -> quadratic12:50
@HeikoSsonney2k: maybe we should disable the equals tests for now12:51
@HeikoSuntil they work12:51
@sonney2kHeikoS, the other options is disable12:51
@HeikoSsonney2k: yeah maybe thats a good idea12:51
@HeikoSsonney2k: do you know how to do that?12:51
@sonney2kHeikoS, well I if you tell me what fails I just put the classes in some blacklist12:52
@HeikoSsonney2k: no thats not the way to go12:52
@HeikoSjust disable the automated ones12:52
@HeikoSshould be fine12:52
@sonney2kHeikoS, no it is the way to go so... we then know the failing tests12:52
@sonney2kand can one by one fix them12:52
@sonney2kHeikoS, good luck12:52
@sonney2kI have yet to see a cloud here12:53
@HeikoShaha :)12:53
@HeikoSsonney2k: no its better to work on the equals tests at once12:53
@HeikoSthey are not stable yet12:53
van51sonney2k: hmm like a combiner?12:53
@HeikoSdisable all of them and try to fix before acitvating12:53
@sonney2kgsomix, thanks a lot! much easier to digest12:54
van51sonney2k: are you referring to the case Benoit mentioned or in general?12:54
@HeikoSwiking: around?12:54
@sonney2kvan51, like a CPreprocessor12:54
-!- shogun-notifier- [] has joined #shogun12:54
shogun-notifier-shogun: Evgeniy Andreev :develop * 865c0ea / / (3 files):
shogun-notifier-shogun: added convert_to_matrix method in SGVector12:54
shogun-notifier-shogun: Soeren Sonnenburg :develop * 68cbe6a / / (3 files):
shogun-notifier-shogun: Merge pull request #1271 from gsomix/feature/linereader12:54
shogun-notifier-shogun: SGVector: convert_to_matrix method12:54
gsomixsonney2k: ok. next part will be little later.12:55
gsomixsonney2k: I'm so sorry for this. =___=12:55
@sonney2kvan51, no benoit's speedup is excellent12:55
@sonney2kvan51, apart from that it is exactly like you do it12:55
van51sonney2k: yeah I think it could be done in a CPreprocessor12:55
van51sonney2k: it is very costly though in dense features..12:55
@sonney2kvan51, I am just thinking of a framework that we can add to DotFeatures to compute other stuff12:56
@sonney2klike quadratic features or the normalization you did12:56
van51sonney2k: yea sure I'm all for that12:57
@sonney2kvan51, anyway for now do the quadratic features as you do them12:57
van51sonney2k: I've got a question12:58
@sonney2kvan51, shoot12:58
van51sonney2k: you suggested yesterday to compare the results to  PolyKernel12:58
van51and that's what I tried to do in the example12:58
van51sonney2k: I think I also computed the terms like you said12:58
gsomixsonney2k: HeikoS is meeting today?12:59
@HeikoSgsomix: yes12:59
@sonney2kvan51, and?12:59
gsomixHeikoS: UTC?12:59
van51sonney2k: the quadratic version is much slower12:59
van51especially in high dimensional data12:59
@HeikoSgsomix: see email12:59
van51but that's expected I guess12:59
gsomixah, thanks12:59
@HeikoSgsomix: sorry dont know it by heart13:00
van51for how well they do now13:00
van51should I test them on the same machine, with the same settings?13:00
@sonney2kHeikoS, yay!
@sonney2kthat's ours13:00
van51sonney2k: what I did was to use a linear machine again, svmocas, but it depends on the settings13:00
@HeikoSsonney2k: our webserver?13:01
@HeikoSgood luck we are open-source13:01
@sonney2kvan51, ahh no do it differently13:04
@sonney2kvan51, create a very small example with 3 features / 2 examples13:06
@sonney2kvan51, then compute the PolyKernel (get_kernel_matrix())13:06
@sonney2kvan51, but don't use any normalization13:07
@sonney2kvan51, this polykernel has degree 213:07
shogun-buildbotbuild #1497 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Soeren Sonnenburg <>13:08
@sonney2kvan51, then use the dotfeatures and also compute the polykernel w/o normalization for degree=1 !13:09
@sonney2kvan51, elements of the two matrices should be the same then13:09
@sonney2klambday, I have an issue - with c++11 the diag[i].imag()-=0.75 in the test no longer works - do you know what the syntax for c++11 is?13:11
van51sonney2k: ok got it :)13:12
shogun-buildbotbuild #1496 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Evgeniy Andreev <>13:13
-!- iglesiasg [~iglesias@2001:6b0:1:1da0:5d1b:df57:7823:9146] has joined #shogun13:17
-!- mode/#shogun [+o iglesiasg] by ChanServ13:17
gsomixshogun-buildbot: leave me alone! :313:20
-!- travis-ci [] has joined #shogun13:21
travis-ci[travis-ci] it's Soeren Sonnenburg's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun:
-!- travis-ci [] has left #shogun []13:21
@sonney2kHeikoS, I cannot sense any luck here...13:23
@HeikoSsonney2k: ?13:23
@HeikoSsonney2k: just fixed another 5 bugs13:23
@HeikoSgetting there13:23
@HeikoSbut its a lot of work alone13:24
@HeikoSsonney2k: is multiclass svm abstract?13:24
shogun-notifier-shogun: Soeren Sonnenburg :develop * 36595b2 / tests/unit/mathematics/logdet/
@sonney2kHeikoS, please push them!13:24
shogun-notifier-shogun: fix c++11 compile error13:24
@HeikoSlambday: around?13:28
@HeikoSlambday: please have a look into sparse features how the feature matrix is registered as a parameter13:29
@HeikoSthis work13:29
@HeikoSthe way in SparseMatrixOperator does not13:29
@HeikoSI will fix it13:29
thoralfWhen I'm running "make -C shogun check-examples-r_static" in src, it recompiles everything, even if I just did a fresh build.13:31
thoralfAnyone knows why?13:31
thoralfIs there a special reason?13:31
@sonney2kthoralf, it recompiles the examples always yes13:31
shogun-notifier-shogun: Heiko Strathmann :develop * 1db31c8 / / (2 files):
shogun-notifier-shogun: fixed some crashes in sparse features unit tests13:31
shogun-notifier-shogun: Heiko Strathmann :develop * 97eb3ac / src/shogun/base/Parameter.cpp:
shogun-notifier-shogun: fixed a memory issue related to uninitialised memory which should be NULL13:31
shogun-notifier-shogun: Heiko Strathmann :develop * e5f8b63 / src/shogun/mathematics/logdet/SparseMatrixOperator.cpp:
shogun-notifier-shogun: changed sparse matrix parameter registering13:31
shogun-notifier-shogun: Heiko Strathmann :develop * d3697bf / / (4 files):
shogun-notifier-shogun: Merge pull request #1274 from karlnapf/develop13:31
shogun-notifier-shogun: Fix segfaults in unit tests13:31
thoralfsonney2k: No, not only the examples.  Even the library.13:32
@sonney2kno way13:32
@sonney2kthoralf, only if you git pull inbetween13:32
thoralfsonney2k: Even if I'm calling "make -C shogun check-examples-r_static" two times consecutively, it re-builds the library on the second call.13:34
thoralfsonney2k: No git operation in between.13:34
shogun-buildbotbuild #1499 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Heiko Strathmann <>13:38
shogun-buildbotbuild #1500 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Heiko Strathmann <>13:42
shogun-buildbotbuild #1498 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Soeren Sonnenburg <>13:42
thoralfsonney2k: Okay, autosave touched the timestamp of the Makefile.13:42
@sonney2kthoralf, hah!13:43
@sonney2kHeikoS, I don't understand why tests fail just now? The sparse change is from June 11 ...13:43
-!- gsomix [~Miranda@] has quit [Quit: Miranda IM! Smaller, Faster, Easier.]13:43
@HeikoSsonney2k: I hav eno idea13:43
@HeikoSsonney2k: but that caused it13:44
@HeikoSsonney2k:  fixed it anyways13:44
@HeikoSI am confident currently13:44
@HeikoSnot many more fial13:44
@HeikoSnone crashes13:44
@sonney2kstuff still crashes here13:45
@sonney2kfoulwall`, please don't allow uploading of images... some fixed examples are sufficient13:45
-!- iglesiasg [~iglesias@2001:6b0:1:1da0:5d1b:df57:7823:9146] has quit [Ping timeout: 245 seconds]13:45
@HeikoSsonney2k: /home/heiko/Desktop/shogun/shogun/src/shogun/../shogun/lib/Set.h:73: undefined reference to `void shogun::CSGObject::set_generic<shogun::CFeatures*>()'13:48
@HeikoScollect2: error: ld returned 1 exit status13:48
@HeikoSsonney2k: how to handle this?13:49
shogun-notifier-shogun: van51 :develop * 58c758e / src/shogun/features/ (9 files):
shogun-notifier-shogun: Fixed implicit conversion to NULL warnings13:49
shogun-notifier-shogun: Soeren Sonnenburg :develop * 78303d0 / src/shogun/features/ (9 files):
shogun-notifier-shogun: Merge pull request #1272 from van51/develop13:49
shogun-notifier-shogun: Fixed travis warnings for implicit conversion from NULL to bool13:49
@sonney2kHeikoS, where does this happen?13:50
@HeikoSset_generic for Set.h is not called13:51
@HeikoSthis is what I get when I try to add the call13:51
shogun-buildbotbuild #1501 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: van51 <>13:52
@sonney2kHeikoS, the only fix is to add to shogun/base/SGObject.cpp13:53
@sonney2ktemplate<> void CSGObject::set_generic<CFeatures*>()13:53
@HeikoSsonney2k: this is ridiculus13:54
@HeikoSwe cannot add this for all classes13:54
@sonney2kHeikoS, maybe template<> void CSGObject::set_generic<CSGObject*>() will work13:55
-!- iglesiasg [~iglesias@2001:6b0:1:1041:d38:c6f9:14dc:bce8] has joined #shogun13:57
-!- mode/#shogun [+o iglesiasg] by ChanServ13:57
@sonney2kHeikoS, does it?13:59
@HeikoSsonney2k: fixing other things13:59
@HeikoSman the eternal stream of bugs13:59
@sonney2kHeikoS, ok committing that then14:05
shogun-buildbotbuild #1502 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Soeren Sonnenburg <>14:07
lambdaysonney2k HeikoS sorry I was away14:07
lambdaysonney2k: I remember when I added that I used c+11 syntax and it gave error14:07
lambdaysonney2k: I guess it was something like num.imag(val); for c++1114:08
lambdayHeikoS: does it create problem? I added param reg for SGSparseMatrix that's why I did it that way in CSparseMatrixOperator :(14:08
@sonney2klambday, look at what I did... we have some C++11 for some stuff now (optional...) so the old syntax was causing issues14:09
lambdaysonney2k: okay I am checking14:10
van51sonney2k: the quadratic features I m working on now, are for hashed dense features, so the resulting dot product is from the hashed representations and it's different14:13
lambdaysonney2k: its awesome14:13
@sonney2klambday, ??14:13
lambdaysonney2k: so we can use c++11 specific things? I heard that they have all those map lambda things too14:14
@sonney2kvan51, what do you get? what are the examples?14:14
@sonney2klambday, well you have to ifdef HAVE_CXX11 though and we might need to add a particular test to configure for the feature you are trying to use?14:15
van51sonney2k: ^14:15
lambdaysonney2k: as of now I am not using anything specific... but good to have that test if we can use some.. I'll try something14:16
@sonney2klambday, I use that only to have no overhead in SGReferencedData (atomic<int> for refcount is just 4 bytes)14:17
-!- nube [~rho@] has quit [Ping timeout: 276 seconds]14:18
@sonney2kvan51, that all doesn't make sense look at
@sonney2kit should be (5+1+1)**2 == 49 for the first element14:19
@sonney2k(5*5 + 1*1 + 1*1)**2 = 72914:20
@sonney2kso kernel matrix is correct14:20
lambdaysonney2k: just checked.. I am not sure what atomic does.. some sync/mutex stuffs?14:23
@sonney2kvan51, I see the bug14:24
@sonney2kvan51, let me comment it14:24
-!- nube [~rho@] has joined #shogun14:25
@sonney2klambday, yes it is guaranteed that when >1 thread do +=1 the result will be correct14:25
@sonney2klambday, otherwise we get crashes/leaks14:26
@sonney2kiglesiasg, cool you have a customer now :)14:27
@iglesiasgsonney2k, yeah! haha14:28
shogun-notifier-shogun: Soeren Sonnenburg :develop * 6681582 / src/shogun/base/SGObject.cpp:
shogun-notifier-shogun: add CSGObject as supported serialization PT14:28
van51sonney2k: I get why you say that there, but that's just the seed14:28
@iglesiasgsonney2k, let see if we get someone apart from me to do something with the structured framework14:28
van51sonney2k:  I mean the value is still hashed and discretized so the kernel matrices will still be different14:28
@sonney2kvan51, errm the value should not be hashed but the index!14:29
@sonney2ksry misread that14:29
@sonney2kvan51, we want to hash the index - the value stays v[i]*v[j]14:30
van51sonney2k: so you don't keep a counter anymore14:31
-!- nube [~rho@] has quit [Quit: Leaving.]14:31
van51sonney2k: the index is hashed for a new index and the value is added there?14:31
-!- travis-ci [] has joined #shogun14:34
travis-ci[travis-ci] it's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun:
-!- travis-ci [] has left #shogun []14:34
@iglesiasgsonney2k, I actually had come across some work by Sebastien (who asked the question) a few months ago14:35
@iglesiasgthe errata list of a book14:35
@sonney2kvan51, yes exactly14:36
@sonney2kvan51, clear or not?14:41
van51sonney2k: i get what you mean, it's just different from what I had understood in the beginning14:42
@sonney2kvan51, ok - when we explode feature spaces and compress them with hashing we do this only on the indices. so quadratic is just that14:45
@sonney2kanyway I guess now you know what to do14:45
shogun-buildbotbuild #1503 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Soeren Sonnenburg <>14:47
van51sonney2k: ok so my question is this: this addition of the value to the hashed index is also for numerical features w/o quadratic or just when you want the index of quadratic features?14:48
van51sonney2k: I mean should the default behavior of hasheddensefeatures for ints w/o quadratic be to add the value to the hashed index, or  keep a counter like it does now?14:49
-!- gsomix [~gsomix@] has joined #shogun14:50
gsomixprivet :P14:51
thoralfprivet :)14:51
gsomixsonney2k, around?14:54
@sonney2kgsomix, what's up?14:58
gsomixsonney2k, another part14:58
gsomixjust a moment14:58
-!- travis-ci [] has joined #shogun14:58
travis-ci[travis-ci] it's Soeren Sonnenburg's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun:
-!- travis-ci [] has left #shogun []14:58
@sonney2kvan51, I couldn't parse the sentence sorry - for quadratic features it is *always* like v[i]*v[j] + hash(i*size +j)15:00
@sonney2kvan51, does that explain it?15:00
gsomixsonney2k, ~500 lines :(15:01
van51sonney2k: yes I think I'm clear on quadratic features15:02
van51sonney2k: apart from them, on the simple case of using hashing on dense features of ints15:02
van51sonney2k: when you get the hashed index, you add the value of the current dimension or do you +1?15:03
van51sonney2k: from what you're saying about the quadratic features it follows to do the first15:05
van51sonney2k: but I remember asking Olivier and telling me the second15:05
@sonney2kvan51, you are thinking in terms of hashedDocFeatures now15:13
@sonney2kvan51, there v[i] = 1 for all i15:13
@sonney2kvan51, except when you normalize then it is some other constant15:13
van51sonney2k: so the current behavior of hasheddense is incorrect15:14
@sonney2kvan51, so v[i]*v[j] should be c**215:14
@sonney2kvan51, did you fix it now?15:15
van51sonney2k: not yet15:15
@sonney2kthen not :)15:15
foulwall`sonney2k: gotcha. that's easy to do without image uploading, but if the demo converts the image to matrices and downsample in the client side and just do json exchange with server, not real file upload. Can I do it in that way?15:16
van51sonney2k: I will close this PR to fix this first15:16
@sonney2kvan51, I then don't understand your question15:17
@sonney2kfoulwall`, you mean you still upload images to the server? what I don't like about it is that you have to think *HARD* about security15:18
van51sonney2k: heh15:18
van51sonney2k: I'll comment on my PR15:18
van51sonney2k: maybe on the code it will be easier to express what I mean15:19
foulwall`not the file but a json with the matrix, the convert can be done in client.15:21
@sonney2kfoulwall`, you mean a byte matrix that you check for sizes etc on the server?15:21
-!- travis-ci [] has joined #shogun15:22
travis-ci[travis-ci] it's Soeren Sonnenburg's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun:
-!- travis-ci [] has left #shogun []15:22
@sonney2kfoulwall`, I have seen people exploiting bugs like too long string in the browser url gives you a shell on the client15:22
lisitsynjust give user a choice what dataset to embed15:22
lisitsynI think that's all15:22
lisitsynand some parameters15:23
thoralflisitsyn, sonney2k: Yes, that should be enough.15:23
thoralfHave spent enough time exploiting web applications for this ;)15:23
foulwall`argh, I see.15:23
foulwall`thanks thoralf lisitsyn sonney2k , I'll make a simple one now15:24
@sonney2kgsomix, what do you need CReader for?15:25
gsomixsonney2k, interface for readers. I have one more - StringReader where source for reading is SGVector<char>.15:26
@sonney2kgsomix, I don't see the relation to CFile?15:27
@sonney2kI am just worried that CFile is already doing sth like that15:27
gsomixsonney2k, there is no relation to CFile. CFile for access to file format classes, CReader for reading ascii data from sources.15:28
gsomix*err CFile for access to file formats15:28
gsomixsonney2k, CFile reads and writes whole vectors, matrices, lists.15:28
-!- HeikoS [] has quit [Quit: Leaving.]15:30
@sonney2kgsomix, when you have an SGMatrix now and want to load it from a .csv15:30
@sonney2kgsomix, how is it done then?15:30
-!- HeikoS [] has joined #shogun15:31
-!- mode/#shogun [+o HeikoS] by ChanServ15:31
@sonney2kgsomix, I just don't get how it works15:32
gsomixsonney2k, I just should create CCSVFile object.15:32
gsomixit's in a third part of big pack15:33
@sonney2kand then you get it as result of CCSVFile or is that CCSVFile deriving from CFile?15:33
gsomixCCSVFile is inheritor of CFile15:34
gsomixand have methods for reading vectors, matrices, string lists15:34
gsomixLineReader is inheritor of CReader15:35
gsomixand have methods for reading substings and data types from file stream15:35
gsomixand CCSVFile uses CFileReader15:35
gsomixerr, FileReader is inheritor of CReader15:35
@sonney2kvan51, yes no extra treatment for wrong collisions15:39
@sonney2kvan51, for your hasheddocfeatures you might have the same n-gram appear twice - then you would need sth like this.15:41
@sonney2kgsomix, it is confusing to have CFile CFileReader and CReader :/15:42
gsomixsonney2k, hm, I can rename it. :)15:43
@sonney2kgsomix, this CReader will only read primitive types right? Also only ascii or other data later?15:43
gsomixsonney2k, only primitive types, yes. not only, we can write Reader for binary data, or for reading from net...15:44
@sonney2kgsomix, I mean it is kind of CFile but just for scalar values?15:44
gsomixsonney2k, yep15:44
gsomixI'm also implementing CWriter15:44
gsomixfor writing stuff15:44
gsomixso, there will be CReader, CWriter and complex CFile, that can use last two.15:45
@sonney2kgsomix so you would refactor CFile to have a Reader and a Writer?15:46
gsomixsonney2k, I don't think. I mean that some of objects from CFile's class can use reader and writers.15:47
gsomixso, CFile it's just interface + FILE*15:47
gsomixI hope it's not too complex architecture :/15:48
gsomixjava style15:49
@sonney2kwell I am still confused :/15:49
gsomixsonney2k, :C15:51
gsomixsonney2k, what's not clear?15:52
@sonney2kgsomix, I don't understand the benefit of these readers15:52
@sonney2kI would have expected these scalar read to be in some class derived from CFile15:52
@sonney2kand maybe on top of this some helpers15:52
gsomixsonney2k, it is convenient. look, I have FileReader (for reading lines from csv) and StringReader (for reading/tokenizing primitive types from these lines) in CCSVFile15:54
gsomixboth FileReader and StringReader have CTokenize inside for tokenizing15:54
gsomixresult -> not many code, clear15:55
-!- foulwall` [~user@2001:da8:215:503:6871:a4b:3479:3809] has quit [Ping timeout: 245 seconds]15:55
@sonney2kgsomix, maybe an example helps15:58
@sonney2kgsomix, you do csv parsing by15:58
@sonney2kreading line by line right15:58
@sonney2kthen you read the individual elements (scalar values)15:58
@sonney2kgsomix, who does what now?15:59
shogun-notifier-shogun: Heiko Strathmann :develop * 2809328 / src/shogun/ (31 files):
shogun-notifier-shogun: fixed many more unit test segfaults and non-passes. Mostly uninitialised memory, wrong get_name, wrong generic type16:00
shogun-notifier-shogun: Heiko Strathmann :develop * 496e0aa / src/shogun/ (31 files):
shogun-notifier-shogun: Merge pull request #1276 from karlnapf/develop16:00
shogun-notifier-shogun: fixed many more unit test segfaults and non-passes.16:00
gsomixline_reader is CFileReader object16:01
gsomixreader is CStringReader object16:01
gsomixso, reading line by line it's work for line_reader16:01
gsomixreading of individual elements is work for reader16:01
gsomixthis code is part of get_vector method16:02
gsomixin CCSVFile16:02
@sonney2kgsomix, but CFileReader also reads int / bool etc?16:04
@sonney2kso it is doing both? reading lines and parsing? or what is this for?16:05
@sonney2kI mean I understand that you need a line reader and some parser of a line that you have read16:05
gsomixsonney2k, yep, CFileReader can read data types16:07
gsomixmaybe it will be useful some day16:08
@HeikoSsonney2k: I added set_generic_sgobject()16:08
@HeikoSto CSGObject16:08
@HeikoSsonney2k: but we totally should forbid T=SG*16:08
@HeikoSthats evil16:08
gsomixsonney2k, reading lines it's just reading substring with '\n' delimiter16:08
gsomix*err, is16:09
@sonney2kHeikoS, does     template<> void CSGObject::set_generic<CSGObject*>() work?16:09
@HeikoSsonney2k: no16:09
gsomixsonney2k, parsing is just reading line and atoi/strtol16:09
@HeikoSonly classname itself16:09
@sonney2kHeikoS, you mean it needs the real class in there?16:09
@sonney2kHeikoS, interesting. Didn't know that16:10
@HeikoSsonney2k: ah one issu16:10
@HeikoSusing set_generic_sgobject is not good I just realise16:10
@HeikoSsince its only possible to use CSGObject classes as template argument then16:10
@sonney2kgsomix, maybe it is better to have a LineReader class that really just reads line by line and then a ParseLine class with your Reader Interface16:11
@HeikoSsonney2k: so maybe add all cases we need with the above way then?16:11
@sonney2kHeikoS, wait I mean we only want to support uint8_t ... complex* and CSGObject* right?16:11
@HeikoSah shit16:11
@HeikoSso we have to do the one by one thing16:12
@sonney2kHeikoS, ???16:12
@HeikoSsonney2k: we have to do template<> void CSGObject::set_generic<CFeatures*>()16:12
shogun-buildbotbuild #1504 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Heiko Strathmann <>16:12
@HeikoSfor each class16:12
@sonney2kHeikoS, why that?16:13
@HeikoSsonney2k: what other way?16:13
@HeikoSis there?16:13
@sonney2kHeikoS, what is wrong with your set_generic_sgobject?16:13
@sonney2kor *_object16:13
@HeikoSsonney2k: imagine CSet16:13
@HeikoSyou want to use that on PT_BOOL16:13
@HeikoSand also on PT_SGOBJECT16:13
@sonney2kall it does is just set         m_generic = PT_SGOBJECT;16:13
@HeikoSif I just call set_generic<T>() I get a problem with SGOBJECT16:14
-!- pickle27 [] has joined #shogun16:14
@sonney2kHeikoS, not in the same CSet though16:14
@HeikoSif I call set_generic_sgobject() I get a problem with PT_BOOL16:14
gsomixsonney2k, why? then LineReader is just FileReader w/o read_int, read_readl, etc methods.16:14
@sonney2kI see16:14
@HeikoSsonney2k: I have to call it in the constructor right?16:14
gsomixI just can rename it to StreamReader, for example16:14
@sonney2kyou don't know the type is what you mean16:14
@HeikoSwhere I dont know whether T is a class or a primitive type16:14
gsomixnot so confusing16:14
@HeikoSsonney2k: yes16:15
@sonney2kHeikoS, argh!16:15
* gsomix afk16:15
@HeikoSbut we did this in the CDynamicObjectArray16:15
@HeikoSsonney2k: there we said that T has to be a subclass ob CSGOBject16:15
@HeikoSthat is how it should be done in my eyes16:16
@sonney2kgsomix, but then just drop the CFileReader and keep the parser I mean why do you need the CFileReader then?16:16
@HeikoSor add one by one16:16
@HeikoSsonney2k: what do you think?16:16
@sonney2kHeikoS, true true16:16
@sonney2kthat is why we did it that way for DynamicObjectArray16:16
@sonney2kso we would need CSet and CObjectSet *shrug*16:17
@HeikoSsonney2k: yep16:17
shogun-buildbotbuild #1505 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Heiko Strathmann <>16:17
@HeikoSthere are three classes16:17
@HeikoSthat currently fail the tests here16:17
@HeikoSwhich are cause by this problem16:17
@sonney2kHeikoS, actually if CSet etc is calling SG_REF it should be named like it right?16:18
@sonney2ksame for map etc16:18
@HeikoSsonney2k: does it do that?16:18
@sonney2klets see16:18
@sonney2kso it would leak memory with CSGObject types anyways16:18
@HeikoSsonney2k: ouch16:18
@HeikoSno it does not16:18
@HeikoSand it hashes the objects16:19
@HeikoSso it hashes pointers to SGObjects16:19
@sonney2kHeikoS, yeah but just consider someone putting in objects16:19
@sonney2kthese might be gone16:19
@sonney2kif not manually REF'd16:19
@HeikoSsonney2k: so no SGObject for CSet16:19
@sonney2ksame for CMap16:19
@HeikoSok then16:20
@HeikoSso much stuff16:20
@HeikoSsonney2k: dynamicobject array is not even generic16:21
@HeikoSsonney2k: so can you de-activate a few examples for me?16:26
@HeikoSsonney2k: Set, ParseBuffer, TreeMachine16:26
shogun-notifier-shogun: Heiko Strathmann :develop * d53e415 / src/shogun/io/MemoryMappedFile.h,src/shogun/io/SimpleFile.h:
shogun-notifier-shogun: fixed generics to pass unit-tests16:29
shogun-notifier-shogun: Heiko Strathmann :develop * c48a483 / src/shogun/io/MemoryMappedFile.h,src/shogun/io/SimpleFile.h:
shogun-notifier-shogun: Merge pull request #1277 from karlnapf/develop16:29
shogun-notifier-shogun: fixed generics to pass unit-tests16:29
van51sonney2k: when you have time can you check this : ?16:29
@HeikoSsonney2k: all other unit tests work now16:29
@HeikoSjust those three classes are failing due to the above issues16:30
-!- foulwall` [~user@2001:da8:215:c252:2d09:69b3:4be7:def2] has joined #shogun16:30
@sonney2kHeikoS, you mean in the autgenerated tests right?16:31
@sonney2ksry gtg16:31
@sonney2khike time16:31
gsomixsonney2k, for the future. I mean one time we will need reading data types directly from file stream16:31
shogun-buildbotbuild #1506 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Heiko Strathmann <>16:33
lambdayHeikoS: sending a PR for CG_M16:37
thoralfHeikoS: Is there a way of checking how many references are still alive in shogun?16:46
thoralfHeikoS: I'd like to add an assertion in one of my tests... ;)16:46
shogun-buildbotbuild #1507 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Heiko Strathmann <>16:47
-!- pickle27 [] has quit [Quit: Leaving]16:56
-!- nube [~rho@] has joined #shogun17:03
-!- nube [~rho@] has quit [Read error: Connection reset by peer]17:08
-!- nube [~rho@] has joined #shogun17:09
@HeikoSlisitsyn:  around?17:15
@HeikoSlambday: checking :)17:15
@HeikoSthoralf: that is hard to to, but you can enable trace memory allocation to do this. It is not always stable though17:15
@HeikoSthoralf: please dont add assertions to your tests17:16
@HeikoSthoralf: we rather want to valgrind them at some point17:16
@iglesiasgsonney2k, wiking, lisitsyn, HeikoS: I have an old version of SWIG and SWIG 2. something in a machine, but the configure script detects the old one and fails17:17
thoralfHeikoS: No worries.  Its just for personal use.17:17
@iglesiasgany way of telling it I want to use swig2.0?17:17
@iglesiasgfrom the command line I can do without problems swig and swig2.017:18
@iglesiasgversions 1.3.29 and 2.0.4, respectively17:18
@HeikoSiglesiasg: no idea17:18
@HeikoSthoralf: so configure with --enable-trace-mallocs17:18
@HeikoSthen shogun_exit() will tell you how many objects there are and where17:19
@HeikoSthoralf: its probably possible to call this function alone17:19
thoralfHeikoS: That's great.  Thanks.17:19
lambdayHeikoS: travis build didn't start yet :-/17:21
-!- nube [~rho@] has quit [Ping timeout: 268 seconds]17:21
lambdayHeikoS: let me know if you agree to the additional interface I added to fit cg_m into CLinearSolver17:22
lambdayHeikoS: the problem was, current template structure allowed to return only real vector for solve method if we give it real operator and real vector..17:23
lambdayHeikoS: but we have additional complex shifts/weights which makes the solution vector complex...17:23
lambdayHeikoS: now converting the operator to complex each time would have been bad I think17:23
@iglesiasgHeikoS, it was just --swig=swig2.0 finally17:25
@HeikoSiglesiasg: I see :)17:25
lambdayHeikoS: so this new interface is flexible, as in, it returns complex solution, if we give it real operator, real vector but complex shifts17:25
-!- nube [~rho@] has joined #shogun17:26
@HeikoSlambday: btw I just realised these double generics will cause problems17:26
lambdayHeikoS: problem with?17:26
@iglesiasgHeikoS, I was creating an alias and putting it in .bashrc and at the end I just grep the configure file to see how the swig check is done and saw the option by chance :D17:26
@HeikoSserialisation, clone etc will not be possible17:26
@HeikoSlambday: this set_generic stuff17:26
lambdayHeikoS: but for class member vars, it only uses one generic for whatever I have added17:26
@HeikoSlambday: ah I see17:27
lambdayHeikoS: other type is for methods.. that doesn't store anything17:27
lambdayso set_generic can work, right?17:27
@HeikoSbut the instances themselves?17:27
@HeikoSalso how about python, will they be accessible form outside17:27
@HeikoSsince for python, one has to manually fix the template parameters17:27
-!- Cheng [] has joined #shogun17:28
lambdayHeikoS: which classes will we expose to python modular interface??17:28
lambdayHeikoS: most of the things are internal17:28
@HeikoSlambday: we can choose17:28
@HeikoSlambday: ok then17:28
@HeikoSthen everything is fine :)17:28
lambdayHeikoS: I am not sure :( we'll have to see :(17:28
ChengJust checking that I can log in. Will be back later.17:28
-!- Cheng [] has quit [Client Quit]17:28
@HeikoSCheng: :)17:28
lambdayHeikoS: but since class members are of same type, I don't think we'd face problem if we set generic with that type, no?17:29
@HeikoSlambday: what do you mean?17:29
shogun-notifier-shogun: root :develop * 5fc0bd0 / / (18 files):
shogun-notifier-shogun: cg_m added, template structure changed for linear solver17:29
shogun-notifier-shogun: Heiko Strathmann :develop * 0767425 / / (18 files):
shogun-notifier-shogun: Merge pull request #1278 from lambday/feature/log_determinant17:29
shogun-notifier-shogun: cg_m added, template structure changed for linear solver17:29
lambdayand mostly generics are abstract... final subclasses are mostly non-generic17:30
lambdayHeikoS: say, I used template<class T, class ST=T> class A... but its members all use T, one of its methods takes an argument may be which s ST17:30
lambdayand also, ST default is T17:31
lambdayHeikoS: will that solve the problem with python?17:31
foulwall`Cheng, got your email and replying.17:31
lambdayby "members all use T" I meant attributes...17:32
@HeikoSlambday: sorry re17:38
@HeikoSlambday: I see17:38
@HeikoSso why have this double template if you dont use it17:38
lambdayHeikoS: say, CIterativeLinearSolver is double template.. which has abstract solve(CLinearOperator<T>, SGVector<ST>), return type is SGVector<T>17:41
@HeikoSlambday: ok17:41
lambdayHeikoS: now, one of its subclass, CConjugateGradientSolver uses T=ST=float64_t17:41
@HeikoSso this class can never be serialised nor visible to python17:41
@HeikoSlambday: but it is abstract right?17:41
lambdayHeikoS: and another subclass CConjugateOrthogonalCG uses T=complex64_t, ST=float64_t17:42
@HeikoSso the subclass is not even generic17:42
@HeikoSlambday: great17:42
@HeikoSlambday: great job17:42
@HeikoSgreat latest patch also btw17:42
lambdayHeikoS: is it the right way to do it?17:42
lambdaythanks :)17:42
@HeikoSlambday: could you pls run the unit tests locally and tell me what happens?17:42
lambdayHeikoS: the only place the final child classes are double generic is CLinearOperator17:43
shogun-buildbotbuild #1508 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: root <>17:43
lambdayHeikoS: all of them?17:43
@HeikoSlambday: yes17:43
@HeikoSlambday: the linear operator is a class member though right?17:43
lambdayHeikoS: alright... checking17:43
lambdayHeikoS: yes.. but there also the matrix is of T type, so set generic uses T, but apply is like SGVector<T> CLinearOperator<T>::apply(SGVector<ST> vector);17:44
-!- van51 [] has quit [Quit: Leaving.]17:45
lambdayHeikoS: I should do a git pull again before running the tests17:45
@HeikoSyes do17:46
@HeikoSlambday: I didnt get that17:46
shogun-buildbotbuild #1509 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Heiko Strathmann <>17:48
lambdaythis is what I used17:49
lambdayits a double template class, but set generic sets T as the type17:50
lambdayjust its apply method, which is no more abstract, takes a vector of type ST as an argument, and returns another vector of type T as an argument17:50
@HeikoSwhat does template class CDenseMatrixOperator<complex64_t>; create?17:50
lambdayignore the last "as an argument"17:50
lambdayHeikoS: T=ST=complex64_t17:51
@HeikoSokay, those should be fine if set_generic<T>() was called17:51
lambdaysince default for ST is T17:51
@HeikoSbut what about template class CDenseMatrixOperator<complex64_t, float64_t>;17:51
lambdaythat calls set_generic<complex64_t> (since the matrix inside it is of complex type)17:52
@HeikoSlambday: so it should not cause any problems17:52
@HeikoSwow, thats actually quite nice17:52
lambdaybut apply can take a real vector and that complex operator can be applied and returns a complex vector17:52
@HeikoSyep I get it17:52
@HeikoSvery nice17:52
lambdaythanks :)17:52
lambdayHeikoS: CG_M unit-tests show similar performance with normal CG for those small unit-tests17:53
@HeikoSlambday: I mean at the end, people will not necessarily use all those internals but just the logdet approx class which has some default settings17:53
@HeikoSlambday: ok good!17:53
lambdayHeikoS: yes that's what I thought17:53
@HeikoSlambday: how about the unit tests?17:53
lambdayHeikoS: well, since these CG solvers of ours can work with dense matrix too.. so I thought of checking its performance before I move on to Lanczos17:54
lambdayHeikoS: oh checking :D17:54
-!- travis-ci [] has joined #shogun17:54
travis-ci[travis-ci] it's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun:
-!- travis-ci [] has left #shogun []17:54
@HeikoSlambday: ok17:54
lambdayHeikoS: do you think it would be okay to use eigen3 objects as parameters of protected methods for a "C" class?17:55
@HeikoSprotected is fine yet17:55
lambdayHeikoS: I was afraid and used SGVectors everywhere17:56
@HeikoSlambday: not optimal, but if that avoids re-computing sparse matrices, then yes do it17:56
lambdayHeikoS: no its just the vectors, I don't think SGVector instead of eigen3::Vector will slow things down that much17:56
lambdayHeikoS: the places I used didn't even need dot products or anything vector-specific - just accessing elements one by one.. so SG is fine I guess17:57
lambdayHeikoS: non-technical question - you play base guitar? :D17:58
lambdayHeikoS: btw unit-tests give segfaults for clone_equals_LineReader and stops :(17:58
@HeikoSlambday:  no it wont slow things down18:00
lambdayHeikoS: SGObject.clone_equals_SNPStringKernel too fails18:00
@HeikoSlambday: not much overhead18:00
@HeikoSI hope at least18:00
@HeikoSlambday: no, but normal guitar18:00
@HeikoSjust a bit of base guitar18:00
@HeikoSlambday: it depends how often this stuff is called, but we do not have to allocate new memory (which is slow)18:00
lisitsynHeikoS: just got back18:01
@HeikoSlisitsyn: could you disable automagic unit tests for  Set, ParseBuffer, TreeMachine18:02
lambdayHeikoS: yes.. for CG_M things, I used same memory whenever I could.. krylstat used unnecessary vectors at a few places, I didn't use them18:02
@HeikoSlisitsyn:  these are highly non-trivial to fix18:02
@HeikoSlambday: good! then we will be even faster :)18:02
@HeikoS(and more stable, tested etc)18:02
@HeikoSand interfaces18:02
@HeikoS=world dominance18:02
lambdaylol :D18:03
lambdaybut I am scared to see CG_M performing on that huge matrix :-s18:03
shogun-notifier-shogun: Heiko Strathmann :develop * 8180b78 / src/shogun/features/PolyFeatures.cpp:
shogun-notifier-shogun: fixed an uninitialised memory issue18:03
shogun-notifier-shogun: Heiko Strathmann :develop * a5e9b55 / src/shogun/io/LineReader.cpp:
shogun-notifier-shogun: fixed an uninitialised memory error18:03
shogun-notifier-shogun: Heiko Strathmann :develop * 3d97b4d / src/shogun/features/PolyFeatures.cpp,src/shogun/io/LineReader.cpp:
shogun-notifier-shogun: Merge pull request #1279 from karlnapf/develop18:03
shogun-notifier-shogun: more bugfixes18:03
@HeikoSlambday: could you pull and run again? unit tests I mean18:04
@HeikoSlambday: second half of GSoC will be tuning :)18:04
@HeikoScompiling shogun melts my computer18:05
lisitsynHeikoS: let me try18:05
@HeikoSPhysical id 0:  +97.0 C  (high = +86.0 C, crit = +100.0 C)18:05
@HeikoSCore 0:         +96.0 C  (high = +86.0 C, crit = +100.0 C)18:05
@HeikoSCore 1:         +97.0 C  (high = +86.0 C, crit = +100.0 C)18:05
lambdaywhoa! :-o18:05
@HeikoSlisitsyn: thanks!18:05
lambdayHeikoS: that's why I use insti's stuffs :D18:05
@HeikoSlisitsyn: that should hopefully then make unit tests green again18:05
lisitsynHeikoS: I think we just have to patch line 22 here18:05
@iglesiasgsee you later during the meeting guys18:05
lambdayiglesiasg: see you man :)18:06
@HeikoSlisitsyn: yes, cool, could you do that?18:06
-!- iglesiasg [~iglesias@2001:6b0:1:1041:d38:c6f9:14dc:bce8] has quit [Quit: Ex-Chat]18:06
@HeikoSiglesiasg: see you!18:06
lambdayHeikoS: we gotta think a bit about that tridiagonal solver and then coloring.. :-/18:06
lambdayHeikoS: krylstat uses colpack18:06
@HeikoSlambday: yes indeed18:07
shogun-buildbotbuild #1510 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Heiko Strathmann <>18:08
-!- nube1 [~rho@] has joined #shogun18:08
-!- nube [~rho@] has quit [Ping timeout: 248 seconds]18:08
lambdayHeikoS: doesn't give segfaults now18:09
lambdaymany tests fail but that's okay I guess?18:10
@HeikoSlambday: nice finally18:10
@HeikoSlambday: should be only three18:10
@HeikoSthree groups18:10
lambdayHeikoS: yes three groups18:10
lambdayHeikoS: well, 418:10
shogun-notifier-shogun: Sergey Lisitsyn :develop * b60493b / tests/unit/base/
shogun-notifier-shogun: Added clone test ignores18:10
lambdaySet, SNPStringKernel, ParseBuffer and TreeMachine18:11
lisitsynHeikoS: this should work18:11
lisitsynSNPStringKernel too?18:11
lambdaychecking again18:11
shogun-notifier-shogun: Heiko Strathmann :develop * b92a873 / src/shogun/ui/ (6 files):
shogun-notifier-shogun: Revert "fixed uninitialised memory bugs"18:11
shogun-notifier-shogun: This reverts commit ab0d3977de71d7f031dfc8026580c7e7a39707df.18:11
shogun-notifier-shogun: Heiko Strathmann :develop * 56ed507 / src/shogun/ (11 files):
shogun-notifier-shogun: Revert "more uninitialised memory fixed"18:11
shogun-notifier-shogun: This reverts commit 783aa89bf8711c67a125218834c135e834178de0.18:11
shogun-notifier-shogun: Heiko Strathmann :develop * 9974ffe / src/shogun/ (17 files):
shogun-notifier-shogun: Merge pull request #1280 from karlnapf/develop18:11
shogun-notifier-shogun: undo changes to static interfaces18:11
@HeikoSthis should also fix the static examples18:12
lambdaymy logdet dir is getting huge and huge :D18:13
lambdaymay be I should separate things into separate folders, later :-/18:14
-!- nube [~rho@] has joined #shogun18:15
-!- nube1 [~rho@] has quit [Read error: Connection reset by peer]18:15
lisitsynHeikoS: lambday: just put failing tests to that list18:16
lambdaylisitsyn: NameError: global name 'true' is not defined18:16
lisitsynooh sorry :D18:16
lisitsynthat was blind fix18:16
lambdayTrue :-/18:16
lisitsynlambday: indeed18:17
lisitsynlambday: so what about18:17
lisitsynSNP think18:17
lisitsynshould it be here too?18:17
lambdaySNP too failed but just one of them... I18:17
shogun-buildbotbuild #1512 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Heiko Strathmann <>18:18
shogun-notifier-shogun: Sergey Lisitsyn :develop * 2c3da22 / tests/unit/base/
shogun-notifier-shogun: Update
lambdayI forgot which one :-/18:18
lisitsynok just put it there18:18
@HeikoSlisitsyn, lambday let me know what the unit tests do on your system now18:18
lambdayHeikoS: lisitsyn alright I am checking18:19
shogun-buildbotbuild #1513 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Heiko Strathmann <>, Sergey Lisitsyn <>18:20
lisitsynok next build please18:20
lambdayit blames and blames and never stops :(18:21
-!- pickle27 [~Kevin@] has joined #shogun18:22
shogun-buildbotbuild #1514 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Sergey Lisitsyn <>18:22
lambdayHeikoS: :(18:22
lambdayHeikoS: segfault again SGObject.clone_equals_LatentSOSVM18:22
@HeikoSlambday: really?18:23
@HeikoSweird I solved that18:23
shogun-buildbotbuild #1511 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Heiko Strathmann <>18:23
lisitsynpython2.7 command not found18:23
@HeikoSlambday:  did you really pull?18:23
@HeikoSlisitsyn: yes I had that before18:23
lambdayHeikoS: yep18:24
@HeikoSshogun takes so long to compile now18:24
lambdayI'm checking again18:24
lisitsynHeikoS: it just happened on the buildbot btw18:25
lisitsynI mean latent so svm crash18:25
@HeikoSlisitsyn: ah I see18:25
@HeikoSso thats fine since I reverted some patches18:25
@HeikoSnext step will solve it18:26
lambdayHeikoS: same result18:29
lambdayHeikoS: lisitsyn: I'll be back in an hour.. going for dinner.... see you guys :)18:29
@HeikoSlambday: meaning?18:29
lisitsynsee you18:29
lambdayHeikoS: segfault :(18:29
-!- lambday [67157d36@gateway/web/freenode/ip.] has quit []18:29
@HeikoSlisitsyn: did not work18:29
lisitsynHeikoS: ignore?18:30
@HeikoSthe three tests are still in there18:30
@HeikoSlisitsyn: yes, could you not cold fix that ;) takes ages to re-compile here18:30
lisitsynI was sure it is enough18:30
@HeikoSlisitsyn: 1170 tests pretty good18:31
-!- votjakovr [] has joined #shogun18:31
lisitsynhey votjakovr how are you18:31
lisitsynHeikoS: I can see it should not go through - weird18:31
votjakovrlisitsyn: hi! i'm not so good, but never mind. And you?18:35
lisitsynvotjakovr: what's happening?18:35
lisitsynI am ok18:36
votjakovrlisitsyn: good :) sorry, can't talk about that (too many problems falling on my head, but i'll fight them)18:39
lisitsynoh that's ok hope you will be good soon18:40
votjakovrlisitsyn: thanks18:40
thoralfDid anyone break develop?18:43
thoralfperl_modular and r_modular took ages to compile, but failed in the end.18:44
thoralfHaven't tried a clean checkout yet.18:44
lisitsynthoralf: what's the error?18:45
thoralfsrc/interfaces/r_modular/sg_print_functions.cpp:36: undefined reference to `Rprintf'18:46
thoralfMany errors, but that's the last one.18:46
pickle27thoralf: I had the same problem18:46
pickle27thoralf: never got it fixed18:46
pickle27was hoping it would resolve itself on its own soon18:46
thoralfpickle27: Oh, I'm not alone.  Good.18:47
pickle27lisitsyn: I just sent a mail regarding the bug in Jade18:47
lisitsynpickle27: yeah looking into it18:48
-!- nube1 [~rho@] has joined #shogun18:48
-!- nube [~rho@] has quit [Ping timeout: 264 seconds]18:48
votjakovrHeikoS: hi! i've received your email, i'll do that! Just a questions: Am i right that you want to sample from posterior approximation q(f | X, y) = N(f^, (K^(-1)+W )^(-1)) and need to evaluate mean (f^) and covariance ((K^(-1)+W )^(-1)) for that?18:49
lisitsynpickle27: so sign problem is here still?18:49
pickle27yeah but its weirder than I thought yesterday18:50
pickle27its only when I build it as part of shogun18:50
pickle27my standalone working file works...18:50
-!- travis-ci [] has joined #shogun18:51
travis-ci[travis-ci] it's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun:
-!- travis-ci [] has left #shogun []18:51
lisitsynpickle27: haha cool18:54
lisitsynpickle27: the same code?18:54
pickle27only difference is that the in shogun the function takes densefeatures and then i get the matrix18:55
lisitsynpickle27: can't say much about that - you've got to ensure the data is the same probably18:56
pickle27it essentially is, thats what I spent all of yesterday doing18:57
pickle27you can see by the cov matrix which is virtually the same18:57
pickle27now in that particular case it isn't the exact data just data generated using the same code18:57
pickle27but I have checked with the exact data and its the same problem18:57
@HeikoSvotjakovr: hey!19:10
@HeikoSvotjakovr: good to see you  finally :)19:10
@HeikoSvotjakovr: yes exactly this is what I want to do, but I would like to keep it in a general form so that we can easily extend it for the EP19:10
@HeikoSvotjakovr: also for the covariance, we should use the matrix inversion lemma form where we do only have to invert B, which is already available in the implementation19:11
-!- lisitsyn [] has quit [Quit: Leaving.]19:12
-!- nube [~rho@] has joined #shogun19:12
-!- nube1 [~rho@] has quit [Ping timeout: 246 seconds]19:12
votjakovrHeikoS: Ok, i'll do it.19:13
-!- nube1 [~rho@] has joined #shogun19:14
gsomixHeikoS, just got your mail. I'll fix it. Thanks!19:16
@HeikoSgsomix: cool thanks! I already fixed some uninitialised variable bugs19:17
-!- nube [~rho@] has quit [Ping timeout: 240 seconds]19:17
@HeikoSvotjakovr: so something like get_posterior_approximation_mean/cov which returns a vector and covariance matrix19:17
@HeikoSand this as an optional method of CINferenceMethod which is then overloaded in LaplacianInference and EPInference19:17
@HeikoSvotjakovr: if you could do that next, this would be extremely useful19:18
@HeikoSsince I currently need it for my research :D19:18
@HeikoSand my python code is so low19:18
@HeikoSand next thing should be I think getting the logit classifier to work19:18
votjakovrHeikoS: ok, i'll do it :)19:20
@HeikoSvotjakovr: nice :) let me know how it goes19:20
shogun-notifier-shogun: Heiko Strathmann :develop * 3b1cddc / src/shogun/latent/LatentSOSVM.cpp:
shogun-notifier-shogun: fix uninitialised memory19:27
shogun-notifier-shogun: Heiko Strathmann :develop * 1b8ed95 / tests/unit/base/
shogun-notifier-shogun: classlist does not return class names starting with C19:27
shogun-notifier-shogun: Heiko Strathmann :develop * 025a9a4 / src/shogun/latent/LatentSOSVM.cpp,tests/unit/base/
shogun-notifier-shogun: Merge pull request #1281 from karlnapf/develop19:27
shogun-notifier-shogun: unit tests green again19:27
shogun-buildbotbuild #1516 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Heiko Strathmann <>19:33
votjakovrbtw i'd like to ask another question: i evaluate integral simultaneously on few intervals, i have a method: evaluate_quadgk which should return approximate value of integral and error for each interval, both of them are vectors. How best to do it? I mean return two vectors. Create class (structure) for it, or something else? This method is private.19:34
votjakovrHeikoS: ^19:35
-!- travis-ci [] has joined #shogun19:40
travis-ci[travis-ci] it's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun:
-!- travis-ci [] has left #shogun []19:40
@HeikoSstupid unit tests19:46
@HeikoSvotjakovr: let me think19:46
@HeikoSvotjakovr: I think the best way would be to pass pre-allocated vectors as references19:47
shogun-buildbotbuild #1515 of deb1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Heiko Strathmann <>19:48
@HeikoSsonney2k: unit tests are green on my machine19:48
@HeikoSsonney2k: buildbot says: Generating base/ make[1]: python2.7: Command not found19:48
votjakovrHeikoS: Ok, like void evaluate_quadgk(SGVector<float64_t> &vals, SGVector<float64_t> &errs, ...) ?19:49
@HeikoSvotjakovr: yes exactly19:49
@HeikoSvotjakovr: with assertions that the vectors are either empty (then they are allocated by the method) or have the correct size19:50
votjakovrHeikoS: Ok, i'll do so19:53
-!- lisitsyn [~lisitsyn@] has joined #shogun19:54
@HeikoSlisitsyn: could you check the unit tests on your machine?19:58
@HeikoSlisitsyn: I think they are green now, I removed the "C" in the class name to make things work in the python script19:58
lisitsynHeikoS: now yes19:58
pickle27meeting is in 1 hour yes?19:59
@HeikoSpickle27: yes19:59
pickle27cool cool19:59
pickle27be back then!19:59
-!- pickle27 [~Kevin@] has quit [Quit: Leaving]19:59
lisitsynHeikoS: ooooohhhhh I thought they are with C here19:59
-!- az_de [57a25d66@gateway/web/freenode/ip.] has joined #shogun20:00
-!- lisitsyn [~lisitsyn@] has quit [Ping timeout: 256 seconds]20:04
-!- az_de [57a25d66@gateway/web/freenode/ip.] has quit [Quit: I'll be back for the meeting]20:13
-!- lisitsyn [~lisitsyn@] has joined #shogun20:17
-!- travis-ci [] has joined #shogun20:20
travis-ci[travis-ci] it's Sergey Lisitsyn's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun:
-!- travis-ci [] has left #shogun []20:20
-!- van51 [] has joined #shogun20:40
-!- pickle27 [~Kevin@] has joined #shogun20:42
-!- iglesiasg [] has joined #shogun20:45
-!- mode/#shogun [+o iglesiasg] by ChanServ20:45
@sonney2kHeikoS, so what is the state?20:47
lisitsynthe state of the art20:47
@HeikoSsonney2k: state on what?20:47
@HeikoSsonney2k: unit tests green on my machine20:49
@HeikoSfixed 100000000000 bugs20:50
@HeikoSand now we have automated detection of many problems20:50
@HeikoSalso, we have a crude test of clone and equals20:50
@HeikoSsonney2k: one thing I still would like to do is to do these tests on some data20:50
@HeikoScurrently, empty class instances do not contain any data20:50
@HeikoSyou know, fill the matrices etc20:50
gsomixHeikoS, you're strong, man. :)20:51
@sonney2kHeikoS, for what exactly? I mean you need a complete example for that to work?!20:51
@sonney2kHeikoS, you will lead today right?20:51
@HeikoSsonney2k: yes20:51
@HeikoSlets discuss afterwards,20:52
@sonney2kHeikoS, indeed unit tests work now20:52
@iglesiasgHeikoS: you are the hero!20:52
@sonney2kHeikoS, congrats you are the hero of today!20:52
* sonney2k sends over an ale!20:53
@HeikoSyeah! :)20:53
thoralfsonney2k: Hero? Even if he broke it? ;)20:55
thoralfHeikoS: Sorry. ;)20:55
@sonney2kthoralf, about your memleak was this for SGObjects or other memory?20:56
@sonney2kI mean obj->refcount() gets you the count...20:56
@sonney2kthoralf, and hey he fixed much more than he broke :D20:56
lisitsynI am the one who broke more than fixed20:57
@sonney2klisitsyn, true or should I say True :P20:57
lisitsynsonney2k: I don't feel the difference you know20:57
@sonney2ktRuE tRUE TrUE!20:58
thoralfsonney2k: I wanted to see if *all* objects got freed.  (Guessing that you're referring to "Is there a way of checking how many references are still alive in shogun?")20:58
@iglesiasgwhat is this story about true?20:58
thoralfsonney2k: But HeikoS already told me how to do. :)20:58
pickle27haha yeah I want to hear this lol20:58
@iglesiasgthoralf: enable-ref-count when you configure helps I think20:58
-!- nube [~rho@] has joined #shogun20:58
-!- az_de [57a25d66@gateway/web/freenode/ip.] has joined #shogun20:58
lisitsyniglesiasg: I am true-blind20:59
@sonney2kthoralf, yeah --trace-mallocs is your friend20:59
@iglesiasgor something like that20:59
@sonney2kthoralf, you can at any time do a memory print20:59
thoralfYes.  Thank you all!!one! :)20:59
@sonney2kiglesiasg, that is always on20:59
lisitsyniglesiasg: some people are color-blind I am true-blind21:00
@iglesiasgsonney2k: ah! ok, sorry21:00
thoralfsonney2k: Memory print?  That one is new... elaborate please?21:00
@sonney2kthoralf, gsomix, and me did spend quite some time on this21:00
@iglesiasglisitsyn: hehe but what happened?21:00
lisitsyniglesiasg: I mixed up true and True21:00
@HeikoSwho is still missing?21:00
@sonney2kthoralf, list_memory_allocs()21:00
@iglesiasglisitsyn: python or so?21:00
lisitsyniglesiasg: yes21:00
lisitsynHeikoS: I am compiling stuff I'll report tomorrow ;)21:01
thoralfsonney2k: Ah, already saw this one.  It's related to trace-mallocs as well, right?21:01
lisitsynwe should do something with this21:01
@iglesiasgHeikoS: lambday is around?21:01
@HeikoSnot yet21:01
@HeikoSI know georg wont make it21:01
@iglesiasgI don't see anyone else missing apart from him21:01
@iglesiasgno, I don't think so either21:01
thoralfsonney2k: It's what exit_shogun() does, I guess.21:01
@HeikoSpatrick also wont make it21:02
-!- nube1 [~rho@] has quit [Ping timeout: 248 seconds]21:02
@sonney2kvan51, will olivier/benoit make it?21:02
@HeikoShushell, lambday21:02
van51sonney2k: I don't know tbh21:02
@sonney2kor quoc? I guess not21:02
lisitsynthoralf: yes exit_shogun does it21:02
lisitsynthoralf: so you will see hanging refs21:02
@HeikoSok lets wait 2 more minutes21:02
@iglesiasgI spoke with Georg this morning anyway, so we are up to date. He also mentioned he will surely make the mid-term form21:02
@HeikoSotherwise they can use logs21:02
-!- lambday [67157d36@gateway/web/freenode/ip.] has joined #shogun21:03
lambdayhi all21:03
lisitsynhaha cool21:03
lisitsynwe have hardcoded21:03
@iglesiasghello hello21:03
lisitsynin base/init.h:6121:03
@HeikoSlambday: hi21:03
lisitsynthat's the number of classes21:03
lambdaysorry I am a bit late :(21:03
@HeikoSdont worry21:03
-!- foulwall` [~user@2001:da8:215:c252:2d09:69b3:4be7:def2] has quit [Remote host closed the connection]21:04
-!- foulwall [~user@2001:da8:215:c252:2d09:69b3:4be7:def2] has joined #shogun21:04
thoralflisitsyn: Ugh. ;)21:05
lisitsynthoralf: madskillz I guessed the meaning of 63121:05
thoralflisitsyn: I wish you weren't right. ;)21:06
lambdayHeikoS: just checked your mail.. this is for all of our CG solver for a high default condition for convergence21:07
@HeikoSlambday: I see, should be remove then21:07
@HeikoSok lets start21:07
@HeikoSthe rest can read logs21:07
@HeikoSWelcome all to the our GSoC meeting before mid-term.21:08
@HeikoSThe plan for today is:21:08
@HeikoS1.) Tell mentors/students what to do for mid-term21:08
@HeikoS2.) Hear about the general progress over every group21:08
@HeikoS3.) Talk about the "big" examples21:08
@HeikoSAny other points that I missed? Please shout!21:08
@HeikoSSo let's start with mid-term21:08
@HeikoSThe evaluation forms open at July, 2921:08
@HeikoSEvery mentor and every student has to fill one. You can the forms them through your google melange page,
@HeikoSFilling the form takes about 15 minutes, so not a big deal.21:08
@HeikoSMentors have to make students succeed/fail.21:09
@HeikoS(Mentors: if you are thinking of failing you student, please talk to me, sonney2k, or lisitsyn. But please let us try to avoid that)21:09
@HeikoSStudents have to give some information on how much work they invested yet etc21:09
@HeikoSHard deadline is on August 2. Please do not postpone this, fill them as soon as possible - this makes us more relaxed :)21:09
@HeikoSStudents: Push your mentors to fill in the form, you won't get money otherwise.21:09
@HeikoSsonney2k, lisitsyn comments?21:09
lisitsynno that's ok21:10
@HeikoSvan51, pickle27, iglesiasg so push your mentors once its july29 :)21:10
@sonney2kyes do it ASAP lets say hard deadline july3021:10
@sonney2kso we can hotfix stuff if21:10
pickle27so does az_de send mine in or lisitsyn ?21:11
@HeikoSyes no pracastination21:11
@HeikoSmain mentor21:11
@sonney2kpickle27, az_de should do it21:11
lisitsynpickle27: az_de21:11
@sonney2kthe main mentor21:11
az_deI'll do it21:11
@iglesiasgHeikoS: will do, thanks for the suggestion21:11
van51HeikoS: sonney2k: so who do I push?21:11
@sonney2kif not possible let us know21:11
@sonney2kand we will do it21:11
pickle27az_de, thanks!21:11
@sonney2kvan51, as you wish :D21:11
@sonney2kit takes 1 minute so I don't care21:11
lisitsynyeah 15 minutes is a bit overestimate21:12
@sonney2kor /mind21:12
foulwallWho will I push, sonney2k or cheng?21:12
lisitsynfoulwall: sonney2k21:12
@sonney2kfoulwall, yeah me21:12
foulwallok sonney2k21:12
@HeikoSI will push sonney2k too :)21:12
@HeikoSand myself  ;)21:12
lisitsynwe all push sonney2k all the time21:12
@sonney2kI start to feel even smaller now21:12
gsomixsonney2k, push? hugs!21:13
@HeikoSOk then, lets continue?21:13
@HeikoSCould every group give a short (!) summary of recent work and future plans?21:13
@HeikoSWho wants to start?21:13
lisitsynsonney2k: we will pop you once21:13
@sonney2kHeikoS, yeah please continue before we start a hug-fest21:13
@HeikoSok then, van51 would you like to start?21:13
@HeikoSother, pls prepare some text already to make this faster21:14
van51well, support for hashing has been added for text collections21:14
van51and also for the dense and sparse features21:14
van51and also a nice comparison has been done in a webspam dataset that shows the nice speedup gained and that robustness was maintained21:15
-!- Cheng [] has joined #shogun21:15
@HeikoSvan51: nice, is this available?21:15
van51on that project what remains is mostly to add support for quadratic features21:15
van51HeikoS: I will make it available somewhere21:16
@HeikoScool, maybe this fits into the last point today21:16
van51HeikoS: right now the results are on some output files, I plan on combining them to make it more informatory21:16
@HeikoSvan51: finished?21:16
@HeikoSwho wants next?21:16
@iglesiasgI can go next!21:17
@HeikoSiglesiasg: please go ahead21:17
@iglesiasgThe implementation of LMNN is finished now.21:17
-!- nube [~rho@] has quit [Ping timeout: 246 seconds]21:17
@iglesiasgThis is useful to find automatically a distance that maximizes the accuracy of multiclass classification, instead of using a particular given distance (typically Euclidean).21:17
@iglesiasgThere are nonetheless (many) things to improve and possible extensions; for instance I am currently improving some parts that are rather slow.21:17
-!- nube [~rho@] has joined #shogun21:18
@HeikoSiglesiasg: what are you comparing against?21:18
lisitsynI just wonder (sorry to interrupt) - can that be used to estimate what distance is the best?21:18
@HeikoSlisitsyn: lets do that afterwards21:18
@iglesiasglisitsyn: it finds the best distance21:18
lisitsynHeikoS: do what?21:19
@HeikoSdiscuss :)21:19
lisitsynahh well ok21:19
@HeikoSiglesiasg: next steps?21:19
@iglesiasgHeikoS: against the original implementation by LMNN's author21:20
@iglesiasgHeikoS: it is in Matlab, my implementation is slow because they use some heuristics21:20
@iglesiasgWe want also to compare the performance of LMNN with other multiclass classification techniques implemented in Shogun. At first we are going to use the MNIST dataset, and afterwards some metagenomics datasets Georg is gathering.21:20
@iglesiasgHeikoS: short-time, make these comparisons with other multiclass classification, and benchmark agains the original implementation once mine gets faster21:20
@iglesiasgHeikoS: after, add some extensions. For instance, use LMNN for dimension reduction, enforce some constraints in the metric learnt, etc21:21
@HeikoSiglesiasg: ah nice, useful, maybe also good to keep the codes for illustration/examples later21:21
@HeikoSok cool, gsomix would you like to continue?21:21
gsomixHeikoS, yep21:21
@HeikoSthanks iglesiasg21:22
gsomixok, some simple I/O system for SHOGUN is almost done. there are reading and writing tools and preliminary versions of classes that works with csv and libsvm files.21:22
@iglesiasgHeikoS: good idea21:22
gsomixthere are needed some cool features for csv, for example21:22
gsomixI'm discussing some architecture aspects with Soeren. so, before mid-term it will be available for all - we should merge my big messy code. :321:22
@HeikoSgsomix: nice, I will probably use the csv stuff! and after mid-term?21:23
pickle27me too!21:23
gsomixHeikoS, yep. it will be completely done21:23
gsomixnext we plan work with protobuf format, matlab's m-files and so on what contains in my proposal21:23
gsomixI think sonney2k will correct me. right?21:23
@HeikoSgsomix: awesome matlab files!21:24
@HeikoSalright, thanks gsomix21:24
@HeikoSpickle27: could you be next?21:24
pickle27First of all21:24
@iglesiasgreading matlab files from C++ easily will be awesome21:25
pickle27all of the Aproximate Joint Diagonalization (AJD) techniques from the R package have been ported to c++21:25
pickle27the last 2 still need to be push to shogun though21:25
pickle27I've also code 3 ICA techniques SOBI, JADE and FFSep21:25
pickle27Im chasing down a strange bug in Jade but its pretty close21:25
pickle27the other 2 techniques seem to work well, FFSep still needs to be pushed21:26
pickle27I have a nice signal example for python and one for matlab as well that I need to push shortly21:26
@HeikoSpickle27: nice, looking forward to look at that21:26
pickle27I'd also like to do a R example but I can't get the interface to build21:26
pickle27whats next for me21:26
pickle27is the audio example which Im starting on this week!21:27
@sonney2kpickle27, tell me what does not work later it builds fine here and on the buildbots21:27
pickle27will do!21:27
pickle27thoralf, was having the same problem with the R interface21:27
@HeikoSpickle27: cool, audio example is something we dont have yet :)21:27
@sonney2kHeikoS, as notebook!21:27
lisitsynbtw why not21:27
@HeikoSR interface - we really should get a hacker to solve the modular one21:27
lisitsynpickle27: what about doing it with ipython notebook?21:28
@HeikoSsonney2k: I was going to says that, notebooks support audio21:28
pickle27sorry what is notebook21:28
@HeikoSlisitsyn, pickle27 everyone should do an ipython notebook21:28
pickle27I was going to do it in python though21:28
@HeikoSpickle27: I will explain later21:28
@HeikoSlast point for today21:28
thoralfpickle27, HeikoS: Yeah.21:28
@HeikoSbut first summaries21:28
@HeikoSpickle27: thanks,21:28
@HeikoSvotjakovr: you want to be next?21:28
lisitsynpickle27: like that21:28
lisitsynHeikoS: sorry was it decided already?21:29
votjakovrHeikoS: ok21:29
lisitsynabout notebooks21:29
votjakovri've finished probit classifier, numerical integration stuff, logit and expectation propagation (EP) classifiers will be avaliable before mid-term. Next i'd like to review/debug model selection framework, because it's one of key part of GPs21:29
@HeikoSlisitsyn: yeah, every gsoc project will have to do one, but more on that later21:29
lisitsynHeikoS: oops I missed that21:29
-!- travis-ci [] has joined #shogun21:30
travis-ci[travis-ci] it's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun:
-!- travis-ci [] has left #shogun []21:30
@HeikoSvotjakovr: true  that wil be the next step after21:30
@HeikoSvotjakovr: so the other stuff is almost done?21:30
votjakovrAnd after that, i'll plan to work on multiclass classification21:31
@sonney2klisitsyn, well you chickened out21:31
@HeikoSvotjakovr: cool, thanks!21:31
@HeikoShushell is not here21:31
@HeikoSso lambday is next :)21:31
lisitsynsonney2k: buck buck buck21:31
@HeikoSlisitsyn:  tztztz chatty as before ;)21:32
lambdayHeikoS: alright21:32
lambdayThe main goal of our project is to estimate log determinant of a huge sparse matrix that arises from log-likelihood estimate expression of a huge GMRF, computing which directly is not possible using traditional techniques due to computational overloads...21:32
lambdaythe technique that we're using for our purpose is to approximate matrix function (matrix logarithm to be specific) using techniques from numerical linear algebra and complex analysis..21:32
lambdaywhich results in a shifted family of linear systems that are to be solved, involving complex shifts...21:32
lambdayas of now, using dense matrix linear operator and direct solving techniques, we have a working log-det estimator using this technique which gives a pretty good accuracy using Gaussian samples..21:33
lambdayin order to achieve this, we have developed a computation framework that forms several individual computation jobs which can be solved in parallel...21:33
lambdaywe have designed a sequential version of a computation engine which solves these jobs one by one..21:33
lambdaythis framework can be really useful for other future purpose as well as we believe..21:33
lambdaywe also have added iterative solve techniques that are particularly suitable for large sparse linear operators... various methods that follows conjugate gradient (CG) technique for solving for each of these shifts individually/simultaneously have been added...21:33
lambdayfuture work involves implementing an iterative eigen solver for these huge sparse matrix (that requires Lanczos algorithm to be implemented).. this is needed for computing the shifts in the shifted system... (we used a direct eigen solver for dense systems in order to make sure the framework works properly)21:33
lambdaywe also have to use greedy graph coloring strategy to color the sparse matrix graph to obtain a set of vectors that are to be used instead of Gaussian vectors...21:33
lambdaywe may also have to use preconditioned CG solvers for each of the shifts in the systems in case we notice poor convergence behavior for our shifted family solver that solves for all the shifts at once..21:34
lambdayif time permits, we'll move towards a parallel implementation of our computation engine which will surely provide us a powerful mean of computation...21:34
@HeikoSbtw the parallel framework can be used by everyone21:34
@HeikoSonce it works21:34
@HeikoSfor independent jobs that need to be solved at once21:34
lisitsynHeikoS: we should put everything on these rails21:34
lisitsyn(I believe so!)21:34
@HeikoSlisitsyn: yes I agree, or at least new stuff21:34
@HeikoSsince a lot of work21:35
@HeikoSlisitsyn, lambday thats something to discuss once GSoC is more towards its end21:35
@HeikoSbut lots of possibilities, we had a long dicussion on the workshop21:35
@HeikoSlambday: thanks!21:35
lambdayHeikoS: alright.. I am really excited :)21:36
@HeikoSso last but not least, foulwall, could you close the summaries?21:36
foulwallok HeikoS , here I am21:36
foulwallI turned the shogun-demo site into a framework, and currently we can use the framework to make classification, regression, clustering demos. When creating a demo, the framework only needs a python dict to specify the style of web ui, and several decades of backend code to tell what algorithm to use. After that, the framework will generate the javascripts/htmls/css for the ui and connect the user input to the algorithm.21:36
foulwallI made a demo for kernel matrix heatmap visualization.21:36
@HeikoSfoulwall: cool! I like heatmaps21:37
foulwallI made a modular toy-data generator and importer, The generator can generate random sine data, though it only generate sine, but new function and arguments are easy to add to the module. The importer can import features and label from hdf5 files, and the demo can plot the data on the coordinate system, All the demos can use the data fed back from the generator and importer.21:37
-!- nube [~rho@] has quit [Ping timeout: 264 seconds]21:37
foulwallI made a digit recogniser as , now it works well.21:37
@HeikoSfoulwall: oh, maybe also have a look into the DataGenerator class then, MeanShiftDataGenerator for example. If you coded up your generators in C, they would be available from all interfaces21:38
foulwallNow I'm working for some static dimension reduction demo, based on existing demo on, thanks lisitsyn.21:38
foulwallHeikoS: I'll use python interface for that.21:38
@HeikoSfoulwall: maybe lets discuss at some point, Ill write an email21:38
@sonney2kHeikoS, yeah that was the idea to later switch to data generators21:39
@sonney2kHeikoS, so we can have stand-a-lone demos to be the same as the web based one21:39
@HeikoSfoulwall: cool stuff, this will impress people, maybe talk to other GSoC students on demos on their projects (this could be one of your big examples)21:39
foulwallI'll boost up to finish all the idea under "Develop interactive machine learning demos"21:39
pickle27yes I want to make my audio example on the web21:39
@sonney2kfoulwall, please give us a long README showing us how to do it for some algorithm21:40
@sonney2kpickle27, wait for heiko's step 3)21:40
@HeikoSfoulwall, thanks!21:40
@HeikoSok then that were all students, any remarks?21:40
foulwallok sonney2k . I'll make it21:40
@HeikoSIf not, last point for today:21:40
@HeikoSAs said, we expect examples how to use your code: C++ and python modular at least. These examples should be small and illustrate how to use classes etc.21:40
-!- nube [~rho@] has joined #shogun21:40
@HeikoSIn addition, we would like every student to create a bigger example with a real-life dataset. This example should go a bit more into depth, explain the method more, play a bit around with it, visualise it.21:40
@HeikoSWe would like you to do those as an IPython notebook.21:40
@HeikoSThese allow to combine text/code/plots/latex in one file.21:41
@HeikoSWe are currently working on a way to automatically generate website pages from those.21:41
@HeikoSThese will look like the ones I presented at the workshop (but should be more detailed, explain more):21:41
@HeikoSThere are more examples on the web, they can also embed sound21:41
@HeikoSwith html sound player21:41
pickle27sounds very cool21:41
@HeikoSThe goal is the properly document your GSoC project using a notebook.21:42
@HeikoSThe examples are also a requirement to pass GSoC. We think this is a very cool oportunity to tell the world how cool your project is.21:42
@sonney2kHeikoS, how do we get them from our notebook folder to be on the web?21:42
pickle27sounds great I like the notebooks idea21:42
@HeikoSsonney2k: wiking and me are working on it21:42
@sonney2kHeikoS, I added the gausskernel svm thingy to git but hmm..21:42
@HeikoSsonney2k: we will generate the full output automatically, store it and produce a link to the viwer21:43
@sonney2kHeikoS, and we somehow need to connect this with the demos foulwall is doing - bidirectional21:43
@HeikoSalso, this detects api changes to notebook build will fail21:43
@sonney2kso people can try interactively and also get more details21:43
@sonney2kin the notebook21:43
@HeikoSthe notebooks are python code and can be downloaded /executed locally/interactively21:44
@HeikoSconnecting them with the web demo would be awesome, but havent thougth about this yet21:44
Chengsomething that may help21:44
@HeikoSCheng: thats a nice tool!21:44
@sonney2kHeikoS, but we should. Everything we have as notebook should have a webdemo too21:44
@HeikoSok, I would agree21:44
@HeikoSSo every student, please start playing with the notebooks and start creating one, we want them to be ready before GSoC is over to give feedback. In particular, students can give suggestions to each other when something is unclear.21:45
@HeikoSOk, that was it from my side21:45
pickle27awesome, I'll build my audio demo and notebook side by side!21:46
@HeikoSanyone has some remarks?21:46
@iglesiasgHeikoS: that is a good idea, students giving feedback to each other21:46
@HeikoSiglesiasg: yes, we will talk about this in another meeting after mid-term21:46
@HeikoSok, then the meeting is over21:46
pickle27yeah it will help us really understand what everyones been doing!21:46
@iglesiasgI would like to understand better the techniques in some other projects, this looks like a nice way of achieving that21:46
pickle27az_de, lisitsyn can we discuss in a new channel for a sec?21:46
@HeikoSFeel free to discuss ideas :)21:46
lisitsynpickle27: yes sure21:46
@HeikoSI have to rush off21:46
@HeikoSsonney2k: you have the lead now21:47
@iglesiasgall right, thanks HeikoS!21:47
lisitsyniglesiasg: what I wanted to ask you21:47
lisitsyniglesiasg: can we like21:47
@iglesiasglisitsyn: tell me21:47
-!- HeikoS [] has quit [Quit: Leaving.]21:47
lisitsynestimate what is the best distance (among say euclidean, chi2 whatever)21:47
lisitsynaccording to LMNN distance matrix21:47
@iglesiasglisitsyn: before I said if finds the best distance, I must add something in there however21:47
lisitsyniglesiasg: no it finds the best mahalanobis distance right?21:48
@iglesiasglisitsyn: exactly21:48
lisitsynI mean can we say what is the best 'default' distance21:48
lisitsynlike select21:48
@iglesiasglisitsyn: D(x_i,x_j)=(x_i - x_j) M (x_i - x_j)21:48
@iglesiasglisitsyn: the best M in ^21:48
@iglesiasglisitsyn: I am missing a transpose in the second difference of feature vectors21:49
lisitsyniglesiasg: I mean in MKL we select the best distance21:49
lisitsynwith weighting21:49
lisitsyncan we do the same - find what distance reproduces the distance computed by LMNN mostly?21:49
Chengthere was a paper by Eric Xing about this21:49
lisitsynCheng: haha you know everything21:50
@iglesiasglisitsyn: I am thinking.. not sure if I see it21:50
gsomixsonney2k, hey21:50
lisitsyniglesiasg: we have a dataset21:50
lisitsynwe compute LMNN thing21:50
lisitsynand see - oh that's mostly euclidean21:50
lisitsynI'll use that21:50
@iglesiasglisitsyn: ok21:50
lisitsynbut then we take other dataset21:50
lisitsynand notice that LMNN computed something21:51
gsomixsonney2k, so, what we plan to do with readers?21:51
lisitsynvery similar to say inverse gaussian distance21:51
lisitsyniglesiasg: got it?21:51
@iglesiasglisitsyn: yes21:51
@iglesiasglisitsyn: then what you were saying would be if these two datasets are together21:52
foulwallhave to sleep now, cu guys.21:52
@iglesiasglisitsyn: if we can weight between these two distances?21:52
-!- nube1 [~rho@] has joined #shogun21:52
@iglesiasgfoulwall: bye bye!21:52
lisitsyniglesiasg: well weighting is other thing21:52
lisitsynbut just find a distance that corresponds to the thing found by LMNN21:52
-!- nube [~rho@] has quit [Ping timeout: 276 seconds]21:52
lisitsynamong some out of box distances we have21:52
@iglesiasglisitsyn: so you mean going beyond the family of Mahalanobis distances?21:54
@iglesiasglisitsyn: using the idea of LMNN but searching in other set of distances21:54
lisitsyniglesiasg: no just find the distance that is very similar to the best mahalanobis distance21:54
lisitsynit could be great performance wise21:54
@sonney2kgsomix, yeah I still consider the linear reader + parser design more easy to understand.21:55
@iglesiasglisitsyn: I am sorry, but I am not following :S21:55
lisitsyniglesiasg: once we perform LMNN21:55
@sonney2kfoulwall, nite and please continue your work!21:55
lisitsynwe have d_1: X \times X -> R21:55
lisitsynthat's the best mahalanobis distance21:55
@iglesiasglisitsyn: ok21:56
lisitsynsay we have {d_2, .... , d_N} - a set of distances21:56
gsomixsonney2k, what to do with writing? I plan to add CWriter, CFileWriter and CStringWriter.21:56
lisitsynlike euclidean etc21:56
@iglesiasglisitsyn: ok21:56
lisitsyniglesiasg: can we found some distance among {d_2, ... , d_N}21:56
lisitsynthat reproduces d_1 the best way21:56
@iglesiasglisitsyn: ok, I understand now the problem :)21:57
-!- foulwall [~user@2001:da8:215:c252:2d09:69b3:4be7:def2] has quit [Ping timeout: 245 seconds]21:57
lisitsyniglesiasg: I don't know any good criteria for that21:57
lisitsynbut as Cheng said there is a paper21:57
@iglesiasglisitsyn: well, there can be several21:58
@iglesiasglisitsyn: if you are representing your distances as all of them Mahalanobis, then you could define a distance measure between matrices21:58
@sonney2kgsomix, not sure what you need there - I mean you could use CFile's functions directly21:58
lisitsyniglesiasg: no my point was to find some simpler distance21:58
lisitsynbecause mahalanobis is a bit slow21:58
lisitsynCheng: thanks!21:58
gsomixsonney2k, but line reader now is not only for lines with '\n' at end. because we have Tokenizer inside. why not allow line reader be more cool and read primitive types?21:59
@sonney2klisitsyn, do you know why SNP kernel still fails on the buildbot?21:59
gsomixsonney2k, what functions do you mean?21:59
@sonney2kgsomix, I mean for writing21:59
lisitsynsonney2k: hmmactually I just ran tests21:59
@sonney2klisitsyn, yeah me too21:59
lisitsynand it failed on SGVectorTest.complex64_tests21:59
@sonney2kerrm no all worked here22:00
lisitsynmay be some old binaries22:00
lisitsynlet me check again22:00
@iglesiasglisitsyn: so how are you thinking these {d_2, ... , d_N } distances would be specified?22:00
@sonney2kgsomix, for reading I can see the benefit of having a line reader and a separate parser to support other ascii line based formats22:00
lisitsyniglesiasg: by their distance matrices22:00
lisitsynCheng: btw we had issue with our vspaces :D22:01
@iglesiasglisitsyn: aham, so you would find the distance that reproduces d_1 the best way *given* a particular dataset22:01
lisitsynCheng: you may noticed we had really dense things out there in paper22:01
lisitsyniglesiasg: yes exactly sorry I missed that point22:01
-!- pickle27 [~Kevin@] has quit [Quit: Leaving]22:02
-!- az_de [57a25d66@gateway/web/freenode/ip.] has quit []22:02
@iglesiasglisitsyn: then I think somewhat the same idea as before applies. You define a measure between matrices22:02
van51sonney2k: are you leaving soon?22:02
lisitsyniglesiasg: natural measure is norm but I find it a bit worse22:02
lisitsynthan something fance you can use22:02
@sonney2kvan51, why?22:03
@iglesiasglisitsyn: something fancy like?22:03
lisitsyniglesiasg: say accuracy22:03
@sonney2kvan51, did you get the same result like the kernel one?22:03
van51sonney2k: I wanted to ask you a bit about the hashing features again :)22:03
Chenglisitsyn: no hacking latex22:03
lisitsynCheng: yeah we had to remove it22:03
ChengI might be off soon22:03
gsomixsonney2k, ok. but I'm still need class for buffered writing.22:03
@sonney2kvan51, just ask never ask to ask22:03
lisitsynand cut down some text22:03
van51sonney2k: it could wait till tomorrow22:03
van51sonney2k: anyway, first of all I didn't really get your email22:04
@iglesiasgCheng: thanks for the pointers to ipython and metric learning!22:04
van51sonney2k: I get that if the targer and the original dimensions are the same, then the hashing could be avoided22:04
@sonney2kgsomix, I don't understand what for... if you use CFile you would just override set_matrix and done22:04
@sonney2kvan51, if I am not around I will reply when I read the logs so just ask :)22:05
gsomixsonney2k, what functions I should use for writing?22:05
@iglesiasglisitsyn: sure. I think many different ideas can make sense to measure similarity between distance matrices22:05
van51sonney2k: ok :)22:05
@sonney2kgsomix, the set_* ones22:05
@sonney2kgsomix, the get_* ones are for reading22:05
gsomixsonney2k, no, inside set_*22:05
gsomixin realisation22:05
@sonney2kgsomix, and set_* ones for writing22:05
van51sonney2k: I just had a quick discussion with Benoit and he told me that the way I wrote the pseudocode in the email is the way to go for numerical features22:06
@sonney2kgsomix, we are talking csv here right? so fprintf("%s," ...)22:06
gsomixI need some tools for writing22:06
lisitsyniglesiasg: it might be that it is not worth implementing in C++ but it could be in notebook22:06
van51sonney2k: so I will send a PR fixing what I was doing22:06
gsomixsonney2k, is it fast for big data?22:06
van51sonney2k: but I would like you to elaborate a bit on your email, what did you mean by inc step?22:07
lisitsyniglesiasg: like 'see, we can see the learned distance is very similar to D so we can use D'22:07
@sonney2kvan51, the thing you do in the first pseudo code22:07
@sonney2kgsomix, file i/o is slower anyways and it is already buffered underneath22:08
@iglesiasglisitsyn: yep, but I guess that LMNN gets more powerful when you don't easily know distances that are similar to LMNN's solution22:08
lisitsyniglesiasg: indeed but sometimes you need performance but don't know what distance to use22:08
lisitsynlmnn might guide you here22:08
@iglesiasglisitsyn:  but I think I understand your idea for the notebook, as a way to illustrate what LMNN achieves22:09
@sonney2kvan51, which of the pseudocodes did benoit mean? I don't have the email here (please use my email address for that)22:09
van51sonney2k: ah sorry about that22:09
-!- travis-ci [] has joined #shogun22:09
travis-ci[travis-ci] it's Sergey Lisitsyn's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun:
-!- travis-ci [] has left #shogun []22:09
-!- pickle27 [] has joined #shogun22:09
van51sonney2k: the second one we discussed22:09
gsomixsonney2k, I don't understand. we use own buffering for reading. because reading is slow.22:09
van51sonney2k: do you want me to forward it to you?22:09
@sonney2kvan51, so does my reply make sense now?22:09
@iglesiasgall right, I think I am off to make dinner now. Will be back afterwards!22:09
van51sonney2k: well you could still have index clashes for dense features22:10
@sonney2kgsomix, yes reading huge blocks helps a lot22:10
van51sonney2k: since you may map to a dimension lower than the original22:10
@sonney2kgsomix, ok do some benchmark for some big file and then we will decide22:10
gsomixsonney2k, ok22:10
-!- Cheng [] has quit [Ping timeout: 264 seconds]22:10
@sonney2kgsomix, if it is necessary then we could have a similar thing to the reader for writing22:11
@sonney2kgsomix, writing full lines or even 1MB chunks22:11
@sonney2kvan51, yes you can have clashes - actually always due to hashing22:12
van51sonney2k: yes22:12
@sonney2kvan51, but that is not the issue here22:12
@sonney2kvan51, you know the indices for dense features22:12
-!- iglesiasg [] has quit [Quit: Leaving]22:12
@sonney2kvan51, so you know which to multiply with which22:13
van51sonney2k: are you referring to quadratic coupling now?22:13
@sonney2kvan51, if there is a collision you don't want to increase its effect by multiplying with it22:13
@sonney2kvan51, yes - I thought that is what we are talking about?22:14
van51sonney2k: no :)22:14
van51sonney2k: actually we would get to that22:14
@sonney2kvan51, then please start fromt he beginning22:14
van51sonney2k: so I had in my mind that hashing for dense features22:14
van51sonney2k: w/o the quadratic coupling22:14
@sonney2kahh ok22:14
van51sonney2k: would result in something like a discretization process22:14
van51sonney2k: and I had treated the values of the new hashed representation as a counter -- similar to what I was doing in the doc features22:15
@sonney2kvan51, ok so same mistake then22:15
van51sonney2k: I have a commit ready that fixes that22:16
van51sonney2k: I just have to fix the unit tests22:16
@sonney2kvan51, very good22:16
van51sonney2k: I will make a PR again now then and review it when you can22:16
van51sonney2k: to make sure I didn't miss something again22:16
van51sonney2k: Benoit told me would also have a look tonight22:16
@sonney2kvan51, you can again compare it with a polynomial kernel of degree 1 - once done on the hashed and on the non-hashed22:16
van51sonney2k: tonight there that is :p22:16
@sonney2kvan51, did you understand what I wrote in my email in this context?22:17
@sonney2kvan51, I mean with the indices are given / we want to hash indices?22:17
van51sonney2k: not really sorry :)22:18
@sonney2kfor me this is probably too obvious - I have been doing this for too long and I realize I suck explaining22:18
@sonney2kvan51, let me try again22:18
van51sonney2k: isn't it just a new feature? I mean you hash its index and add there the combined value22:19
@sonney2kvan51, when you have dense features of dim D you know you have dims 1...D22:19
@sonney2kvan51, OK?22:19
@sonney2kvan51, now with hashing you compress it down to sth like 2**<nbits>22:19
@sonney2kI mean D -> 2**nbits22:19
@sonney2kso you hash(i) i=1...D22:20
@sonney2kin some for loop22:20
@sonney2kand the dimensions you iterate over (1..D) are known upfront22:20
@sonney2kvan51, OK?22:20
@sonney2kwith the hasheddocfeatures it is totally different22:20
@sonney2kyou have strings as input22:20
@sonney2kand you use n-grams22:20
@sonney2kOK so far?22:21
@sonney2kso you don't even have any dimensions22:21
van51sonney2k: I wasn't referring to ngrams/tokens in that last pseudocode22:21
van51sonney2k: but carry on22:21
@sonney2kvan51, what then? it was code from vw no?22:21
van51sonney2k: no not yet, I was just trying to make sure that I had got right what the quadratic features for the dense would be22:22
@sonney2kvan51, please send me the email again22:22
van51sonney2k: on it22:22
@sonney2kI don't know what pseudocode we are talking about22:22
van51sonney2k: hehe it's a bit vague this discussion :)22:23
@sonney2kyeah well I told you I never have access to your email on my laptop22:24
van51sonney2k: I just hit reply all on an old email22:24
@sonney2kvan51, and we name these 3 pseudocodes a,b,c so I know what you are talking about22:24
van51sonney2k: didn't think about the address :/22:24
@sonney2knothing there yet...22:25
@sonney2kvan51, maybe just paste it somewhere22:25
van51sonney2k: I've sent it, to your shogun address22:25
@sonney2kdpaste etc22:25
van51sonney2k: ok wait22:26
van51sonney2k: ^22:26
@sonney2kvan51, so which algorithm did you mean?22:27
-!- shogun-notifier- [] has quit [Quit: transmission timeout]22:27
@sonney2kI thought you meant a)22:27
van51sonney2k: a) is for the hashed doc features22:27
van51sonney2k: c) would be quadratic for dense, right?22:27
@sonney2kyeah that is what I was referring to22:28
@sonney2kyou need to compute the hash for some n-gram to get an index22:30
gsomixgood night people22:30
@sonney2kgsomix, good night!22:30
@sonney2kvan51, you don't have an index like you have with dense22:30
@sonney2kvan51, agreed?22:30
van51sonney2k: yes22:31
@sonney2kvan51, this doesn't make a difference for linear features22:31
van51sonney2k: I think for tokens, vw concatenates them and hashes that22:31
@sonney2kvan51, because when you do a) and get the same h_idx multiple times you just add 1 to the value each time22:32
-!- lambday [67157d36@gateway/web/freenode/ip.] has quit [Ping timeout: 250 seconds]22:32
@sonney2kif you go quadratic features though22:32
@sonney2kyou would need to know how often h_idx is the same22:33
@sonney2kbecause you would do count[h_idx_1] * count[h_idx_2]22:33
@sonney2kthat is pretty annoying22:34
@sonney2kvan51, agree?22:34
van51sonney2k: yes22:34
van51sonney2k: I see that issue now22:35
@sonney2kvan51, you don't need that with dense22:35
@sonney2kthat is what I wanted to say22:35
van51sonney2k: ok then :)22:35
@sonney2kwith dense you have the value and the index22:35
van51sonney2k: well the answer for that is in vw, so I will read the code that Benoit suggested and see what I can do22:35
van51sonney2k: yes idd22:36
-!- FSCV [~FSCV@] has joined #shogun22:36
van51sonney2k: ok, so coming up : a PR to fix what I was doing wrong22:37
van51sonney2k: and a PR for quadratic on dense22:37
van51actually an update on thath22:37
@sonney2kvan51, I only see 2 solutions currently - keep all the h_idx around, sort them and then go over them or use some hashmap on them and then iterate over the values22:37
@sonney2kvan51, yeah does quadratic work now?22:38
van51sonney2k: I had rolled back my code to fix that22:38
van51sonney2k: so I will do it again now22:38
@sonney2kfix what?22:38
van51sonney2k: I'm confident that it'll be working though22:38
van51sonney2k: what I was doing wrong in hashed dense22:38
van51sonney2k: if you want to browse a bit through the commit now to understand what I mean, it's here :
@sonney2kvan51, are we talking linear or quadratic now?22:39
van51sonney2k: linear22:40
@sonney2kb'coz I was talking quadratic :D22:40
@sonney2kvan51, but nevertheless comparing it to a linear kernel is an excellent test22:40
van51sonney2k: ok. I know what to do now :)22:41
@sonney2kor polykenrel degree=1 - which is the same as linear w/o22:41
-!- lisitsyn1 [~lisitsyn@] has joined #shogun22:41
-!- lisitsyn [~lisitsyn@] has quit [Ping timeout: 268 seconds]22:41
van51sonney2k: yes yes22:42
@sonney2kvan51, is sparse* working or does this also need a fix?22:44
van51sonney2k: the fix is in the same commit22:44
van51for that22:44
@sonney2kvan51, that would also be a good test btw comparing dense and sparse - result should be 100% the same22:44
van51sonney2k: idd it can be in an exampe to demonstrate the classes22:46
@sonney2kvan51, actually you do it exactly the way you need to do it for hasheddocfeatures there - computing the hashes first store in some list22:46
@sonney2kvan51, do a qsort22:46
@sonney2kthen count etc22:46
-!- pickle27 [] has quit [Quit: Leaving]22:46
@sonney2kvan51, so quadratic would work then with hasheddoc22:46
@sonney2kvan51, and I immediately have a feature request to work with sign(count) for the hasheddocfeatures22:47
@sonney2kvan51, so it would be 1 if a thing appears and not the real count22:47
@sonney2kthis was more stable in some apps I had22:47
van51sonney2k: ok I will note that to add it22:48
van51sonney2k: about the quadratic support22:48
van51sonney2k: maybe I should start it from now as a preprocessor?22:48
@sonney2kvan51, it has to be some totally new framework I am afraid ... preprocessors are *very* old (written 2000)22:49
-!- lisitsyn1 [~lisitsyn@] has quit [Read error: Connection reset by peer]22:49
van51sonney2k: ah I see22:49
@sonney2kso they might need some polish and I am not sure they can handle Dot*22:50
van51sonney2k: it can go under future work then :)22:50
@sonney2kI mean what do we want22:50
@sonney2kcompress indices with hashing22:50
@sonney2kand then maybe change values22:50
@sonney2kwith normalization22:50
@sonney2kso this would have to hook into the add_to_dense_vec etc functions22:51
@sonney2knot sure how22:51
@sonney2kotherwise it would not be fast22:51
van51sonney2k: true22:51
@sonney2kvan51, the preprocessor stuff currently takes a vector, changes it and returns it22:51
@sonney2kchanges == new vector but processed22:52
@sonney2kso that would defeat the purpose of dotfeatures22:52
van51sonney2k: ok I see22:52
van51sonney2k: well I have a clear plan now again at least and I'm happy :D22:52
@sonney2kvan51, sorry for not looking in detail in the first place22:54
@sonney2kand please keep it on :)22:55
van51sonney2k: no worries. it actually helped me looked into it more22:55
van51sonney2k: plus I also suck at explaining :P22:55
@sonney2kideal team :D22:56
-!- votjakovr [] has left #shogun ["Fallen asleep!"]22:56
-!- travis-ci [] has joined #shogun22:58
travis-ci[travis-ci] it's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun:
-!- travis-ci [] has left #shogun []22:58
-!- hushell [] has joined #shogun23:05
-!- iglesiasg [] has joined #shogun23:48
-!- mode/#shogun [+o iglesiasg] by ChanServ23:48
--- Log closed Wed Jul 24 00:00:44 2013