Open in new window / Try shogun cloud
--- Log opened Mon Jun 10 00:00:38 2013
gsomixthis is not funny, but now I know one more term in German - "eich-invarianz".00:07
gsomixthanks to my book of classical electrodynamics.00:07
gsomixprocrastination time!00:08
-!- gsomix [~gsomix@83.234.54.9] has quit [Ping timeout: 245 seconds]00:22
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has left #shogun ["QUIT :Leaving."]00:39
-!- FSCV [~FSCV@189.139.252.135] has quit [Quit: Leaving]03:04
-!- pickle27 [~kevin@70-36-138-146.dsl.dynamic.sonic.net] has joined #shogun03:43
-!- nube [~rho@49.244.41.114] has quit [Quit: Leaving.]03:44
shogun-buildbotbuild #423 of nightly_default is complete: Failure [failed test]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/nightly_default/builds/42304:06
-!- pickle27 [~kevin@70-36-138-146.dsl.dynamic.sonic.net] has quit [Quit: Leaving]04:46
-!- lisitsyn [~lisitsyn@109-226-114-235.clients.tlt.100megabit.ru] has quit [Quit: Leaving.]05:01
-!- gsomix [~gsomix@83.234.169.56] has joined #shogun05:01
gsomixgood morning05:01
-!- foulwall [~foulwall@2001:da8:215:c252:aced:801f:4a14:f26c] has joined #shogun05:10
-!- foulwall [~foulwall@2001:da8:215:c252:aced:801f:4a14:f26c] has quit [Remote host closed the connection]05:55
-!- lisitsyn [~lisitsin@mxs.kg.ru] has joined #shogun08:28
-!- mode/#shogun [+o lisitsyn] by ChanServ08:28
gsomixnot interesting08:34
gsomixexam is automagically passed08:34
-!- gsomix [~gsomix@83.234.169.56] has quit [Quit: Leaving]08:45
-!- gsomix [~Miranda@83.234.169.56] has joined #shogun08:48
-!- sonne|work [~sonnenbu@sams-office-nat.tomtomgroup.com] has joined #shogun09:18
gsomixsonne|work: hey09:21
sonne|workho09:21
sonne|workgsomix: not in exam?09:21
gsomixsonne|work: passed09:22
sonne|workhah very good :)09:22
-!- gsomix [~Miranda@83.234.169.56] has quit [Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org]09:50
-!- hushell [~hushell@c-24-21-141-32.hsd1.or.comcast.net] has quit [Ping timeout: 256 seconds]10:16
-!- gsomix [~Miranda@r206-10.smr.ru] has joined #shogun10:44
-!- lambday [67157d36@gateway/web/cgi-irc/kiwiirc.com/ip.103.21.125.54] has joined #shogun11:11
lambdaysonney2k: moin :)11:11
sonne|workhey lambday!11:11
lambdaysonne|work: hi :)11:11
-!- iglesiasg [c1934d16@gateway/web/freenode/ip.193.147.77.22] has joined #shogun11:24
-!- mode/#shogun [+o iglesiasg] by ChanServ11:24
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun12:02
shogun-notifier-shogun: Viktor Gal :feature/CMake * 97bfa44 / / (4 files): https://github.com/shogun-toolbox/shogun/commit/97bfa445963e70b2ac008cd6ea8cbe24b4553f7212:02
shogun-notifier-shogun: Fix backporting of package finders from 2.8.812:02
-!- travis-ci [~travis-ci@ec2-50-17-17-135.compute-1.amazonaws.com] has joined #shogun12:11
travis-ci[travis-ci] it's Viktor Gal's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/794457612:11
-!- travis-ci [~travis-ci@ec2-50-17-17-135.compute-1.amazonaws.com] has left #shogun []12:11
-!- HeikoS1 [~heiko@nat-189-35.internal.eduroam.ucl.ac.uk] has joined #shogun12:14
HeikoS1lambday: around?12:18
lambdayHeikoS1: yes12:18
HeikoS1good, hi :)12:18
lambdaychecked the log, works fine :)12:18
lambdayhi12:18
HeikoS1nice12:19
HeikoS1okay12:19
lambdayhow about12:19
HeikoS1so what I would suggest for the dense exact matrix logs is12:19
lambdayokay12:19
HeikoS1to have in instance of the linear operator function class that does exact matrix log12:19
HeikoS1and the linear operator is just a dense matrix (which is stored and can be accessed)12:19
lambdayyes... CLogOperatorFunction12:20
HeikoS1then the linear operator function class just accesses the matrix and creates a task12:20
HeikoS1which simply uses eigen to computet the log12:20
HeikoS1this way, we would already use the full framework12:20
HeikoS1CExactMatrixLog12:20
HeikoS1or even CMatrixLog12:20
HeikoS1or CDenseMatrixLog12:20
lambdayHeikoS1: perfect!12:20
HeikoS1because it will only work for CDenseMatrix liena roperators12:21
lambdayyes12:21
HeikoS1do you think this will be useful?12:21
lambdayand, what should be a good name for the subclass of tasks (jobs) that does that12:21
HeikoS1in terms of testing the framework ?12:21
lambdayI was thinking of CTraceLogComputationJob or something12:21
HeikoS1since you had doubts :)12:21
lambdayHeikoS1: of course!! the thing that you said about focusing more on the framework is just perfect!12:21
HeikoS1okay then, note that you can really go for the full things12:22
lambdaywe'll already have a working thing.. and we'll iteratively integrate things12:22
HeikoS1you can do the trace with normal vectors12:22
HeikoS1so all classes are used12:22
HeikoS1CExactLogTask12:22
HeikoS1or similar12:22
HeikoS1is a good name12:22
lambdayhmmm.. I suck at choosing names! :(12:23
HeikoS1lambday: haha, me too :)12:23
lambdayno, its a really good name12:23
lambday:D12:23
HeikoS1always good to ask some people12:23
HeikoS1lisitsyn:  around?12:23
HeikoS1wiking: around?12:23
HeikoS1lisitsyn: any updates on the removal of "clone" ?12:23
HeikoS1wiking:  any updates on the automagic generated set of unit-tests?12:24
lambdayHeikoS1: I'll send the class diagram soon12:26
HeikoS1lambday: do we really need a new diagram for this?12:26
HeikoS1its just a few instances added right?12:26
lambdayHeikoS1: yes..12:26
HeikoS1I would rather not put those into the diagram12:26
HeikoS1since it gets too large then12:26
HeikoS1(we can use it later for documentation, so lets keep it clean=12:27
HeikoS1maybe rather start implementing the abstract bases12:27
HeikoS1and then our first easy implementation12:27
HeikoS1that already will be a huge patch12:27
lambdayHeikoS1: yup! :-/12:27
lambdaywhere should I put the classes?12:28
lambdaymathematics? statistics?12:28
HeikoS1lambday: good point12:30
HeikoS1thinkink12:30
* lambday too thinks12:31
HeikoS1I suggest this:12:31
HeikoS1statistics/logdet12:31
HeikoS1should have a seperate folder12:31
HeikoS1since its so many classes12:31
HeikoS1but the computation class should be somewhere else12:31
lambdaybase?12:32
lambdayno that's bad12:32
HeikoS1lib12:32
HeikoS1but it should also have a seperate subfolder12:32
HeikoS1call it computation for now12:33
HeikoS1and then in there we can define the base, the serial one, and maybe even the tasks12:33
HeikoS1no the tasks go into statistics/logdet12:33
lambdaythe base class of CIndependentTask, should be in the lib, right?12:34
lambdayor Job12:34
HeikoS1job12:34
HeikoS1yeah put it into lib for now12:34
lambdayand the CIndependentJobResult12:34
lambdaythis one too12:34
HeikoS1and the computation class also12:34
HeikoS1yes12:34
HeikoS1so there are 3 base classes12:34
HeikoS1and 1 implementation (serial)12:34
lambdayserial?12:35
HeikoS1lambday: btw we now have clone() for all CSGObjects, so that might be useful when creating computation jobs / parallel computation12:35
HeikoS1lambday: yes, first implementation is serial12:35
HeikoS1one job after another12:35
lambdayoh you mean that12:35
lambdayand clone, ya saw the mail12:35
lambdaydeep copy..12:35
lambdaybut we have shared things among the jobs12:36
HeikoS1lambday: yes, lets worry about this later, was just a comment12:36
HeikoS1first is serial12:36
HeikoS1the job stuff might eat some time once we start extending it, so lets start again simple12:37
lambdaythe CExactLogJob would have this m_log_operator (for the log(C)) and m_vector (samples), and the compute then simply applies the log_operator on the sample vec, and then compute the dot product of the result vec and the original vec12:39
lambdayand gives a list fo computation results12:39
lambdayaggregate then just sums them up12:39
lambdaylog_operator is shared among all jobs12:40
HeikoS1lambday: wait ...12:40
lambdayokay12:41
HeikoS1lambday: so things should be exactly as discussed before12:41
HeikoS1let me find the mail12:41
lambdayyes.. I'm trying to fit this in terms of previously discussed things..12:42
HeikoS1the main class is this CLogDetEstimator12:44
lambdayyes12:44
-!- iglesiasg [c1934d16@gateway/web/freenode/ip.193.147.77.22] has quit [Ping timeout: 250 seconds]12:45
HeikoS1why do you have the samples in the job?12:45
lambdayin the existing diagram you mean?12:46
HeikoS1no you just wrote this12:46
HeikoS1in my memory, the trace samples are only only in the CLogDetEstimator class12:46
HeikoS1and the dot products are computed there12:46
HeikoS1or did we change this?12:46
HeikoS1ah12:46
HeikoS1sorry12:46
HeikoS1lambday: sorry it has been a while12:47
HeikoS1you are totally right12:47
HeikoS1the task compute log(M)*s12:47
HeikoS1so it needs s12:47
lambdayhmmm... yes... no problem, even I'm forgetting things :(12:47
lambdayokay, so for exact log12:47
lambdaywe do the same12:48
HeikoS1yes12:48
lambdaycompute log(M)*s12:48
HeikoS1thats the point12:48
lambdayand then the dot product?12:48
HeikoS1so the main class CLogDetEstimator12:48
HeikoS1uses exactly the same code12:48
HeikoS1to compute exact log and approximate log12:48
lambdayyes12:48
HeikoS1I would maybe start with this class12:48
HeikoS1and all its abstract dependencies12:49
HeikoS1then you can push and we can discuss12:49
HeikoS1please work in a seperate feature branch for this12:49
lambdayHeikoS1: as in?12:49
HeikoS1we can then push into shogun source in this different branch and develop in the usual way12:49
HeikoS1while we dont touch the develop branch yet12:49
lambdaygit flow?12:49
HeikoS1use gitflow to create a new branch12:50
lambdayokay12:50
HeikoS1yeah or do it by hand12:50
HeikoS1and when you push, push into the same branch12:50
HeikoS1and the PR is then also against the same branch in shogun12:50
HeikoS1once things work, we merge , then continue extending12:50
lambdayokay..12:50
lambdayand before pushing, rebase against develop12:51
HeikoS1but if the exact log works, many things to test already12:51
lambday?12:51
HeikoS1yeah do this from time to time to avoid it getting out of synch12:51
HeikoS1make sure not to do many changes to existing code to avoid conflicts12:51
lambdayHeikoS1: ya.. mostly it will be just addition12:52
HeikoS1whenever you change something existing, do it in develop and push there, then rebase your feature branch12:52
HeikoS1lambday: exactly12:52
lambdayokay12:52
@lisitsynHeikoS1: not yet sorry12:56
-!- vgorbati [c3ee5cb1@gateway/web/freenode/ip.195.238.92.177] has joined #shogun13:05
HeikoS1lisitsyn:  not that you could use the deep copy clone if you wanted13:13
HeikoS1lisitsyn:  we could also add a list of parameters to ignore when cloning13:13
-!- thoralf [~thoralf@enki.zib.de] has joined #shogun13:17
thoralfHey.13:18
HeikoS1thoralf: hi!13:18
thoralfHey Mr. S113:18
@wikingHeikoS1: pong13:18
HeikoS1S1? :)13:18
HeikoS1haha13:18
HeikoS1irc madness13:18
HeikoS1wiking: hey!13:19
HeikoS1how is this test stuff going?13:19
thoralfHeikoS1: IRC still feels like nineties :)13:19
@wikingthoralf: why u want google wave? :)13:19
HeikoS1thoralf: indeed13:19
HeikoS1thoralf: most people I tell: If you have problems, join us in IRC say " what does IRC mean?" :)13:19
HeikoS1but is there an alternative?13:19
@lisitsynskype :D13:19
HeikoS1lisitsyn: haha :)13:20
@lisitsynno I like irc13:20
@lisitsynwhat is wrong with irc?13:20
@wikingHeikoS1: so the only question remains: do you want the examples to be generated in the approriate file, or we dont care about that. i.e. GaussianKernel->clone() test should be in GaussianKernel_unittest.cc, or should we just have one base/clone_unittest.cc?13:20
HeikoS1wiking: nono, just one sepearte file for all those tests13:20
HeikoS1otherwise its horror13:20
@lisitsyn>700 files13:21
HeikoS1the file should be in base13:21
@lisitsyninstantly13:21
@wikinglisitsyn: well then we can claim that we have a loooot of unit tests :)13:21
HeikoS1and be called comething as SGObject_equals_clone_unittest or so13:21
@lisitsynwiking: yeah more than 700 :D13:21
HeikoS1lisitsyn, wiking this file will be very useful13:21
@lisitsynjust count # of classes13:21
@wikingHeikoS1: so basically you would do a ->clone() + equals() call in that test /:)13:21
@lisitsynand say we have > # of classes tests13:21
HeikoS1since if you run it with valgrind, it will detect whether parameters have not been properly initialised13:21
HeikoS1wiking: yes, the code would look as the one I sent you13:22
HeikoS1yesterday13:22
@wikingHeikoS1: plz send it in an email :)13:22
HeikoS1ok13:22
@wikingHeikoS1: i dont wanna dig in irc logs13:22
@wikingbtw: can i push it in if it's ready and put it on skip? and then when u push your final code then we can active the unit test?13:23
HeikoS1wiking: thats fine!13:24
@wikinghahaha btw my name is neither in CONTRIBUTIONS nor in AUTHORS :)13:24
HeikoS1wiking: sent the mail, just replace the GaussianKernel with any non-abstract class13:24
@wikingyep got it13:24
HeikoS1wiking: add it then :)13:24
HeikoS1wiking: cool, many thanks!13:24
HeikoS1lisitsyn: how long will the clone removing take?13:24
@wikingHeikoS1: we have already one SGObject_unittest.cc13:25
@wikingHeikoS1: i'm tempted to keep that file13:25
@wikingjust make it a template ;P13:25
HeikoS1wiking: I know13:25
HeikoS1wiking: no, please make a new file13:26
HeikoS1with different name13:26
HeikoS1since people will edit the existing one13:26
HeikoS1and put something as "autogenerated file - do not edit" on tup13:26
HeikoS1oh, and you can add your name in there in the GPL copyright :D13:26
HeikoS1only include is class_list.h btw13:27
-!- iglesiasg [c1934d16@gateway/web/freenode/ip.193.147.77.22] has joined #shogun13:43
-!- mode/#shogun [+o iglesiasg] by ChanServ13:43
@lisitsynHeikoS1: I don't kno13:46
HeikoS1lisitsyn: thing is I dont want to touch those things since I did not write the code and dont really know whats going on - since its not tested I won't notice if I break stuff ;)13:46
@lisitsynHeikoS1: let me dig into that tonight and then I'll let you know13:47
HeikoS1lisitsyn:  cool thanks! :)13:47
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has joined #shogun13:48
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has quit [Read error: Connection reset by peer]13:57
thoralfHeikoS1: I closed issue #1164, because I was wrong.13:59
HeikoS1thoralf: what was the problem then?13:59
HeikoS1I saw13:59
HeikoS1please add a comment on how to use it, so others dont make this mistake again :)14:00
thoralfHeikoS1: I don't know how to use it.  For inc=1 it works like I expected.  inc>1 is something used for multiclass settings.14:01
HeikoS1thoralf: okay, Ill push the others then to document it14:02
-!- lambday [67157d36@gateway/web/cgi-irc/kiwiirc.com/ip.103.21.125.54] has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]14:04
thoralf"A hand crafted IRC client"?  So they don't use compilers? :)14:05
-!- HeikoS2 [9052bd23@gateway/web/cgi-irc/kiwiirc.com/ip.144.82.189.35] has joined #shogun14:08
HeikoS2thoralf:this client is actually very nice!14:08
HeikoS2all web-base but with comfort14:08
HeikoS2even has autocompletition14:08
-!- HeikoS2 [9052bd23@gateway/web/cgi-irc/kiwiirc.com/ip.144.82.189.35] has left #shogun []14:08
@iglesiasgthoralf: hey14:08
thoralfiglesiasg: Hey.14:09
@iglesiasgthoralf: do you think it can be right for inc>1?14:09
@iglesiasgthoralf: it does not really make sense for me then14:09
thoralfiglesiasg: I think you should ask soeren.  I suppose, this method does take something like a vector of length (num_classes*num_examples) and then only taking every inc-th element to compute the arg_max of a specific subset of decision values?14:12
@iglesiasgthoralf: let's see if we get an answer from him today14:14
thoralfSo "len" is actually not the length of the vector, as I was thinking, but the number of examples or sth like that.14:14
@iglesiasgthoralf: in the case you are saying the argument len should be equal to num_examples14:14
@iglesiasgyeah14:14
thoralfYes, for inc=1 it should hold that len=length(vector).14:15
-!- vgorbati [c3ee5cb1@gateway/web/freenode/ip.195.238.92.177] has quit [Ping timeout: 250 seconds]14:47
-!- shogun-notifier- [~irker@7nn.de] has quit [Quit: transmission timeout]15:02
-!- gsomix [~Miranda@r206-10.smr.ru] has quit [Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org]15:12
-!- lambday [67157d36@gateway/web/cgi-irc/kiwiirc.com/ip.103.21.125.54] has joined #shogun15:32
-!- nube [~rho@49.244.57.131] has joined #shogun15:43
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has joined #shogun15:53
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun16:18
shogun-notifier-shogun: Viktor Gal :feature/CMake * ea7afd6 / src/shogun/CMakeLists.txt: https://github.com/shogun-toolbox/shogun/commit/ea7afd6e224fd825cf7f6daaf7bcd5b3ffe5faef16:18
shogun-notifier-shogun: Add 'make install' target for libshogun16:18
-!- iglesiasg [c1934d16@gateway/web/freenode/ip.193.147.77.22] has quit [Quit: Page closed]16:26
shogun-notifier-shogun: Viktor Gal :feature/CMake * 3c19faa / CMakeLists.txt,src/shogun/CMakeLists.txt: https://github.com/shogun-toolbox/shogun/commit/3c19faac1aa95aaaad1f0e00e02e75f54d6da7f616:31
shogun-notifier-shogun: Fix LZO linking flags and class_list.cpp compilation16:31
-!- FSCV [~FSCV@187.210.54.166] has joined #shogun16:37
-!- travis-ci [~travis-ci@ec2-107-22-45-75.compute-1.amazonaws.com] has joined #shogun16:40
travis-ci[travis-ci] it's Viktor Gal's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/795137116:40
-!- travis-ci [~travis-ci@ec2-107-22-45-75.compute-1.amazonaws.com] has left #shogun []16:40
shogun-notifier-shogun: Viktor Gal :feature/CMake * 0917a31 / cmake/FindLZO.cmake: https://github.com/shogun-toolbox/shogun/commit/0917a31acbc7b598374570d95c74a780f93c40a717:25
shogun-notifier-shogun: Fix FindLZO.cmake17:25
shogun-notifier-shogun: Detecting liblzo on darwin was not working and the linking flags17:25
shogun-notifier-shogun: were not exported properly17:25
-!- travis-ci [~travis-ci@ec2-107-22-45-75.compute-1.amazonaws.com] has joined #shogun17:37
travis-ci[travis-ci] it's Viktor Gal's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/795311417:37
-!- travis-ci [~travis-ci@ec2-107-22-45-75.compute-1.amazonaws.com] has left #shogun []17:37
@wikingwoohoooo 2 successful build out of 9 \o/17:43
-!- naywhaya1e is now known as naywhayare17:43
lambdaytemplate declaration has to be in single line to make it pass the PT_NOT_GENERIC thing in class_list.cpp :|17:52
-!- cwidmer [5fd02c64@gateway/web/freenode/ip.95.208.44.100] has joined #shogun18:27
-!- sonney2k [~shogun@7nn.de] has quit [Excess Flood]18:31
-!- sonney2k [~shogun@7nn.de] has joined #shogun18:31
-!- cwidmer [5fd02c64@gateway/web/freenode/ip.95.208.44.100] has quit [Quit: Page closed]18:43
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has left #shogun ["PING 1370882948"]18:49
-!- zxtx [~zv@cpe-75-83-151-252.socal.res.rr.com] has quit [Ping timeout: 252 seconds]19:24
-!- mode/#shogun [+o sonney2k] by ChanServ19:40
-!- lisitsyn [~lisitsin@mxs.kg.ru] has quit [Quit: Leaving.]19:45
-!- nube [~rho@49.244.57.131] has quit [Ping timeout: 246 seconds]20:23
-!- shogun-notifier- [~irker@7nn.de] has quit [Quit: transmission timeout]20:25
-!- vgorbati [~vgorbati@212.2.159.34] has joined #shogun20:25
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun20:30
shogun-notifier-shogun: Soeren Sonnenburg :feature/sparse_matrix * afeb303 / / (7 files): https://github.com/shogun-toolbox/shogun/commit/afeb3034f0a7190864a35adc271faa3b5e44147d20:30
shogun-notifier-shogun: make sparse features use SGSparseMatrix underneath20:30
-!- nube [~rho@49.244.74.29] has joined #shogun20:38
@sonney2kHeikoS, you said you don't get why we have SGVector?20:41
@sonney2kHeikoS, could you explain that?20:41
@sonney2kHeikoS, and you did complain the structure of the sparse features. What's wrong with it?20:41
HeikoS1sonney2k: so about the vector20:42
HeikoS1sometimes it would be useful if SGVector and SGMatrix had a common bas20:42
HeikoS1i.e. Vector is a matrix with num_cols=120:43
HeikoS1then methods could either return vectors or matrices20:43
HeikoS1changing their behaviour at implementation time20:43
HeikoS1also, all methods that we call on these objects are the same20:43
HeikoS1like set_const, math operations etc20:43
HeikoS1and about the sparse, I actually meant string20:44
HeikoS1why do we have that?20:44
HeikoS1why not just use vector for string?20:44
HeikoS1memory is pre-allocated anyways20:44
HeikoS1sonney2k: sorry, I meant runtime, not implementation time20:46
-!- travis-ci [~travis-ci@ec2-54-224-160-16.compute-1.amazonaws.com] has joined #shogun20:47
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: http://travis-ci.org/shogun-toolbox/shogun/builds/795860220:47
-!- travis-ci [~travis-ci@ec2-54-224-160-16.compute-1.amazonaws.com] has left #shogun []20:47
-!- lisitsyn [~lisitsyn@83.234.54.170] has joined #shogun20:47
@sonney2kHeikoS, dropping SGString is already decided20:47
@sonney2kHeikoS, about SGVector - the same argument holds for nd-arrays then20:48
@sonney2kHeikoS, SGVector got introduced to be minimal. back then a ptr to data and length20:49
HeikoS1sonney2k: but you want to replace it with the variable length right?20:49
@sonney2kto be efficient when you just have very few dims20:49
@sonney2kit was never meant to be derived from some baseclass (overhead!)20:49
HeikoS1sonney2k: I wonder whether this would hurt us, treating vectors as 2d arrays?20:49
HeikoS1sonney2k: ok, maybe the solution is to have this eigen factory for math stuff20:50
shogun-notifier-shogun: Soeren Sonnenburg :feature/sparse_matrix * 3902963 / src/shogun/features/SparseFeatures.cpp,src/shogun/features/SparseFeatures.h: https://github.com/shogun-toolbox/shogun/commit/3902963981e337a8f808916702ab43a14680dc4520:50
shogun-notifier-shogun: don't change the api return sparse transposed features20:50
HeikoS1then all these problems disappear20:50
HeikoS1since eigen does have this base class for both vector and matrix20:50
HeikoS1ah but still for interfacves its sometimes annoying20:50
@sonney2kHeikoS, but then we have to rely on eigen3 completely20:51
@sonney2kand that is not an option20:51
HeikoS1sonney2k: no as you said, have a factory20:51
HeikoS1that is seperate and then one can use eigen's math functions on matrices/vectors20:51
@sonney2kshogun started with no vectors/matrices at all20:51
@sonney2kit was all about strings20:51
HeikoS1well thats different now isnt it?20:52
@sonney2klots and lots of code are still about strings20:52
@sonney2kbut yes20:52
lisitsyneigen is easy peasy dependency20:53
lisitsynjust my 2 cents :D20:53
HeikoS1I think sonney2k suggestion with the factory is nice20:53
HeikoS1then one can decide whether to rely on eigen or not20:53
HeikoS1but re-implementing all matrix functions (mean/cov/bla) is a little annoying and we even have to do it twice since SGMatrix/SGVector20:54
@sonney2kHeikoS, well we certainly could implement it just once but that is not the point here I guess20:55
lisitsynI am still not a fan of having math in sgmatrix20:55
-!- zxtx [~zv@rrcs-74-62-200-195.west.biz.rr.com] has joined #shogun20:56
@sonney2klisitsyn, you want it back in CMath?20:56
lisitsynsonney2k: I don't know - I'd prefer to treat them as eigen matrices20:56
HeikoS1sonney2k: why dont you want to rely on eigen?20:57
HeikoS1we could remove all this ugly stuff ... and have a well tested version of it instead20:57
lisitsynin the end we'd have to rely on something20:57
lisitsyneither blas or eigen3 or armadillo or anything20:57
HeikoS1I gotta go now, see you tomorrow!20:58
HeikoS1lisitsyn: could you check the clone stuff at some point? Id like to merge before it gets out of synch with the dev branch :)20:58
lisitsynHeikoS1: yeah let me recover a bit from job thing and then I'll check20:59
@sonney2klisitsyn, only for complex stuff. for lot of shogun stuff all you need is a dot product20:59
@sonney2kno cov/mean whatever20:59
HeikoS1lisitsyn:  no worries, going home anyway20:59
HeikoS1sonney2k: dot can be in shogun20:59
HeikoS1thats easy20:59
HeikoS1but we have much more right?20:59
@sonney2kit is of course20:59
HeikoS1dot should be in shogun20:59
HeikoS1since its fast then21:00
@sonney2kI guess we have to define classes of algorithms that we want to work w/o eigen21:01
@sonney2kand I am totally fine that GPs/dimred etc require eigen21:01
HeikoS1sonney2k: again, what do you have against it?21:01
@sonney2kI don't think any svm needs it21:01
lisitsynsonney2k: it is not a library I mean21:01
HeikoS1sonney2k: sure, svms dont need it21:01
lisitsynjust headers21:01
@sonney2kHeikoS, the usual issue people don't install it21:01
HeikoS1but svms also dont need any matrix/vector functions apart from dot21:01
@sonney2kall questions we get on the mailinglist related to install problems are due to dependencies21:02
HeikoS1sonney2k: yes thats true21:02
lisitsynit is easier to install than blas21:02
HeikoS1that is also true21:02
@sonney2klisitsyn, so lets get rid of blas/lapack and use eigen for all this stuff21:03
@sonney2kbut lets keep the stuff working that doesn't need eigen21:03
HeikoS1me personally, I wont develop any ML code that uses matrices without eigen, its just so nice21:03
HeikoS1sonney2k: yep agreed, I think roman will add the factory btw21:03
@sonney2kI more or less didn't use any matrix based libs for real21:04
HeikoS1also their tools are very nice: linear systems, factorizations21:04
HeikoS1how do you do linear solves?21:04
HeikoS1we have to depend on something for that21:04
@sonney2kI don't... sure we do.21:04
HeikoS1but I agree for the svms21:05
HeikoS1should work straight away21:05
@sonney2keigen3 is totally fine if you need it. just no hard dependency.21:05
HeikoS1sonney2k: have you seen the serialistaion tests of lamday?21:06
@sonney2kHeikoS, partially yes21:06
HeikoS1almost everything is tested now so feel free to start destroying things :)21:06
HeikoS1btw the equals/clone tests will serve some additional nice things21:06
@sonney2kHeikoS, sparse stuff is building ... https://travis-ci.org/shogun-toolbox/shogun/builds/795920421:06
HeikoS1very often errors arise due to non-initialised class variables21:06
HeikoS1but now the tests will fail if one forgets that21:07
HeikoS1sonney2k: cool!21:07
@sonney2kHeikoS, cool!21:07
@sonney2kbut you need valgrind to check that no?21:07
HeikoS1sonney2k: they might pass if not used21:07
HeikoS1but they usually should not21:07
HeikoS1since twice uninitialized memory should not be equal21:07
@sonney2kHeikoS, any idea how to serialize SGSparseMatrix?21:08
@sonney2kthings fail now https://travis-ci.org/shogun-toolbox/shogun/jobs/795920821:08
@sonney2kI currently just set it to override the vector pointers etc21:08
HeikoS1whats the problem currently?21:08
HeikoS1cant we just write the entries to the file one by one?21:09
@sonney2kI am currently doing    m_parameters->add(&sparse_feature_matrix.num_features, "sparse_feature_matrix.num_features",...)21:09
@sonney2kHeikoS, we had support for this SGSparseVector<>* stuff21:10
@sonney2kbut not the referenced data type21:10
@sonney2kHeikoS, so we have the same problem we had with SGVector now21:10
@sonney2kI don't remember how you solved it21:10
@sonney2kif there was no migration framework I would say we need to read in the data and then assign the object with foo=SGSparseMatrix(...)21:11
-!- travis-ci [~travis-ci@ec2-50-19-67-126.compute-1.amazonaws.com] has joined #shogun21:15
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: http://travis-ci.org/shogun-toolbox/shogun/builds/795920421:15
-!- travis-ci [~travis-ci@ec2-50-19-67-126.compute-1.amazonaws.com] has left #shogun []21:15
@sonney2kHeikoS, my particular concern is how can we serialize SGReferenced data or any future smart pointer enabled data at all?!21:17
@sonney2kI mean we have to get references right21:17
@sonney2krefcounts I mean21:18
@sonney2kotherwise we will have crashes or memory leaks21:18
@sonney2klambday, maybe you have any idea?21:19
HeikoS1sonney2k: why?21:21
HeikoS1one can just recursively follow the references from within the file21:22
HeikoS1and then increment21:22
HeikoS1why would one store the refcount?21:22
HeikoS1when data is loaded, it is not references from anywhere21:22
HeikoS1at least thats how I would do it21:22
HeikoS1so just dont allow an SGMatrix using data of a class which is then de-serialised21:23
HeikoS1just have a new instance for loading21:23
HeikoS1ok really going now, talk to you tomorro21:23
HeikoS1w21:23
-!- HeikoS1 [~heiko@nat-189-35.internal.eduroam.ucl.ac.uk] has quit [Quit: Leaving.]21:23
@sonney2kok tomorrow I will give you an example21:24
-!- vgorbati [~vgorbati@212.2.159.34] has quit [Quit: vgorbati]21:54
lisitsynsonney2k: we are now using deprecated numpy api22:17
lisitsynaccording to warnings I see22:17
@wiking:)22:18
@wikingdepreeeeeeeeeeeeeeeeecaaaateeeeeeeeeeeeeeee IT22:18
shogun-notifier-shogun: Sergey Lisitsyn :develop * 13616ed / src/ (9 files): https://github.com/shogun-toolbox/shogun/commit/13616ede4921bc33cd5a5ac965cf0d6bbb56f7fd23:28
shogun-notifier-shogun: Remove redundant clone, drop MT composite machine23:28
lisitsynwiking: just drop any class in case of doubts23:29
lisitsyn:D23:29
lisitsynlike did I23:29
-!- lambday [67157d36@gateway/web/cgi-irc/kiwiirc.com/ip.103.21.125.54] has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]23:30
@wiking:>23:30
shogun-buildbotbuild #933 of cyg1 - libshogun is complete: Failure [failed configure]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/933  blamelist: Sergey Lisitsyn <lisitsyn.s.o@gmail.com>23:33
lisitsynah compilers are for dummies23:34
@wikingheheh that cygwin bot is down for a while23:34
-!- lisitsyn [~lisitsyn@83.234.54.170] has quit [Ping timeout: 255 seconds]23:59
--- Log closed Tue Jun 11 00:00:40 2013