Open in new window / Try shogun cloud
--- Log opened Sat Aug 03 00:00:59 2013
-!- pickle27 [] has quit [Quit: Leaving]00:05
-!- travis-ci [] has joined #shogun00:25
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 []00:25
hushelliglesiasg: hi00:42
@iglesiasghey hushell!00:42
@iglesiasghow are you doing_00:42
hushelliglesiasg: I am implementing code after all meetings with my supervisors :)00:42
hushelliglesiasg: A strange problem00:43
@iglesiasghushell, lot of work in related to the phd these days?00:43
@iglesiasgwhat is it?00:43
hushelliglesiasg:  undefined reference to `shogun::SGVector<shogun::CFactor*>::~SGVector()'00:43
hushellI was trying to use SGVector<CSGObject*> also failed, only int float supported00:44
@iglesiasghushell, yes00:44
hushelliglesiasg: yeah, quit busy these days, too many meetings, but I'll be free next week :)00:44
@iglesiasghushell, look at SGVector.cpp00:44
@iglesiasghushell, the last lines. Those are the types that SGVector is usable for00:45
hushellbut I checked base/Parameters.h there is SGVector<CSGObject*>00:45
@iglesiasgaham, then you already know more than I do about that hehe00:45
hushelliglesiasg: okay, I see I was strange why template functions can be declared in different files00:46
hushelliglesiasg: but SGVector<CSGObject*> cannot be used00:47
@iglesiasghushell, yeah. It is a trick to separate both files00:47
@iglesiasghushell, well if it is used in Parameter.h, it should be possible!00:47
hushelliglesiasg: okay which means I should resolve DynamicObjectArray or CList somthing like those?00:48
hushelliglesiasg: resort to I mean00:48
@iglesiasghushell, I think I have never used SGVector for things other than primitive types00:49
@iglesiasghushell, but if it appears in Parameter.h, so maybe it is possible00:49
hushelliglesiasg: what will you do if you need to store a bunch of class instances00:49
@iglesiasghushell, it depends what do I need to do with them00:50
hushellstd::vector is the best way but I think it is not allowed00:50
@iglesiasghushell, std::vector is fine as long as you can avoid including it in .h files that are visible to SWIG00:50
hushelliglesiasg: in my case, I have a sequence of messages for each edge in the graph00:50
hushellI need to store them00:51
shogun-buildbotbuild #1146 of cyg1 - libshogun is complete: Failure [failed configure]  Build details are at  blamelist: Soeren Sonnenburg <>00:51
@iglesiasgthis is, if it is something internal of the implementation, and not something that is going to be exposed in the interface. then it is completely fine to use STL00:51
hushelliglesiasg: but I may need keep it as members00:51
@iglesiasghushell, then I guess DynamicObjectArray is the way to go00:53
@iglesiasgbut I am curious about this use of SGVector in Parameter.h00:53
hushelliglesiasg: I tried to include SGObject.h and use SGVector<CSGObject*>, not working00:53
@iglesiasghushell, yeah, it doesn't work for me either00:54
@iglesiasgsimple example declaring00:54
@iglesiasgSGVector<CSGObject> vector(5);00:54
@iglesiasgcompile error due to undefined reference00:54
hushelliglesiasg: DynamicObjectArray is not very convenient honestly00:55
@iglesiasghushell, what is wrong with it?00:55
@iglesiasgIIRC is sort of std::vector00:55
@iglesiasgyou have got a similar API with push_back and so00:55
hushelliglesiasg: yeah, it's efficient but I don't like the type conversion code00:56
@iglesiasghushell, aham, that some casts have to be made explicitly?00:57
hushelliglesiasg: I found some code has std::vector as members :D00:57
@iglesiasghushell, too bad. That is not usable from SWIG I am afraid. Where?00:57
@iglesiasgmaybe it is a class that is not visible to SWIG00:58
@iglesiasgnote that all of them are not, one has to make that explicit00:58
hushelliglesiasg: maybe it's not big case, e.g. shogun/multiclass/LaRank.h:29501:01
hushelliglesiasg: you can use this command to search it: find . -type f -exec grep -l 'std::' {} \;01:01
@iglesiasghushell, cool thanks for little script! practical indeed01:02
@iglesiasghushell, I bet that is sort of an internal class01:03
@iglesiasghushell, grep -R LaRankPatterns * in src/interfaces01:03
hushellI think so01:04
@iglesiasghushell, that class is ignored by SWIG, so it is fine to use STL01:04
hushelliglesiasg: if a class is going to be used in other languages, no STL in function arguments and class members, right?01:05
@iglesiasghushell, exactly01:05
hushelliglesiasg: I can put these message stuff inside a function, but maybe not quite efficient, they have to be recomputed :(01:07
@iglesiasghushell, mmm01:08
hushelliglesiasg: okay, I will use DynamicObjectArray ...01:08
hushelland make message class be a derived class from SGObject01:09
@iglesiasghushell, why don't you like the casts? performance, syntax, another thing?01:09
hushelliglesiasg: :D too much typing01:10
@iglesiasghushell, haha ok01:10
hushelliglesiasg: Thanks, I guess it's very late in your time01:14
@iglesiasghushell, 1:15am01:15
@iglesiasghushell, but I am sort of a night guy hehe01:15
@iglesiasghushell, so how is the inference going?01:21
hushelliglesiasg: I am also late person :) you always online when I want to find someone to talk01:22
hushellI'll be finish it tonight, so you will see when you get up01:22
hushellI have commited half to my github01:22
hushellmaybe I can send a PR now, 690 lines already01:23
@iglesiasghushell, it sounds good!01:25
@iglesiasgbut no rush, just issue the PR when you think it is ready01:25
hushellokay, because no documentation there I think do it later better01:26
@iglesiasghushell, I am working on LMNN01:31
@iglesiasghushell, it is not scalable *at all* at this moment :(01:31
hushelliglesiasg: good, all right, I go back to work01:35
hushelliglesiasg: hmm, I guess maybe the problem is the algorithm itself not your code01:36
@iglesiasghushell, unfortunately not, I am comparing with the author's implementation. It can handle bigger datasets than mine01:37
@iglesiasghushell, but it is fine. I just made a couple of big simplifications at the beginning01:37
@iglesiasghushell, I am refining at the moment. The one I am implementing now worked pretty well in my Matlab prototype so I have big hopes for it01:37
hushelliglesiasg: interesting, no worries, we got time. what will be your demo? I'll let my college to use it after gsoc01:40
@iglesiasghushell, classification in metagenomics data01:40
hushellI am trying to have some image demos, but Patrick likes OCR better, something like POS tagging01:45
@iglesiasgI would like images better as well :)01:45
@iglesiasgI think it is more eye-candy01:45
hushellyeah, much better demo for ipython notebook :)01:46
hushellI will think about converting some of my work to here, but the feature part will be annoying01:47
@iglesiasghushell, why?01:47
@iglesiasgwhy annotying I mean01:47
hushellUsually CRF features involves many types, color, texture, shape, position etc01:48
hushellThat's quite a lot code, I have these in matlab01:48
hushellah, you mean we can precompute these for demo?01:49
@iglesiasghushell, yeah01:52
@iglesiasghushell, or if you have them in matlab, we can just create bindings of your code for matlab01:52
hushelliglesiasg: can private functions have STL arguments?01:52
@iglesiasgit would be definitely better if your code can also be used from octave01:52
@iglesiasghushell, yes, no problem01:53
hushelland private class members?01:53
@iglesiasghushell, but it would be better if you can encapsulate those functions in another class so you don't need to include in the header the include of the STL class01:53
hushellwill not be see outside01:53
@iglesiasgthose functions and members then01:53
@iglesiasgit is what I have done with LMNN01:53
@iglesiasgI have LMNN and LMNNImpl with lot of Eigen and STL01:54
hushellgood, I will have a look01:54
@iglesiasgnothing of those in LMNN.h, everything in LMNNImpl.h01:54
@iglesiasgyou will see that I have done all the methods static in LMNNImpl.h01:54
@iglesiasgbut that is because I was confused at first01:55
@iglesiasgI will probably change it to normal sooner or later01:55
hushell:) I see01:55
hushelliglesiasg: you put everything internal in LMNNImpl.h, good idea!01:57
@iglesiasghushell, yes! It is something called opaque pointer or pimpl01:57
@iglesiasgin QT they have made a science of that :D01:58
hushelliglesiasg: Thanks! Learned a lot!01:58
hushellThen, I need to refactor a bit my code :(01:59
@iglesiasghushell, sonney2k liked the idea quite a bit01:59
@iglesiasghe says we can very much improve compilation time using that02:00
hushellI understand a bit now, so your opaque pointers are pointed to those static funcs in LMNNImpl.h02:06
hushellIn the wiki's example, they have a class pointer defined in the main class, and your case with static funcs even better02:07
@iglesiasghushell, yes02:07
@iglesiasgbut I don't think it is actually even better...02:07
@iglesiasgit implies some limitations I think02:07
@iglesiasghaving a class pointer is just fine I think02:08
hushellAfter read this, I have to say it's great idea for our development!02:08
hushelliglesiasg: better I mean, no extra class need to be defined in the main class02:08
@iglesiasgyou don't even need to include the implementation class in the public one, just doing forward declaration of the class is enough (that was what I didn't know and first, and why I made everything static)02:08
@iglesiasghushell, I am glad you liked it!02:09
hushellin this case, the hided information will never be found02:09
hushellI am leaving man. Good night!02:12
@iglesiasgsee you!02:12
hushellGood night everybody02:12
-!- hushell [] has quit [Quit: WeeChat 0.3.7]02:12
-!- pickle27 [] has joined #shogun02:51
-!- shogun-notifier- [] has quit [Quit: transmission timeout]02:56
-!- iglesiasg [] has quit [Quit: Ex-Chat]03:20
-!- pickle27 [] has quit [Quit: Leaving]03:23
shogun-buildbotbuild #1456 of deb3 - modular_interfaces is complete: Failure [failed test python_modular]  Build details are at  blamelist: Soeren Sonnenburg <>04:11
shogun-buildbotbuild #477 of nightly_default is complete: Failure [failed test]  Build details are at
-!- gsomix [~gsomix@] has joined #shogun06:54
-!- zxtx [] has joined #shogun09:19
-!- lambday [67157d4c@gateway/web/freenode/ip.] has joined #shogun09:34
lambdaygood morning09:38
-!- van51 [] has joined #shogun10:24
-!- iglesiasg [] has joined #shogun10:25
-!- mode/#shogun [+o iglesiasg] by ChanServ10:25
-!- naywhayare [] has quit [Ping timeout: 268 seconds]12:04
-!- naywhayare [] has joined #shogun12:05
-!- zxtx [] has quit [Ping timeout: 256 seconds]12:17
-!- van51 [] has quit [Remote host closed the connection]12:30
-!- shogun-notifier- [] has joined #shogun12:33
shogun-notifier-shogun: Fernando Iglesias :develop * 8f80504 / src/shogun/metric/LMNNImpl.cpp,src/shogun/metric/LMNNImpl.h:
shogun-notifier-shogun: Faster exact computation of neighbors in LMNN12:33
shogun-notifier-shogun: Fernando Iglesias :develop * 6043056 / tests/unit/metric/
shogun-notifier-shogun: Fix missing UNREF in LMNNImpl unittest12:33
shogun-notifier-shogun: Fernando Iglesias :develop * f138cb7 / / (3 files):
shogun-notifier-shogun: Merge pull request #1352 from iglesias/feature/lmnn12:33
shogun-notifier-shogun: Feature/lmnn12:33
-!- lisitsyn1 [] has joined #shogun12:34
-!- lisitsyn [] has quit [Read error: Operation timed out]12:35
shogun-buildbotbuild #1147 of cyg1 - libshogun is complete: Failure [failed compile]  Build details are at  blamelist: Fernando Iglesias <>12:50
-!- travis-ci [] has joined #shogun12:58
travis-ci[travis-ci] it's Fernando Iglesias's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun:
-!- travis-ci [] has left #shogun []12:58
shogun-buildbotbuild #1148 of cyg1 - libshogun is complete: Failure [failed compile]  Build details are at  blamelist: Fernando Iglesias <>13:02
shogun-buildbotbuild #1457 of deb3 - modular_interfaces is complete: Failure [failed test python_modular]  Build details are at  blamelist: Fernando Iglesias <>13:21
shogun-buildbotbuild #1149 of cyg1 - libshogun is complete: Failure [failed compile]  Build details are at  blamelist: Fernando Iglesias <>13:36
-!- lisitsyn1 [] has quit [Quit: Leaving.]14:03
shogun-buildbotbuild #1458 of deb3 - modular_interfaces is complete: Success [build successful]  Build details are at
-!- lisitsyn [] has joined #shogun14:07
-!- iglesiasg [] has quit [Ping timeout: 268 seconds]14:48
-!- iglesiasg [] has joined #shogun15:05
-!- iglesiasg [] has quit [Client Quit]15:05
-!- iglesiasg [] has joined #shogun15:05
-!- mode/#shogun [+o iglesiasg] by ChanServ15:05
-!- shogun-notifier- [] has quit [Quit: transmission timeout]15:33
-!- iglesiasg [] has quit [Ping timeout: 240 seconds]15:55
-!- iglesiasg [] has joined #shogun16:11
-!- mode/#shogun [+o iglesiasg] by ChanServ16:11
-!- lambday [67157d4c@gateway/web/freenode/ip.] has quit []18:24
@sonney2khey gsomix19:04
gsomixsonney2k, hey19:05
gsomixsonney2k, I thinking about interface of LibSVMFile. Look, at first column we have labels - so I added new method get_labels_vector.19:07
gsomixand other columns are sparse matrix/vector19:07
gsomixwe have get_sparse_matrix in CFile for this case19:07
gsomix*I'm thinking19:08
@sonney2kgsomix, it is done exactly this way in CSparseFeatures19:10
@sonney2kgsomix, the label is optional though19:10
@sonney2kgsomix, btw I have a bug report for get_*_vector19:10
gsomixsonney2k, get_*_vector?19:11
@sonney2kgsomix, when you just have a single line with many numbers19:11
@sonney2kit should return all these numbers19:11
@sonney2knot only when you have one number per line19:11
gsomixsonney2k, can you show me example?19:12
gsomixI didn't get.19:12
-!- vgorbati [~vgorbati@] has joined #shogun19:24
gsomixsonney2k, I just have tested csv reader with single line.19:39
gsomixworks fine19:40
-!- vgorbati [~vgorbati@] has quit [Quit: vgorbati]19:41
@sonney2kgsomix, err sorry one entry per line20:00
@sonney2kgsomix, ../data/label_train_regression.dat20:00
@sonney2kgsomix, labels_io_modular.py20:00
gsomixsonney2k, ah, ok. you want get all this number in one vector?20:02
@sonney2kgsomix, yes20:03
@sonney2kgsomix, so get*vector should work with both variants20:04
gsomixsonney2k, I'll add flag for this case, ok?20:04
@sonney2kgsomix, no20:05
@sonney2kgsomix, just make it work transparantly20:05
gsomixsonney2k, but I have LineReader, that read lines with  now.20:06
gsomix*with '\n' at end20:06
gsomixshould I make it more configurable?20:07
gsomixI mean LineReader that contains in CVSReader.20:07
gsomix* is contained20:09
@sonney2kgsomix, I don't get it20:09
@sonney2kgsomix, if you line reader reads a single line then fine20:09
@sonney2kgsomix, but for get_*vector you should read the whole file anyways and if it has > 1 line20:09
@sonney2kit should just read the other lines and build the vector from that20:10
gsomixwhole file? O_O20:10
@sonney2kgsomix, I would even say that you could just use the matrix reading code for that20:11
@sonney2kand then ``convert'' the matrix to vector20:11
@sonney2kgsomix, errm what is surprising?20:11
gsomixI thought get_vector should, for example in csv, read one line and then should parse it. just get ONE vector stored in file (in model vector-features).20:13
@sonney2kgsomix, no these CFile based ops are at least currently parsing the full file20:14
gsomixok, I'll do it in this way.20:14
@sonney2kgsomix, however the streaming* features will need it the way you are doing it now20:15
gsomixsonney2k, ok. so. now I should make it in "read-whole-file" way, right?20:19
-!- zxtx [] has joined #shogun20:21
gsomixsonney2k, and sorry for this. I'm just thoughtless20:25
@sonney2kgsomix, well everything is ok just get vector not20:26
@sonney2kgsomix, just use get_*_matrix there and then if it has num_columns == 1 || num_rows==1 return sth reasonable20:26
@sonney2kby doing SGMatrix -> SGVector20:27
lisitsynahhhr sonney2k I forgot one thing20:32
lisitsynabout foulwall stuff20:32
@sonney2klisitsyn, one thing?20:32
lisitsynsonney2k: that MIT-CBCL dataset has some strnage license20:32
lisitsyn3. You may not distribute the downloaded images, or any portion thereof, to anyone else.20:32
lisitsynsonney2k: ^20:32
@sonney2klisitsyn, ok so it has to be dropped then20:33
lisitsynI guess so20:33
lisitsynstupid license :(20:33
@sonney2knot a problem20:33
@sonney2kthe other examples are sufficient20:34
lisitsynthis dataset is really really cool for DR20:34
lisitsynit has real intrinsic dim of 220:34
@sonney2klisitsyn, why not create an artificial one with the same properties?20:39
lisitsynsonney2k: hah yes I wanted to20:40
@sonney2klisitsyn, I mean you know take some 3d object rotate it or so20:40
@sonney2kactually I generated some data set like this for teaching. not that beautiful though20:46
@sonney2kIIRC was some 2d-plane rotated to be in some n-dim space20:46
lisitsynwell let foulwall do that then ;)20:46
lisitsynit should be easy to script such a rotating in blender20:47
@sonney2klisitsyn, I would rather move on and take the data we have20:48
lisitsynI am ok with it too20:48
@sonney2klisitsyn, there are a couple of things that require manual work like hierarchical clustering20:49
gsomixsonney2k, btw did you got my email yeasterday?20:56
gsomixawful day. I was in city (parents was needed help) from 15:00 to 21:00.20:57
gsomixand 80% time we was in car.20:58
gsomixvery, very hard traffic20:58
gsomixand many car accident at city20:58
gsomixthe city has gone mad20:58
-!- iglesiasg [] has quit [Ping timeout: 264 seconds]21:11
@sonney2kgsomix, yes I did no clue what this was about though21:12
@sonney2kbut I will have the same tomorrow getting back home21:12
gsomixsonney2k, huh, ok.21:13
-!- gsomix_ [~gsomix@] has joined #shogun21:20
-!- gsomix [~gsomix@] has quit [Ping timeout: 256 seconds]21:24
-!- pickle27 [~Kevin@] has joined #shogun22:14
lisitsynpickle27: hey22:16
lisitsynpickle27: how is it going?22:17
pickle27lisitsyn: good! you?22:17
lisitsynpickle27: quite good too, last week was quite intense22:18
lisitsynI moved to another place and a lot of things at my job22:18
pickle27lots of work?22:18
lisitsynpickle27: yeah we had kind of deadline to have a showcase22:19
lisitsynit failed though haha22:19
pickle27oh no!22:19
lisitsynbut that's not an issue of mine, we have other people to sell things22:19
pickle27right cool22:21
pickle27I defended my thesis on Thurs!22:21
lisitsynI missed that22:21
lisitsynso how it was?22:21
pickle27lisitsyn: it went well!22:21
lisitsynso you are Msc now?22:21
lisitsynwhat does it mean?22:22
pickle27I'm under comp eng so its a masters of applied science but essentially yes22:22
lisitsynno clue about that :D22:22
pickle27lisitsyn: everything is going well though. I should have a PR for my audio example as an ipython notebook next week22:23
lisitsynpickle27: good!22:24
lisitsynpickle27: when do you start your job?22:24
pickle27lisitsyn: not until November22:24
lisitsynI see!22:24
pickle27lisitsyn: hows cmake coming along?22:31
lisitsynpickle27: shame for me I am not that helpful for wiking but he is doing really well22:32
lisitsynbetter and better :)22:32
pickle27lisitsyn: im excited for it22:32
lisitsynyeah me too22:32
@sonney2klisitsyn, btw did you have a chance to look at that bug23:38
lisitsynsonney2k: right now23:38
lisitsynsonney2k: Heiko wins I will add some tests  ;)23:39
@sonney2klisitsyn, heh yeah and wiking - they were very pushy wrt23:42
@sonney2kI even started writing tests my own :)23:42
lisitsynsonney2k: yeah they make the world go round23:42
-!- shogun-notifier- [] has joined #shogun23:58
shogun-notifier-shogun: Soeren Sonnenburg :develop * c1bbb34 / examples/undocumented/python_modular/
shogun-notifier-shogun: fix function name in example23:58
--- Log closed Sun Aug 04 00:00:00 2013