Open in new window / Try shogun cloud
--- Log opened Thu Jul 28 00:00:38 2011
serialhexyeah, when you install it with a gem it installes it as a subdir in the gems dir00:01
@sonney2kthen I guess you need some magic to get that detected too00:01
serialhexyes, that is the plan for today, lots of magic!00:01
CIA-87shogun: Soeren Sonnenburg master * r1454579 / (7 files in 2 dirs):00:05
CIA-87shogun: enable memory tracing when compiled with --enable-trace-mallocs00:05
CIA-87shogun: just call CSGObject::list_memory_allocs() or list_memory_allocs() if00:05
CIA-87shogun: you've include lib/memory.h -
CIA-87shogun: Soeren Sonnenburg master * r57066ac / (47 files in 9 dirs): Merge branch 'master' of -
@sonney2kblackburn, please try the new malloc tracing stuff!00:06
blackburnsonney2k: I will, but now I'm messing with some lapack shit00:06
@sonney2kblackburn, it gives you a good feeling when you do list_memory_allocs() at the end of a script when it then says 0 objects alloc'd :)00:07
@sonney2kblackburn, I have a dejavu00:07
@sonney2kdidn't you say this yesterday and the day before and the day before the day before and ... too ?00:07
blackburnyes I have regular sex with lapack00:08
serialhexLOLZ blackburn00:09
blackburnwell as I said before - there are some fancy dsyevr I haven't tried before00:09
* sonney2k senses blackburns lapackorgasm ahead00:11
blackburnthis time I got only segfault00:13
blackburnsudo apt-get install valgrind00:17
blackburnhmm got it00:19
blackburnI got semi-lapack-orgasm00:22
blackburnserialhex: I'm gradually sth .. OR I gradually sth?00:24
serialhexi'm gradually sth00:25
serialhex^ blackburn00:25
blackburnthanks :)00:25
@bettybooha ha00:25
serialhexso how ya been blackburn?  i've been away but you're still here :D00:26
blackburnsonney2k: when you was away? i'm fine, and you?00:26
blackburnsonney2k: not you :D00:26
serialhexconfusion EVRYWHER!!!00:28
blackburnfor everyone00:29
blackburnfeel free to confuse ;)00:29
serialhexit's what i do best!! :)00:32
blackburnI shall remove my test prints00:32
blackburnFUCKED 205 50FUCKEY NOOOOOEFUCKED YEAHvector=[5.69951159312013189,193.850759879128816,858.82707863487451]00:33
blackburnthat's strange!00:33
serialhexwtf dude?  you alright??00:34
blackburnit is what my DSYEVR wrapper produce00:35
blackburnfor test :D00:35
@sonney2kblackburn is a confUSER00:46
* sonney2k is off to ZZZzzzz.....00:46
blackburnfactor of 3 speedup01:03
* blackburn is lying01:06
* blackburn is lying that he is lying01:12
blackburnsonney2k: classicmds, 2000 examples: 75s for DSYEV (old), 27s for DSYEVR(new), 17s for Arpack01:17
blackburnwho's your daddy :D01:18
CIA-87shogun: Sergey Lisitsyn master * r5286e94 / (2 files): Added wrapper for DSYEVR lapack routine -
CIA-87shogun: Sergey Lisitsyn master * r0238667 / src/shogun/preprocessor/ClassicMDS.cpp : Changed MDS solver to DSYEVR -
CIA-87shogun: Sergey Lisitsyn master * r8bc3d93 / src/shogun/mathematics/lapack.cpp : Cleaned lapack wrappers -
-!- blackburn [~blackburn@] has quit [Quit: Leaving.]02:04
-!- sploving1 [~sploving@] has joined #shogun03:15
-!- sploving1 [~sploving@] has left #shogun []03:25
-!- gsomix [~gsomix@] has joined #shogun05:37
-!- f-x [~user@] has joined #shogun06:04
-!- f-x [~user@] has quit [Ping timeout: 260 seconds]06:59
-!- f-x [~user@] has joined #shogun07:03
-!- f-x_ [fx@] has quit [Remote host closed the connection]08:11
-!- blackburn [~blackburn@] has joined #shogun11:16
-!- gsomix [~gsomix@] has quit [Ping timeout: 258 seconds]11:29
-!- f-x [~user@] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]11:54
-!- blackburn [~blackburn@] has quit [Quit: Leaving.]11:55
-!- heiko [~heiko@] has joined #shogun11:55
-!- gsomix [~gsomix@] has joined #shogun12:30
-!- gsomix [~gsomix@] has quit [Client Quit]12:33
@sonney2kheiko, try the new trace malloc stuff!12:34
CIA-87shogun: Soeren Sonnenburg master * rd3602de / (5 files in 2 dirs):12:37
CIA-87shogun: Merge pull request #244 from sploving/master12:37
CIA-87shogun: add some ruby examples (+5 more commits...) -
heikosonney2k, alright :)12:40
@sonney2kjust call list_memory_allocs()12:40
@sonney2kand don't forget to enable it in configure12:40
@sonney2kor call CSGObject::list_memory_allocs()12:40
@sonney2kheiko, it will tell you everything for SG_ALLOC'd memory (which line allocated / size)12:41
@sonney2kfor SGObjects it will tell you how much you name, refcount, size and ptr12:42
@sonney2kfor other objects just ptr & size12:42
@sonney2kit is pretty slick... this way I could check that examples really don't leak memory :)12:42
heikoand are objects still created with new?12:43
@sonney2kheiko, and?13:08
heikosonney2k, just checked out13:46
heikohow to activate the trace?13:46
heikocompiling with trace mem allocs13:47
@sonney2k./configure  --enable-trace-mallocs13:52
@sonney2kand then CSGObject::list_memory_allocs()13:52
@sonney2kheiko, and?14:01
heikosmooth :)14:01
heikoworks perfect14:02
@sonney2kheiko, yeah great isn't it?14:09
@sonney2kthis will really help fixing memory leaks14:09
heikoreally cool14:10
heikoyes i think so14:10
heikosad that i didnt have it while building the model tree stuff :)14:10
heikosonney2k, i found some vector related methods in CMath14:15
heikofill_vector range_fill_vector14:15
@sonney2kheiko, it was there - but not as good14:15
heikothese should be with SGVector right?14:15
heikoand also they iterator over the arrays (fill_vector)14:16
heikoand clone_vector also14:16
heikoinstead of using memset/memcpy14:16
heikoshould i change this?14:16
@sonney2kheiko, yeah makes sense - however it would make sense to have them static in there too to just fill memory14:16
@sonney2kheiko, there is a lot of low-hanging fruits in there14:16
heikoand another question: if i introduce the methods with SGVector, should I delete the old ones? or add a SG_DEPRECATED14:16
heikoor just leave them?14:16
@sonney2klike max()14:16
@sonney2kall these simple operations...14:17
@sonney2kit is quite a bit of work though14:19
@sonney2kheiko, first add tehm to sgvector14:19
@sonney2kthen transition all code and then remove all these max/min/fill_vector/mean etc stuff from CMath14:20
heikosonney2k, how to enable print of dSG_DEBUG messages14:27
-!- blackburn [~blackburn@] has joined #shogun14:38
@sonney2khi papa blackburn14:39
blackburnI guess now our mds is the fastest one ;)14:40
-!- blackburn [~blackburn@] has left #shogun []14:40
-!- blackburn [~blackburn@] has joined #shogun14:40
blackburnsonney2k: how can I realloc feature matrix?14:42
blackburnget it and then just realloc?14:42
@sonney2kblackburn, I would suggest to add a function that re-allocs14:43
-!- blackburn [~blackburn@] has quit [Ping timeout: 255 seconds]14:47
heikosonney2k, I would like to add a method display_string to CMath, is that ok?14:51
@sonney2kheiko, shouldn't that be in SGString too?14:51
heikobut same should then hold vor vector and matrix or?14:51
heikobtw currently there is no difference between SGVector and SGString14:52
heikobut will be if display methods are in these types14:52
-!- alesis-novik [~alesis@] has joined #shogun14:55
-!- f-x [~user@] has joined #shogun15:00
alesis-novikHey sonney2k, sorry about missing the meeting yesterday. I read the log so I'm up to date on what's what15:00
-!- blackburn [~blackburn@] has joined #shogun15:02
-!- in3xes [~in3xes@] has joined #shogun15:03
-!- in3xes [~in3xes@] has quit [Read error: Connection reset by peer]15:03
-!- in3xes [~in3xes@] has joined #shogun15:04
-!- VojtechFranc [] has joined #shogun15:05
alesis-novikHello VojtechFranc15:05
VojtechFranchi alesis-novik15:05
VojtechFrancwhat is the state?15:06
alesis-novikWell, I was mostly working on how to fix some of the potential memory leaks15:07
alesis-novikthough I don't think there's a clear way of doing that, when using SG* stuff15:07
VojtechFrancok, my plan for the following weeks is the following15:07
VojtechFrancfirst of all,  Aug 16 is suggested pencils down date15:08
VojtechFranc1. could you please prepare example scripts in python demonstrating use of SMEM15:09
VojtechFranc2. We need document functions you implemented.15:09
VojtechFranc3. We need to test/benchmark EM and SMEM and fix potential bugs15:10
alesis-novikVojtechFranc, as in more examples? There is a 2d smem example showing it's superiority over EM15:10
VojtechFrancregarding task 3, I will send you a text file describing the experiments I'd like you to implement15:11
VojtechFrancregarding examples, is the script included in shogun?15:11
alesis-novikyes, it's under undocumented/python_modular/graphical (I think that's the path)15:12
VojtechFrancok then, I'll have a look at it15:12
VojtechFrancI will also send you a brief minutes of the yesterday meeting as Soeren suggested some tasks for all shogun developers15:13
alesis-noviklook for smem_2d_gmm.py15:13
VojtechFrancnow, the most urgent is doign the experiments/benchmarks15:14
alesis-novikI've read through the logs, so I'm more or less aware of the plan15:14
alesis-novikok, just send me the experiments/benchmarks you had in mind and I'll run them.15:14
alesis-novikare we benchmarking run time?15:15
VojtechFrancruntime,  likelihood, and if it makes sense application dependent statistics like classification error etc15:15
alesis-novikok, that makes sense15:16
VojtechFrancI'll send you the experiment description + link to data today.15:16
VojtechFrancI'll try to do exactly the same experiments with my implementation in order to compare the results15:17
VojtechFrancOne quation, do you have an experience with Open CV?15:17
VojtechFrancthe thing is that OpenCV which is a major CV library has also an efficient EM implemenation15:18
VojtechFrancif we have time it would be great to do some benchmarking ... but it would be task 3 when the rest is finished15:19
alesis-novikbenchmarking openCV?15:19
VojtechFrancno, only the EM implemenation from openCV15:19
VojtechFrancusing the very same data we will use in our experiments15:20
alesis-novikI'd need to familiarize myself with openCV first15:20
VojtechFrancalgorithm in openCV are typically state-of-the-art implemenations so it would be nice to know how we compare15:21
VojtechFrancok, but as I said it just a bonus if we have time15:21
VojtechFrancanother quation regarding your implementationof SMEM: what do you use a the stopping condition of the partial EM step?15:22
VojtechFrancI'm asking because it was not fully described in the paper15:22
VojtechFrancIn my implementation I stop it based on minimal change in likelihood15:23
alesis-novikI used the same stopping conditions as for full EM: likelihood change and max iterations15:23
alesis-novikSo what about the factor model EM?15:24
VojtechFrancit would be also good but experiments are more important. I'm not sure we would finish everything in time15:25
VojtechFrancI prefer less algorithms but careffuly implemented15:25
VojtechFranchave you read the paper ?15:26
alesis-novikI've skimmed it. It does seem to have an additional part to consider15:27
VojtechFrancwhich one?15:28
VojtechFrancanother small issue: would you manage to translate the python examples to Matlab?15:30
alesis-novikI don't think there's a Matlab modular interface, so it would be problematic. I think octave modular works now, so that would be easier15:31
VojtechFrancisn't there option to use matlab static interface  ?15:32
blackburnVojtechFranc: hi, have you any matlab code for kPCA?15:33
VojtechFrancblackburn, yes15:33
blackburnVojtechFranc: could you email it to me? blackburn91@gmail.com15:33
VojtechFrancit is in matlab toolbox     function kpca15:34
blackburnhmm okay thanks ;)15:34
alesis-novikI'm not that familiar with how the static interfaces work15:34
alesis-novikI could look into it15:34
VojtechFrancok, but only if it doesn't consume to much time otherwise octave is ok15:35
VojtechFrancthat's it from my side. So, I'll prepare the experiments and mail it to you in the evening15:35
alesis-novikSo I'll prioritize running the experiments and benchmarking them for now, is that fine?15:36
VojtechFrancyes please15:37
VojtechFrancyou can also write the documentation in parallel15:37
alesis-novikok, I probably should add more specifics to the current method documentation15:38
VojtechFrancok, see you15:38
alesis-novikSee you VojtechFranc15:39
-!- VojtechFranc [] has quit [Remote host closed the connection]15:39
-!- sploving1 [~sploving@] has joined #shogun15:48
sploving1I met a problem15:48
sploving1in kernel_gaussian_modular.rb,15:48  it said: can't convert nil into String (TypeError)15:49
sploving1but when I use    feats_train.set_feature_matrix fm_train_real15:49
sploving1it works15:49
sploving1I discussed with seriahex, he also have no idea~15:51
sploving1sonney2k, any idea?15:53
sploving1any suggestion?15:53
sploving1I discussed with serialhex,15:56
heikosonney2k, are you there?16:07
heikoI found an inconsisty in get_feature_vector:16:07
heikoSimpleFeatures::get_feature_vector returns a pointer to an elements in its matrix16:07
heikoStringFeatures::get_feature_vector returns a copy of a string16:08
heikowhich one is the desired behaviourr?16:08
heikoi will set the do_free flag to true in StringFeatures16:10
heikoshould solve the problem16:10
heikosonney2k, ohoh another problem16:14
heikolist_memory_allocs says 0 blocks16:14
heikobut valgrind sais memory leak16:15
@sonney2ksploving1, you need to implement typecheck typemaps16:27
@sonney2kthat will fix the issue16:27
@sonney2kheiko, only ever return pointers if possible16:27
@sonney2kheiko, what kind of leaks?16:28
heikocurrently checking16:28
sploving1sonney2k, I added the typemap %typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER) shogun::SGMatrix<SGTYPE>16:28
heikobut why is feature vector copied in StringFeatures? simply a mistake?16:28
heikosonney2k, mmh basic minimal memory leaks here. i will do a make clean and make again16:31
@sonney2kheiko, we mighta ctually leak the CSet object with the malloc traces or so ... but if you find leaks please fix them (if not too hard)16:32
heikosonney2k, ok i am onto it16:33
@sonney2kheiko, well there are 2 kinds of get_feature_vector16:33
@sonney2kone is just returning the pointer16:33
@sonney2kand one is returning a preprocessed copy16:33
@sonney2kso it might need to be freed16:33
heikoSGVector<ST> get_feature_vector(int32_t num)16:34
heikomakes always a copy16:34
@sonney2kI know16:34
heikoso what about16:34
heikoreturn SGVector<ST>(dst, l, true);16:34
@sonney2kI was trying to change this behavior when I recognized that I need the SG_MALLOC transition for that16:34
@sonney2kdon't always copy16:34
heikothen I just remove the copying16:35
@sonney2kheiko, that will crash if there is a string preproc attached16:35
@sonney2kremoving the whole fucntion seems more appropriate16:35
heikobut a getter which returns an SGVector is nice16:36
heikoalso the setter below that method does copy the input parameter16:36
@sonney2kthen changing the other get-feature_vector function to return SGVector would be the best fix16:36
heikobut its entioned in the comments16:36
heikook, will do then16:37
@sonney2kthere is a catch16:37
@sonney2kfeatures provide a get_feature_vector() function16:37
@sonney2kand they return a bool flag 'do_free'16:37
@sonney2kso whenever one does get_feature_vector() one has to call free_feature_vector(..., do_free)16:38
@sonney2kand then the respecitive string class can clean up16:38
@sonney2kI am tempted to totally drop the free_feature_vector() functions and instead use the SGVector v; v.free_vector() stuff16:39
@sonney2khowever this assumes that no feature class will do anything in addtion to free_feature_vector16:39
@sonney2kand I am not sure about this16:39
@sonney2kI don't recall exactly but I think we had features that do something extra16:40
@sonney2kI think filefeatures16:40
heikobtw the memory block set is not deleted, that is the cause for mem leak16:40
@sonney2kso the only way to get this to work then would be to use the free_feature_vector(SGVector v) for the feature classes16:41
@sonney2kheiko, as I guessed...16:41
heikosonney2k, but add a SG_UNREF(sg_mallocs) causes memory errors16:41
heikosonney2k,  i will be afk for some time, taking a break16:43
@sonney2kheiko, k, I am adding the malloc stuf to exit_shogun ... lets see what happens16:45
@sonney2ksploving1, did you commit that somewhere?16:45
@sonney2kheiko, I understand why it crashes - it is because it wants to store the de-allocation16:54
@sonney2kbut the object is deleted under its feet16:54
@sonney2ksploving1, and the typecheck typemaps triggers when called in constructor or not?17:00
@sonney2ksploving1, I mean like printf("yes I am in typecheck typemap") and printf("yes this is a valid array\n")17:00
sploving1I donot understand clearly, can you expain it more ? sonney2k17:03
@sonney2ksploving1, please add some printf's in the typecheck typemap like the ones above17:03
@sonney2kif these trigger on your example we know that the problem is sth else17:04
sploving1okay. I know17:05
@sonney2kheiko, ok fixed17:07
CIA-87shogun: Soeren Sonnenburg master * r5f296e7 / (src/shogun/base/DynArray.h src/shogun/base/init.cpp):17:07
CIA-87shogun: print leaks on exit when configure with --enable-trace-mallocs and do17:07
CIA-87shogun: proper cleanup -
@sonney2kheiko, I was thinking more about the string features get_function.17:07
@sonney2kand other feature access functions for that matter17:07
@sonney2kif everything is in one function then we have to rely on  SGVector v.free_vector() support17:08
@sonney2kheiko, and since nothing in shogun uses this so far (just checked) I am very much in favour of doing it this way17:10
@sonney2kheiko, so removing free_feature_vector from all feature classes and only ever returning SGVector<xxx> with properly set free flag is the way to go17:10
@sonney2kthen one would just call v.free_vector() at the end and all good17:11
-!- sploving1 [~sploving@] has left #shogun []17:11
heikosonney2k, ok that sounds good17:22
-!- sploving1 [~sploving@] has joined #shogun17:26
sploving1sonney2k, not trigger the typecheck17:26
@sonney2ksploving1, in both cases not?17:28
@sonney2kheiko, the other thing is fixed now17:28
heikosonney2k, ok17:29
heikojust checked out17:29
heikocurrently compiling17:29
sploving1no. in feats_train=Modshogun::RealFeatures.new17:29
sploving1feats_train.set_feature_matrix fm_train_real it trigger typecheck and typemap17:29 this does not trigger17:29
sploving1sonney2k, what do you suggest?17:29
@sonney2ksploving1, does that happen with labels too?17:30
@sonney2kI mean when you do Labels([1,2,3])17:30
sploving1I have not tried that17:30
@sonney2kvs. x=Labels() x.set_labels([1,2,3])17:30
@sonney2k(not sure what the ruby syntax is but you get the idea)17:31[1,2,3]) it works17:34
sploving1sonney2k, Labels work!17:35
@sonney2ksploving1, hmmhh so then matrix should too17:35
sploving1maybe the syntax erro17:36
heikosonney2k, tracing  works perfect now17:36
sploving1but i do not know17:36
sploving1sonney2, I gtg bye17:36
@sonney2ksploving1, can you show me the example?17:36
sploving1sonney2k,  it is in the example dir17:37
@sonney2kheiko, that memory tracing stuff is tricky/hacky - lots of unwanted side effects...17:37
@sonney2kheiko, but all good now -> great :)17:37
heikoeverything ok now :)17:37
sploving1ruby kernel_gaussian_modular.ry can work17:38
sploving1but when you change it  to be it cannot work17:38
@sonney2ksploving1, how do I call the example?17:38
-!- sploving1 [~sploving@] has left #shogun []17:38
@sonney2khmmhh, so it has to wait until tomorrow17:39
@sonney2kor serialhex when you are around and can tell me how I can successfully run kernel_gaussian_modular.rb - please say so17:39
@sonney2kheiko, so you think it makes more sense with the get_feature_vector stuff right?17:40
heikoonly problem i see:17:40
heikofeature cache17:40
heikobecause now free_feature_vector takes an index17:40
heikoand unlocks the element from the cache17:40
@sonney2kheiko, argh17:40
@sonney2kI missed that17:40
@sonney2kbig problem...17:41
heikoone could search17:42
heikobut that makes linear time in contrast to constant time for free17:42
@sonney2kheiko, the only other option I see is to attach some callback function to SGVector17:46
@sonney2ksuch that this can be called to do exactly such cleanup tasks later17:46
@sonney2koverhead would be one more ptr in SGVector17:47
@sonney2kptr to some struct that contains a callback function and metadata17:48
-!- f-x [~user@] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]17:51
@sonney2kheiko, any thoughts?17:54
heikoyes the callback is good17:55
heikobut adds more stuff17:55
heikoso using it will become more difficult17:55
heikobut ok17:55
heikobtw DynArray causes some problems17:56
heikovalgrind sais no leaks17:56
heikobut list_memory_allocs() shows allocated blocks17:57
@sonney2kactually we could even make it slightly better - derive a SGVectorWithCache class17:57
heikoyeah thats sounds better17:57
@sonney2kand overload the virtual free_vector() funciton17:57
heikothat i would like17:58
heikosonney2k, btw string kernel grid-search now works18:00
heiko(besides list_memory_allocs complaining that there is allocated memory, which is not true)18:01
heikosonney2k, when i change the name of SGString::length18:17
heikopython does not compile18:17
heikoare there any maps for the types if DataType.h?18:18
-!- in3xes_ [~in3xes@] has joined #shogun18:19
-!- in3xes [~in3xes@] has quit [Ping timeout: 240 seconds]18:23
heikosonney2k, ok got it, swig_typemaps :)18:23
heikosonney2k, list_memory_allocs still broken (complains that blocks were reserved in DynArray.h)18:24
heikopushing string kernel grid-search now18:24
-!- in3xes_ is now known as in3xes18:28
-!- in3xes_ [~in3xes@] has joined #shogun18:42
-!- in3xes [~in3xes@] has quit [Ping timeout: 240 seconds]18:46
-!- heiko [~heiko@] has left #shogun []18:46
-!- blackburn [~blackburn@] has quit [Ping timeout: 255 seconds]19:17
-!- in3xes_ [~in3xes@] has quit [Ping timeout: 240 seconds]19:33
-!- in3xes [~in3xes@] has joined #shogun20:13
-!- blackburn [~blackburn@] has joined #shogun20:20
CIA-87shogun: Soeren Sonnenburg master * r72b9bef / (25 files in 12 dirs):20:25
CIA-87shogun: Merge pull request #245 from karlnapf/master20:25
CIA-87shogun: model selection for string kernels (+31 more commits...) -
-!- in3xes [~in3xes@] has quit [Ping timeout: 240 seconds]20:35
-!- in3xes [~in3xes@] has joined #shogun20:35
-!- in3xes_ [~in3xes@] has joined #shogun20:50
-!- in3xes [~in3xes@] has quit [Ping timeout: 240 seconds]20:54
-!- in3xes_ is now known as in3xes20:56
-!- in3xes [~in3xes@] has quit [Ping timeout: 240 seconds]21:06
CIA-87shogun: Soeren Sonnenburg master * rc8fa327 / src/interfaces/python_static/PythonInterface.cpp : fix compile error in static python interface -
CIA-87shogun: Soeren Sonnenburg master * r4172a45 / examples/undocumented/libshogun/modelselection_grid_search_linear.cpp : don't allocate objects on stack (this did evade the memory tracing) -
-!- in3xes [~in3xes@] has joined #shogun21:22
CIA-87shogun: Sergey Lisitsyn master * ra45b631 / src/shogun/preprocessor/LocallyLinearEmbedding.cpp : DSYEVR for LLE -
CIA-87shogun: Sergey Lisitsyn master * r4c5fc86 / (2 files in 2 dirs): Merge branch 'master' of -
CIA-87shogun: Soeren Sonnenburg master * r1c63169 / examples/undocumented/libshogun/features_copy_subset_string_features.cpp : fix compile error in string subset example -
CIA-87shogun: Soeren Sonnenburg master * rb2464db / (4 files in 4 dirs): fix compile errors in static interfaces -
-!- in3xes [~in3xes@] has quit [Ping timeout: 258 seconds]21:33
-!- in3xes [~in3xes@] has joined #shogun21:46
blackburnsonney2k: is there any packed storage distance matrix routine?21:54
blackburnit seems no..21:55
blackburnokay, will do later21:56
@sonney2kthere is none indeed21:57
blackburnsonney2k: what do you prefer, make some transition to packed storage now or later?21:57
@sonney2kblackburn, ?21:57
@sonney2kfor what21:58
blackburnmds, lle, ..21:58
blackburnwell it is a big amount of work..21:58
blackburnhmm and no dsyevr analogue..21:59
blackburnso I think I should do it later21:59
@sonney2kblackburn, is this only for speed?21:59
@sonney2kor memory?21:59
@sonney2kor both?21:59
blackburnno speed impact I guess21:59
blackburnit already uses all the things of symmetricity of matrices22:00
blackburnso just /2 memory22:00
@sonney2kyou already use symmetry right?22:00
@sonney2kor no?22:00
blackburnI use it in means of some matrix-vector multiplications and so on22:01
blackburnbut not memory wise22:01
blackburnI store the whole matrix22:01
blackburnin mds, isomap, lle22:01
@sonney2kblackburn, I don't know ... it is quite some work to change it .... IIRC I did this for custom kernel but no operations on top...22:02
blackburnlet's make this change later22:02
blackburnafter 1.022:02
blackburnI guess it is not only my algos - kernels too22:02
blackburnit would be a surprise: "Shogun now uses 1/2 of memory it used before" :D22:03
@sonney2kthere are other things to optimize btw22:11
@sonney2kif one uses python, currently everything is copied22:11
@sonney2kand not just in python22:12
@sonney2know that we use malloc & co we can do some clever hacks22:12
@sonney2ki.e. we can tell a python numpy matrix to no longer own the object22:12
blackburnI will change preprocs to use realloc22:12
blackburnsome memory wise eifficiency22:13
@sonney2kand just own the memory22:13
@sonney2kthis would work if a numpy array is allocated in fortran order22:13
CIA-87shogun: Sergey Lisitsyn master * r5ce74be / src/NEWS : Some additions and fixes for NEWS -
@sonney2kblackburn, order='Fortran' argument22:14
-!- in3xes [~in3xes@] has quit [Quit: Leaving]22:14
blackburnsonney2k: you forgot a half of algos I did ;)22:14
@sonney2kblackburn, your fault to not update NEWS22:15
blackburnyou didn't say we should ;)22:15
@sonney2kblackburn, I didn't say that you should turn shogun upside down22:15
@sonney2klook what you did with all that machine, SGVector etc stuff!22:16
blackburnhey you did, not me :D22:16
blackburnI think I will focus on doc this night22:16
@sonney2kblackburn, but you complained like 100 times or so...22:16
@sonney2kso I had no choice22:16
blackburnyou are the Lenin, I'm just Krupskaya ahaha22:16
@sonney2kmuch worse, I only say Stalingrad22:17
blackburnhey but things become much better in some ways22:17
blackburne.g. no crazy typemaps we had before22:18
@sonney2kblackburn, yes it is the 1945 of shogun - I totally surrendered ;-)22:19
@sonney2kbut more seriously - I agree22:19
@sonney2kthe only problem we have is that the SGVector transition is not finished22:20
blackburnwe did for interfaces22:20
@sonney2kwe really need to change all the get/set functions22:20
@sonney2kblackburn, not for all...22:20
@sonney2kand we need to do it for the internal storage to22:20
blackburnjust recalled, fyi I finish work on algos on 6th of Aug or so22:21
blackburn*as planned22:21
blackburnafter that we will try to do some bioinf stuff with chris22:21
@sonney2kblackburn, you are a machine22:21
@sonney2kyou mean as example?22:21
blackburnif it successful - yes22:22
blackburnwe'll try to do some manifold learning for promoters22:22
blackburnI'm not sure how it would work but we'll make a try hah22:22
@sonney2kblackburn, which distance?22:22
blackburnI don't know anything yet22:23
@sonney2kmay I suggest you use the weighteddegreepositionkernel and create a distance from it22:23
blackburndon't we have it now?22:23
@sonney2k(promoter detection was my subject...)22:23
@sonney2kyes it is available22:23
@sonney2kif you want to be extra good/clever, you use a combination of 3 kernels22:24
blackburnthe problem is LLE family algos work in euclidean space..22:24
@sonney2kI can point you to a paper or my diss if you want to know which - but hey actually in applications/arts there is the code for this22:24
@sonney2kblackburn, so?22:24
blackburnI mean I can apply only distance-based preprocessors22:25
blackburnwith kernels, etc22:25
@sonney2kkernel(x_i,x_j) = <Phi(x_i), Phi(x_j)>22:25
@sonney2k<.,.> is dot product22:26
blackburnso how to apply LLE with kernel?22:26
@sonney2kblackburn, use KernelDistance22:26
blackburnthere is no dot product inside this algo22:26
blackburnit depends on feature vectors itself22:27
blackburnnot only pairwise distances22:27
@sonney2kblackburn, then no chance22:27
blackburnonly MDS, Isomap and Laplacian Eigenmaps involves distances22:27
blackburnbad thing to me :(22:27
blackburnwell if I found some euclidean representation or so22:28
blackburnit would work22:28
blackburnsonney2k: btw your dissertation is awesome22:29
@sonney2kblackburn, well it is possible when you extract all n-grams before and after the promoter22:33
@sonney2kthat works pretty well already22:33
@sonney2kPhi(x) for the WD kernel is just too big22:33
@sonney2kthough you can use a WD kernel of very low degree, say 1-322:33
@sonney2kthen it would work too22:33
@sonney2kblackburn, can you use dotfeatures?22:34
blackburnsonney2k: for what?22:34
@sonney2kfor your distance stuff22:34
@sonney2kyou won't have feature matrix access22:34
blackburndistances for MDS, Isomap and Laplacian Eigenmaps and simple dense features for LLE family22:35
blackburnI don't have to work with features itself only with MDS, Isomap and Lapl.eigmaps22:35
blackburndotfeatures will work too I guess, if I can get some matrix from it ;)22:36
-!- in3xes [~in3xes@] has joined #shogun22:37
blackburnsonney2k: you become activated as I said about bioinf :)22:38
@sonney2kadding a single virtual functions increases the size of an object to at least 16 bytes22:38
@sonney2kblackburn, not really22:39
@sonney2kblackburn, I am still much more interested in the algorithms than the application22:39
@sonney2kbut of course this varies over time22:39
* blackburn just looked over work he done - it seems he is interested in eigenvalues computation22:41
@sonney2kvirtual functions are actually not *that* bad22:43
@sonney2kblackburn, I think of deriving from SGVector22:43
blackburnsonney2k: what to derive?22:44
@sonney2ksome vector class that can have additional functions that are called when the vector is freed22:44
blackburnwhat is the example of such funcs?22:45
@sonney2kblackburn, when we currently do get_feature_vector in e.g. SimpleFeatures we have to call free_feature_vector later on to free it (potentially)22:48
@sonney2know there is a case where the feature matrix is not in memory22:48
@sonney2kthen just one vector is computed and *cached*22:48
blackburnI see22:48
@sonney2kon free_feature_vector cache is updated22:49
@sonney2know when we instead of the orginal free_feature_vector function want to call SGVector::free_vector() we need to do sth about it22:49
@sonney2kthat is we need to overload the free* function22:49
@sonney2kand also recall the index of the vector22:50
@sonney2kthe reationale here is that one only ever calls SGVector based methods when later manipulating the vector22:50
blackburnI see22:51
@sonney2kthat would indeed work - the problem is now that SGVector is a templated function...22:53
blackburnjust ran ltsa with 6000 examples22:56
blackburnit took 874mb of ram22:56
@sonney2kcompiling shogun takes 1.5G - so that is nothing :D22:58
blackburnwill try 1200022:58
blackburn127s taken22:59
@sonney2kisn't it growing n^2 or worse?22:59
blackburnmemory or speed?22:59
blackburnoh yes, n^222:59
blackburnI shouldn't run 12000 :D22:59
blackburnmay be 10000 is possible on my laptop22:59
@sonney2kblackburn, better compute how much mem it reuqired23:00
blackburn2.1g for 1000023:01
blackburntook a little swap for computations23:01
@sonney2kI don't have that much mem here23:02
@sonney2kand I disabled linux' overcommit23:02
blackburndidn't you have macbook with >4?23:03
@sonney2kblackburn, how bad do you think it is to grow SGVector by 8 bytes?23:03
blackburnwhy don't you have 2.1? ;)23:03
@sonney2kyes el-cheapo memory23:03
blackburnI think it is not bad at all23:03
@sonney2kbecause there are no modules of size 21G :D23:04
blackburnnot 2123:04
@sonney2kblackburn, I am only concerned about short vecotrs23:04
@sonney2kbut probably rare - you are right23:04
blackburnaren't we already have redundant vector len?23:04
blackburnIIRC we do badass large-scale things so a little overhead is nothing hehe23:06
@sonney2kblackburn, redundant?23:08
@sonney2kI mean we need ptr & length...23:08
blackburnyes but we store length both in some internals23:08
blackburnand in sgvectors23:08
blackburnas much length's as much sgvectors we have23:09
@sonney2kthat is differnent though - I mean we have to pass the length anyway23:09
blackburnfailed with shogunexception23:11
blackburnI guess no memory to store new features23:12
blackburnsonney2k: seen this? :)23:14
@sonney2kblackburn, didn't it say so 'no new memory' ?23:14
blackburnsonney2k: no, just shogun exception23:15
@sonney2kI hope they have taken out the battery...23:16
blackburnwill it explode?23:16
@sonney2kblackburn, btw I discovered some issue when the new trace malloc stuff won't work23:34
blackburnwhich one?23:34
@sonney2kas soon as an object is allocated on stack - we have means to discover that it gets destroyed23:34
--- Log closed Fri Jul 29 00:00:46 2011