--- Log opened Mon May 07 00:00:37 2012 | ||
-!- blackburn [~qdrgsm@83.234.54.222] has quit [Quit: Leaving.] | 00:07 | |
-!- gsomix [~gsomix@188.168.4.126] has quit [Ping timeout: 252 seconds] | 00:46 | |
-!- vikram360 [~vikram360@117.192.165.53] has quit [Ping timeout: 272 seconds] | 02:56 | |
-!- vikram360 [~vikram360@117.192.171.225] has joined #shogun | 05:07 | |
-!- vikram360 [~vikram360@117.192.171.225] has quit [Ping timeout: 276 seconds] | 05:15 | |
-!- vikram360 [~vikram360@117.192.167.45] has joined #shogun | 05:16 | |
-!- vikram360 [~vikram360@117.192.167.45] has quit [Ping timeout: 252 seconds] | 06:45 | |
-!- vikram360 [~vikram360@117.192.181.205] has joined #shogun | 06:46 | |
-!- vikram360 [~vikram360@117.192.181.205] has quit [Ping timeout: 272 seconds] | 07:18 | |
-!- av3ngr [~av3ngr@106.70.204.200] has joined #shogun | 07:29 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking] | 08:15 | |
-!- blackburn [~qdrgsm@83.234.54.222] has joined #shogun | 08:17 | |
@sonney2k | blackburn, did you make progress on mc? | 08:19 |
---|---|---|
blackburn | sonney2k: no - looks crazy.. | 08:19 |
blackburn | it should be subset thing.. | 08:20 |
-!- wiking [~wiking@78-23-189-112.access.telenet.be] has joined #shogun | 08:20 | |
-!- wiking [~wiking@78-23-189-112.access.telenet.be] has quit [Changing host] | 08:20 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 08:20 | |
@sonney2k | blackburn, yeah I think so too | 08:22 |
@sonney2k | it is really hard to trace for me too | 08:22 |
@sonney2k | I guess heiko could do that much better... | 08:22 |
CIA-113 | shogun: Soeren Sonnenburg master * re6ca6cf / examples/undocumented/libshogun/library_indirect_object.cpp : fix memory leak in example - http://git.io/9JGvZQ | 08:24 |
CIA-113 | shogun: Soeren Sonnenburg master * r3141ae8 / examples/undocumented/libshogun/Makefile : add more heavy valgrind check options - http://git.io/2XwnFw | 08:24 |
@sonney2k | blackburn, maybe you have a look at converter_stochasticproximityembedding | 08:24 |
@sonney2k | it has a mem leak | 08:24 |
@sonney2k | should be easy to trace | 08:24 |
@sonney2k | got to leave train now | 08:25 |
blackburn | ok | 08:25 |
-!- vikram360 [~vikram360@117.192.174.33] has joined #shogun | 08:31 | |
-!- sonne|work [~sonnenbu@194.78.35.195] has joined #shogun | 08:37 | |
wiking | hey | 08:45 |
sonne|work | wiking: ho | 08:48 |
wiking | sorry i couldn't help until now, but the weekend actually i took off :P | 08:48 |
sonne|work | wiking: well we kept some tough ones only for you :D | 08:49 |
wiking | great :) | 08:49 |
blackburn | btw we have holidays here | 08:49 |
blackburn | :D | 08:49 |
blackburn | up to 9th | 08:49 |
wiking | i've just fetched the latest shogun and building just now | 08:49 |
wiking | yeye it's been built | 08:50 |
sonne|work | wiking: install and go to ../examples/undocumented/libshogun | 08:52 |
sonne|work | then run make valgrind-check | 08:52 |
sonne|work | or check-valgrind :) | 08:52 |
wiking | ok | 08:52 |
sonne|work | all the ones that still have errors > 1 need inspection | 08:52 |
blackburn | sonne|work: not trivial in spe :/ no idea what is wrong yet | 08:52 |
-!- uricamic [~uricamic@2001:718:2:1634:f2de:f1ff:fecf:a6a5] has joined #shogun | 08:52 | |
sonne|work | blackburn: hmmhh it looked easy | 08:53 |
sonne|work | but I cannot look at it before this evening | 08:53 |
blackburn | what is wrong for sure is delete instead of free | 08:53 |
sonne|work | hmm not so sure about it | 08:53 |
sonne|work | but I have some work now | 08:53 |
blackburn | no delete[] after calloc is wrong | 08:53 |
blackburn | ok | 08:53 |
sonne|work | uhh | 08:54 |
sonne|work | we should never use delete[] | 08:54 |
sonne|work | *never* ever | 08:54 |
blackburn | yeah | 08:54 |
wiking | oookeeey it's building | 08:55 |
wiking | and actually now valgrinding | 08:55 |
wiking | heheh ok i'll put the output to pastebin | 08:56 |
wiking | so that we know where are still errors | 08:56 |
wiking | lol yeah mc linear machine is full with leaks | 08:57 |
sonne|work | yeah that is our fav | 08:58 |
wiking | yeah i can see why ;\0 | 08:59 |
wiking | :> | 08:59 |
wiking | put this in the topic please: http://pastebin.com/uF4pv3vP | 09:08 |
blackburn | sonne|work: fixed | 09:17 |
CIA-113 | shogun: Sergey Lisitsyn master * rb66f1ac / src/shogun/converter/StochasticProximityEmbedding.cpp : Fixed memleak in SPE - http://git.io/XAlFXg | 09:17 |
blackburn | wiking: could you please paste the output of valgrind ./converter_isomap? | 09:25 |
blackburn | I have no errors there.. | 09:25 |
wiking | blackburn: just a sec | 09:26 |
wiking | blackburn: http://pastebin.com/cWW3fVVe | 09:28 |
blackburn | ehhh | 09:29 |
blackburn | wtf | 09:29 |
blackburn | wiking: why does it use some ImageLoader?? | 09:31 |
wiking | you ask me? | 09:31 |
wiking | i've just ran the command u asked me to do | 09:31 |
blackburn | wiking: what is os you are using? | 09:32 |
wiking | psx | 09:32 |
wiking | *osx | 09:32 |
blackburn | oh.. | 09:32 |
wiking | but this is your real leak: =81281== 24 bytes in 1 blocks are definitely lost in loss record 2 of 10 | 09:32 |
blackburn | wiking: it is os specific I guess :) | 09:32 |
blackburn | yes | 09:32 |
blackburn | the problem is that it gives no line | 09:32 |
blackburn | my valgrind gives :P | 09:33 |
blackburn | hehe | 09:33 |
blackburn | wiking: could you please add --leak-check=full option? | 09:33 |
wiking | it was with that | 09:33 |
blackburn | damn :( | 09:34 |
blackburn | ahh | 09:37 |
blackburn | wiking: you have no arpack - that's why you see it | 09:38 |
CIA-113 | shogun: Sergey Lisitsyn master * r8539b0f / src/shogun/converter/MultidimensionalScaling.cpp : Fixed memleak in mds - http://git.io/9iAbkw | 09:39 |
blackburn | wiking: could you please try latest? | 09:39 |
-!- av3ngr [~av3ngr@106.70.204.200] has quit [Quit: That's all folks!] | 09:41 | |
wiking | fyi: [ERROR] KernelMulticlassMachine: No left hand side specified | 09:43 |
blackburn | wiking: which example? | 09:43 |
wiking | mkl | 09:43 |
wiking | ./classifier_mklmulticlass | 09:44 |
blackburn | aham! | 09:44 |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking] | 09:51 | |
-!- wiking [~wiking@78-23-189-112.access.telenet.be] has joined #shogun | 09:53 | |
-!- wiking [~wiking@78-23-189-112.access.telenet.be] has quit [Changing host] | 09:53 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 09:53 | |
sonne|work | blackburn: hmm | 10:11 |
sonne|work | did that ever work? | 10:11 |
blackburn | sonne|work: mkl? | 10:11 |
blackburn | should be yeah | 10:11 |
sonne|work | is that a subset thing again? the error it doesn't really make sense to me | 10:12 |
sonne|work | I meankernels should still be there. | 10:12 |
blackburn | sonne|work: can be | 10:12 |
blackburn | I don't know whether multiclass machines | 10:12 |
blackburn | do handle custom kernels in a proper way | 10:13 |
blackburn | and combined too | 10:13 |
blackburn | ah right | 10:13 |
blackburn | kernel multiclass machine won't work at all.. | 10:13 |
blackburn | however.. | 10:15 |
blackburn | sonne|work: does alex have broken '_' key? | 10:17 |
blackburn | unreadable methods | 10:17 |
-!- eric___ [2e1fd566@gateway/web/freenode/ip.46.31.213.102] has joined #shogun | 10:21 | |
eric___ | hi all | 10:21 |
-!- eric_ [2e1fd566@gateway/web/freenode/ip.46.31.213.102] has joined #shogun | 10:36 | |
eric_ | hi | 10:36 |
-!- eric___ [2e1fd566@gateway/web/freenode/ip.46.31.213.102] has quit [Ping timeout: 245 seconds] | 10:38 | |
eric_ | allo ? | 10:42 |
blackburn | eric_: hey | 10:46 |
blackburn | sonne|work: do you know gcc has __PRETTY_FUNCTION__ macros? | 11:20 |
sonne|work | what for? | 11:20 |
sonne|work | no | 11:20 |
blackburn | sonne|work: outputs name of function | 11:21 |
blackburn | I think it worths to add it to SGIO | 11:21 |
blackburn | to make debug easier | 11:21 |
sonne|work | feel free | 11:21 |
eric_ | sonne|work: do you know if there is some advancement in code for multiclass crossvalidation ? Is there a repository where I can find smthg to improve/debug ? | 11:25 |
sonne|work | blackburn: actually | 11:25 |
sonne|work | http://gcc.gnu.org/onlinedocs/gcc/Function-Names.html | 11:25 |
sonne|work | __func__ seems to be a C99 compat way | 11:25 |
sonne|work | ok we are using C++ but hey maybe some c++ compilers support it nevertheless | 11:25 |
blackburn | sonne|work: hehe I'd rather enable it only for GCC and C++ | 11:26 |
blackburn | the only men need it is we | 11:26 |
sonne|work | eric_: due to current transition things are broken | 11:27 |
wiking | eric_: couldn't done anything about it yet sorry | 11:29 |
eric_ | sonne|work, wiking: ok thx. the best way to follow advancement of this subject is to come here and ask again ? | 11:30 |
wiking | eric_: well check the commit logs | 11:30 |
wiking | :) | 11:30 |
eric_ | wiking: official github ? | 11:31 |
wiking | eric_: i'm just testing now the multi class crossval with a libsvm dataset example | 11:31 |
wiking | and i'll see what are the actual errors | 11:31 |
wiking | eric_: yep | 11:31 |
blackburn | eric_: we don't have any other dev line | 11:31 |
eric_ | wiking: ok thanks, It would be great to test it too as soon as you thing it is commitable. good dev. | 11:32 |
wiking | how do i read the labels with AsciiFile? | 11:44 |
eric_ | wiking: I read data (features, labels) with cv import/export yml files. It handles stl multimap. Then I "push_back" in SG matrix. | 11:51 |
wiking | eric_: heheh yeah but i rather use shogun api | 11:52 |
eric_ | wiking: sure | 11:52 |
eric_ | wiking: and load method with CFile* arg doesnt work ? | 11:53 |
wiking | eric_: the problem is that i can do get_matrix with ascii file | 11:54 |
wiking | but i suppose that'll have only the features in the matrix | 11:54 |
wiking | not the labels | 11:54 |
wiking | but maybe i'm mistaken and the first column is actually is going to be the labelling | 11:55 |
wiking | but currently i still have a problem with calling get_matrix :D | 11:55 |
blackburn | wiking: examples/libshogun/classifier_multiclasslinearmachine.cpp | 11:55 |
eric_ | is there smthg like labels SGSerializable* Labels [ version_parameter int32 1 labels SGVector<float64> 20 ({8}{8}{5}{5}{4}{4}{9}{9}{1}{1}{7}{7}{6}{6}{3}{3}{2}{2}{0}{0}) subset SGSerializable* null [] ] in your ascii file ? | 11:56 |
wiking | blackburn: but here the labeling and the features are in two separate file | 11:56 |
wiking | blackburn: i thought we have an api for libsvm/svmlight file | 11:56 |
blackburn | no idea :D | 11:57 |
wiking | heheh well yeah | 11:58 |
sonne|work | yes we have or at least had at some point | 11:58 |
-!- vikram360 [~vikram360@117.192.174.33] has quit [Ping timeout: 276 seconds] | 11:58 | |
blackburn | I see only header | 11:58 |
sonne|work | I guess that method just got erased | 11:58 |
sonne|work | removed I mean | 11:58 |
wiking | sonney2k blackburn yeah | 11:58 |
sonne|work | llooks like we should keep it :) | 11:59 |
-!- vikram360 [~vikram360@117.192.171.228] has joined #shogun | 11:59 | |
wiking | i guess we should put it back or reimplement it | 11:59 |
wiking | :) | 11:59 |
blackburn | I don't think we should contain a lot of IO | 11:59 |
wiking | well just for being able to use dataset straight from libsvm/svmlight | 12:00 |
wiking | afaik it should be supported | 12:00 |
wiking | moreover we say on shogun's webpage that we support that format | 12:00 |
blackburn | wiking: :D | 12:12 |
wiking | heheh ok CContingencyTableEvaluation works only with binary labelling | 12:15 |
wiking | ok now i'm getting there | 12:21 |
wiking | store_model_features is not implemented for MulticlassLibSVM | 12:21 |
wiking | eric_: ok so i think i know now what's the problem | 12:32 |
wiking | eric_: what svm are u using | 12:32 |
blackburn | wiking: how would it work with multiclass? ;) | 13:04 |
wiking | blackburn: yeah well realized... anyways now there's another problem | 13:04 |
wiking | with neither having data_locking support nor store_model_features... | 13:05 |
wiking | in none of the multi class machines | 13:05 |
wiking | so this way there's no way one can do a xval | 13:05 |
blackburn | wiking: hmm feel free to implement ;) | 13:05 |
wiking | now at least i know why :) | 13:05 |
blackburn | looks not so difficult | 13:05 |
wiking | I'm just wondering which one could be done faster | 13:06 |
blackburn | sonne|work: about openmp - I want to check (or somebody to check) if it is really slower | 13:20 |
blackburn | if not I believe we should use openmp - much faster to develop | 13:20 |
blackburn | wiking: do you have openmp experience? | 13:21 |
wiking | yeah some | 13:21 |
blackburn | wiking: any performance issues? | 13:21 |
wiking | it really depends how u use it | 13:21 |
blackburn | yeah I know | 13:21 |
wiking | so when the first time i've used it it wasn't so good | 13:22 |
blackburn | but still - some sources claim it is even faster than openmp | 13:22 |
wiking | but then again if u use the threads in a good way | 13:22 |
wiking | then it is significant | 13:22 |
wiking | i mean the performance difference | 13:22 |
blackburn | errr | 13:22 |
blackburn | than pthreads | 13:22 |
wiking | yep | 13:23 |
blackburn | I believe it can be possible but need to check in shogun context | 13:23 |
-!- pluskid [~pluskid@li400-235.members.linode.com] has joined #shogun | 13:23 | |
blackburn | I should force myself to continue preparing for exam | 13:24 |
pluskid | sonney2k, sonne|work around? | 13:26 |
blackburn | wiking: it will really reduce LoC | 13:26 |
pluskid | I'm skimming through the git log, and find a place that was changed back and forth by you and me | 13:27 |
pluskid | sonney2k: in MulticlassOneVsOneStrategy.cpp, train_prepare_next | 13:29 |
pluskid | note the returning SGVector (subset) has a different length from the original created one. If you prefer this solution, I think at least we should re-assign the length of the "subset" object to "tot" before returning | 13:30 |
blackburn | pluskid: sorry I have to continue my preparations - but could you please test if with your changes multiclasslinearmachine example do not fail? | 13:34 |
pluskid | blackburn: ok | 13:36 |
sonne|work | pluskid: yes that was correct | 13:40 |
pluskid | sonne|work: so you'll fix it? | 13:40 |
sonne|work | pluskid: no it is correct the way it was before your fix | 13:41 |
pluskid | hmm, let me think... | 13:41 |
eric_ | wiking: CLibSVMMultiClass | 13:41 |
sonne|work | tot is the total length in the end | 13:41 |
sonne|work | pluskid: please think loud ... there is always the option that I made a mistake too | 13:42 |
sonne|work | s/too// | 13:42 |
pluskid | sonne|work: I don't think tot will be the total length in the end | 13:42 |
sonne|work | pluskid: ok why not? it is inc' in the if and the else branch | 13:43 |
sonne|work | total length times | 13:43 |
pluskid | if ... else if | 13:43 |
sonne|work | ahh | 13:43 |
blackburn | what are you talking about? | 13:43 |
blackburn | I can't stand | 13:43 |
blackburn | mc machine? | 13:44 |
sonne|work | blackburn: prepare your exam! | 13:44 |
pluskid | in multiclass, OvO only a pair of class is trained one time, so some examples are skipped, so tot will be less than total | 13:44 |
sonne|work | pluskid: I will do subset.resize(tot) then | 13:45 |
blackburn | tot is number of vectors of only 2 classes | 13:45 |
pluskid | sonne|work: yes, that's also good | 13:45 |
sonne|work | pluskid: that explains the crashers right? | 13:45 |
pluskid | which crasher? | 13:46 |
CIA-113 | shogun: Soeren Sonnenburg master * r090a330 / src/shogun/multiclass/MulticlassOneVsOneStrategy.cpp : resize SGVector to match total size - http://git.io/n2izQg | 13:46 |
sonne|work | in linearmulticlassmachine? | 13:46 |
sonne|work | and other stuff | 13:46 |
pluskid | in the latest code? | 13:46 |
pluskid | I fixed several yesterday | 13:46 |
pluskid | just back from the hospital today, I'll check if there's still some crashes in mc | 13:47 |
sonne|work | can someone try if make check-valgrind works now in examples/undocumented/libshogun? | 13:47 |
blackburn | I can :D | 13:47 |
sonne|work | pluskid: uhh? badly sick or 'just' cold? | 13:47 |
sonne|work | blackburn: youuu...! | 13:47 |
blackburn | I can do everything but not to prepare | 13:47 |
pluskid | sonne|work: maybe badly cold... | 13:47 |
blackburn | hmm may be I should wash floor here | 13:47 |
pluskid | much better after 4 days of intravenous curing | 13:47 |
wiking | eric_: ok so i'm just doing the fix ... | 13:47 |
sonne|work | yeah not good | 13:47 |
blackburn | sonne|work: not compileable | 13:48 |
blackburn | sg vector has no resize | 13:48 |
eric_ | wiking: great | 13:48 |
sonne|work | blackburn: just try it | 13:48 |
sonne|work | ^ openmp I mean | 13:49 |
sonne|work | what? | 13:49 |
blackburn | sonne|work: I will | 13:49 |
sonne|work | ahh | 13:49 |
sonne|work | it is called resize_vector | 13:49 |
blackburn | aham | 13:49 |
blackburn | here it comes | 13:49 |
sonne|work | maybe we should shorten these function names | 13:49 |
CIA-113 | shogun: Sergey Lisitsyn master * r545afa3 / src/shogun/multiclass/MulticlassOneVsOneStrategy.cpp : Fixed wrong method call - http://git.io/1ea3CA | 13:49 |
sonne|work | pluskid: then get well soon! | 13:50 |
CIA-113 | shogun: Sergey Lisitsyn master * r3bae7fc / (2 files): Checks for multiclass svms - http://git.io/8TMyEw | 13:50 |
pluskid | sonne|work: thanks, that's also my hope | 13:51 |
blackburn | I have prepared 3 of 35 questions for my exam :D | 13:51 |
pluskid | blackburn: then continue | 13:51 |
blackburn | quite easy and this makes me procrastinate even more | 13:51 |
pluskid | what course btw? | 13:52 |
shogun-buildbot | build #852 of libshogun is complete: Failure [failed compile] Build details are at http://www.shogun-toolbox.org/buildbot/builders/libshogun/builds/852 blamelist: sonne@debian.org | 13:52 |
blackburn | pluskid: digital signal processing | 13:52 |
pluskid | oops | 13:53 |
blackburn | qdrgsm@qdrgsm-laptop:~/Shogun/shogun/examples/undocumented/libshogun$ python classifier_multiclasslinearmachine.cpp | 13:53 |
blackburn | File "classifier_multiclasslinearmachine.cpp", line 13 | 13:53 |
blackburn | using namespace shogun; | 13:53 |
blackburn | ^ | 13:53 |
blackburn | SyntaxError: invalid syntax | 13:53 |
blackburn | :D :D :D | 13:53 |
CIA-113 | shogun: Sergey Lisitsyn master * rcbb46be / examples/undocumented/libshogun/classifier_multiclasslinearmachine.cpp : Fixed multiclass linearmachine example - http://git.io/yJpibg | 13:54 |
blackburn | sonne|work: YAY | 13:55 |
blackburn | all ok?? | 13:55 |
sonne|work | did you check? | 13:55 |
sonne|work | well we will see what the buildbot says... | 13:56 |
pluskid | how to only run python_modular check-examples? | 13:56 |
shogun-buildbot | build #853 of libshogun is complete: Success [build successful] Build details are at http://www.shogun-toolbox.org/buildbot/builders/libshogun/builds/853 | 13:56 |
blackburn | sonne|work: structure dynprog crashes | 13:56 |
blackburn | terribly with double free | 13:56 |
blackburn | pluskid: random ECOC is a little unstable | 13:57 |
pluskid | blackburn: producing SG_ERROR? | 13:57 |
blackburn | complains he failed to make a codebook within given number of iterations | 13:57 |
sonne|work | blackburn: the dynprog stuff should be easy to fix | 13:58 |
pluskid | blackburn: yes, I can disable the SG_ERROR though | 13:58 |
blackburn | pluskid: will it work then? | 13:58 |
pluskid | blackburn: no | 13:58 |
blackburn | :D | 13:58 |
blackburn | pluskid: can you explain why does it fail? | 13:59 |
pluskid | I don't get any good idea here | 13:59 |
pluskid | it produce random coding | 13:59 |
pluskid | codebook | 13:59 |
blackburn | huh that's clear from name ;) | 13:59 |
pluskid | with sparsity, so zero is also produced | 13:59 |
blackburn | do you ignore zeroes? | 13:59 |
pluskid | consider a row of all-zero | 13:59 |
pluskid | or only zero and +1; or only zero and -1 | 14:00 |
blackburn | pluskid: does it happen sometimes? | 14:00 |
pluskid | if it happens in a single row, the whole codebook should be discarded | 14:00 |
pluskid | or *column*, in the usual sense of how the ECOC codebook is put | 14:01 |
blackburn | pluskid: can we launch something crazy here to resemble everything? | 14:01 |
blackburn | what is distribution? | 14:01 |
pluskid | rand(0, 1) | 14:01 |
pluskid | 0.3 zero, 0.35 +1 0.35 -1 | 14:01 |
pluskid | uniform distrib | 14:02 |
pluskid | maybe our num class is small here | 14:02 |
pluskid | only 4 classes, random sample 4 numbers in {0,-1,+1} | 14:02 |
blackburn | I think if some shuffle changes anything here | 14:02 |
pluskid | it is very likely to get 4 numbers without +1 or -1 | 14:02 |
blackburn | yeah | 14:02 |
pluskid | my previous solution is to continue iteration until a good codebook is found | 14:03 |
blackburn | yeah it converges I believe | 14:03 |
pluskid | but it runs tooooooooooooo long sometimes | 14:03 |
pluskid | so I do this and let the user know... | 14:03 |
pluskid | I don't know which is better | 14:03 |
pluskid | currently we've already using 10000 iterations | 14:04 |
sonne|work | pluskid: why not sample from good codebooks | 14:04 |
pluskid | the suggested num-iter in the paper is ... let me find | 14:04 |
sonne|work | i.e. generate all valid ones | 14:04 |
sonne|work | and then permute | 14:04 |
blackburn | sonne|work: ?? | 14:04 |
blackburn | and where to store? | 14:04 |
pluskid | sonne|work: impossible i think | 14:04 |
pluskid | exponential | 14:04 |
blackburn | yeah | 14:04 |
blackburn | would be shogun-codebooks repo | 14:05 |
blackburn | :D | 14:05 |
blackburn | pluskid: may be some reshuffling can help there? | 14:05 |
sonne|work | you don't have to store them all in memory | 14:05 |
sonne|work | I mean you want only a certain number many | 14:05 |
pluskid | blackburn: what do you mean by that? | 14:06 |
sonne|work | pluskid: you generate only valid codebooks | 14:06 |
blackburn | pluskid: hmm no any heuristics would break probabilities | 14:06 |
blackburn | pluskid: can we set 0 probability to 0 in example? | 14:07 |
pluskid | sonne|work: how to generate only valid codebooks? I'm currently generating and discarding invalid codebooks | 14:07 |
pluskid | blackburn: that would then be the RandomDenseECOC | 14:07 |
blackburn | :D | 14:07 |
blackburn | 0.01? | 14:07 |
blackburn | :D | 14:07 |
blackburn | just to make example less random | 14:07 |
blackburn | however still probability to fail | 14:08 |
blackburn | I don't like any probabilities here | 14:08 |
sonne|work | pluskid: how do you check a codebook is valid? | 14:08 |
pluskid | sonne|work: both +1 and -1 occur | 14:08 |
blackburn | sonne|work: contains +1 and -1 | 14:08 |
pluskid | hmm, suggested max-iter in the paper is also 10,000 | 14:09 |
pluskid | maybe we can simple remove the random sparse ecoc from example | 14:09 |
pluskid | since it is virtually the same as random dense, except the prob of 0 | 14:09 |
blackburn | pluskid: or give working codebook to it? | 14:10 |
sonne|work | so each example get +1 or -1 assigned or what? | 14:10 |
blackburn | sonne|work: each element of codebook | 14:10 |
sonne|work | blackburn: ? | 14:10 |
blackburn | sonne|work: it contains rows | 14:10 |
blackburn | like 0 1 0 1 - 1 0 -1 | 14:10 |
blackburn | for each class | 14:10 |
blackburn | describing how group of classes interact | 14:11 |
pluskid | haha, blackburn totally forgot about his exam | 14:11 |
blackburn | :D | 14:11 |
blackburn | pluskid: am I right? | 14:11 |
pluskid | yes | 14:11 |
sonne|work | blackburn: what is the shape of a codebook? | 14:11 |
pluskid | <blackburn> pluskid: or give working codebook to it? | 14:11 |
sonne|work | as in #rows, #cols | 14:11 |
blackburn | len of code | 14:12 |
blackburn | and num of classes | 14:12 |
pluskid | yes | 14:12 |
pluskid | <blackburn> pluskid: or give working codebook to it? | 14:12 |
sonne|work | len of code can be arbitrary? | 14:12 |
pluskid | ^^^^ what does this mean? | 14:12 |
blackburn | sonne|work: yes | 14:12 |
blackburn | pluskid: can we set given codebook? | 14:12 |
sonne|work | blackburn: and what do 0 -1 1 stand for? | 14:12 |
blackburn | sonne|work: hmm for example 1 -1 -1 -1 is OvR | 14:12 |
sonne|work | not used, neg class, pos class? | 14:13 |
pluskid | blackburn: yes, but that would not be the RandomSparseECOCEncoder any more | 14:13 |
blackburn | yes | 14:13 |
blackburn | pluskid: I mean some generated by random sparse ecoc encoder codebook? | 14:13 |
blackburn | sonne|work: for 3 classes OvR is | 14:13 |
blackburn | 1 -1 -1 | 14:13 |
blackburn | -1 1 -1 | 14:13 |
blackburn | -1 -1 1 | 14:13 |
sonne|work | and the problem is that when you sample you sometimes don't have a +1 and -1 in there right? | 14:14 |
blackburn | sonne|work: exactly | 14:14 |
blackburn | only zeros | 14:14 |
blackburn | or only zeros and 1 | 14:14 |
blackburn | or anything like that | 14:14 |
pluskid | blackburn: I mean we have a ECOCStrategy which can use any valid codebook, what's failing here is not our Strategy but an Encoder that failed to produce a valid codebook | 14:14 |
sonne|work | so why not select 1 position for +1 and one for -1 and then do the standard random sampling you do? | 14:14 |
sonne|work | the position can be selected by randomly shuffling | 14:15 |
blackburn | sonne|work: breaks probabilities (probably :D) | 14:15 |
sonne|work | why? I mean if you drop invalid codings later anyways? | 14:15 |
blackburn | sonne|work: valid encodings are still pure random | 14:16 |
sonne|work | no | 14:16 |
sonne|work | they have a +1 and a -1 | 14:16 |
blackburn | sonne|work: does probability of containing +1 and -1 changes | 14:16 |
sonne|work | so if you choose a position for +1 and -1 randomly and the rest in the same way it is random in the same way | 14:17 |
blackburn | if you set it unconditionally? | 14:17 |
sonne|work | blackburn: well pluskid can veryify | 14:17 |
blackburn | sonne|work: I am unsure but tend you are right | 14:17 |
sonne|work | just do both approaches and plot the distribution :) | 14:18 |
pluskid | I'm not sure, too | 14:18 |
blackburn | kind of base stuff we can't experiment here :D | 14:18 |
sonne|work | blackburn: no but we can verify if what we do is correct | 14:18 |
blackburn | I mean to do it w/o any experimental support | 14:18 |
sonne|work | why that? this 'experiment' takes a few minutes only anyways | 14:19 |
blackburn | sonne|work: I mean we can do it w/o any checking | 14:20 |
blackburn | can't | 14:20 |
blackburn | :E | 14:20 |
blackburn | damn | 14:20 |
sonne|work | yeah | 14:20 |
sonne|work | agreed | 14:20 |
blackburn | sun is shining the weather is sweet | 14:21 |
pluskid | ok, I'll check that | 14:21 |
blackburn | how can I prepare to my exam damn :D | 14:21 |
sonne|work | blackburn: throw your computer out of the window, close the curtain and let someone lock you in | 14:23 |
blackburn | :D | 14:24 |
-!- vikram360 [~vikram360@117.192.171.228] has quit [Ping timeout: 256 seconds] | 14:24 | |
-!- vikram360 [~vikram360@117.216.144.237] has joined #shogun | 14:25 | |
blackburn | hmm vapnik textbook seem to be so interesting when you have to learn other stuff | 14:26 |
blackburn | sonne|work: have you ever tried to read vapnik stuff in russian? :D | 14:28 |
sonne|work | pluskid: I think we cannot help blackburn | 14:28 |
blackburn | :D :D | 14:28 |
blackburn | okay back to dsp | 14:28 |
sonne|work | /kick blackburn | 14:28 |
blackburn | :D | 14:29 |
pluskid | haha | 14:29 |
pluskid | don't worry, he said it is easy | 14:29 |
blackburn | stupid easy sometimes | 14:30 |
sonne|work | w/ numpy :) | 14:34 |
pluskid | blackburn, sonne|work : the prob does changes | 14:34 |
pluskid | https://gist.github.com/2627521 | 14:34 |
pluskid | but I think this solution can be a good idea, though | 14:34 |
blackburn | analytics? ;) | 14:34 |
pluskid | blackburn: yes, I think this is better than code experiment :D | 14:35 |
pluskid | bad thing is that we can no longer share code between RandomSparse and RandomDense :p | 14:35 |
blackburn | not always :) | 14:35 |
blackburn | I like fourier and other integral transforms sooo much | 14:38 |
pluskid | really? | 14:39 |
blackburn | yeah | 14:39 |
blackburn | and spectral things too | 14:39 |
blackburn | I am not religious but I want to keep some underlying concept for some reason :D | 14:39 |
blackburn | pluskid: I've felt in love with spectral stuff when I was young ^W working on dimensionality reduction :D | 14:41 |
blackburn | it is really cool to see how swissroll unroll using some alignment matrix | 14:41 |
pluskid | haha, true | 14:41 |
pluskid | do you love Riemannian Geometry? | 14:41 |
pluskid | btw: go back to your exam, please~~ | 14:42 |
blackburn | pluskid: I wish I understood anything from riemannian geometry | 14:42 |
blackburn | hehe ok | 14:43 |
blackburn | pluskid: now I am really curious to try mellin transform | 14:45 |
pluskid | never heard about that | 14:45 |
blackburn | it is scale invariant | 14:45 |
pluskid | it is for what? | 14:45 |
blackburn | just like fourier, laplace, etc | 14:45 |
blackburn | but scale invariant :) | 14:46 |
blackburn | shit | 14:46 |
blackburn | I want to implement it right now and try | 14:46 |
blackburn | :D | 14:46 |
pluskid | haha | 14:46 |
pluskid | wait a day | 14:46 |
blackburn | yeah! | 14:46 |
blackburn | I can :D | 14:46 |
pluskid | brb | 14:47 |
-!- vikram360 [~vikram360@117.216.144.237] has quit [Ping timeout: 248 seconds] | 14:55 | |
blackburn | sonne|work: 8/35 :P | 15:03 |
blackburn | time to shogun! :D joke | 15:04 |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 260 seconds] | 15:43 | |
blackburn | pluskid: but you said it changes probabilites? | 16:13 |
blackburn | ah | 16:13 |
blackburn | I see description in header | 16:13 |
pluskid | blackburn: yeah, I think this is an acceptable solution | 16:14 |
blackburn | agree | 16:14 |
CIA-113 | shogun: Chiyuan Zhang master * r32a078c / (4 files): A new method for ECOC Random Sparse to avoid invalid code - http://git.io/DBs7hg | 16:14 |
CIA-113 | shogun: Chiyuan Zhang master * r01dff0d / src/shogun/multiclass/ecoc/ECOCRandomSparseEncoder.h : get_default_code_length no longer needed to be virtual - http://git.io/6o6dmg | 16:14 |
CIA-113 | shogun: Sergey Lisitsyn master * ra6dd589 / (4 files): Merge branch 'ecoc-random-sparse' of https://github.com/pluskid/shogun - http://git.io/Q8bJDQ | 16:14 |
blackburn | pluskid: is it possible to codebook OvO? | 16:17 |
pluskid | blackburn: yes, there's already one | 16:20 |
pluskid | ECOCOVOEncoder | 16:20 |
blackburn | yeah I missed it somehow | 16:20 |
blackburn | pluskid: then I do not understand it at some point | 16:21 |
pluskid | however, they are slightly different from traditional OvO & OvR, because of decoding | 16:21 |
pluskid | i.e. how to get the final classification result from a bunch of binary results | 16:21 |
blackburn | pluskid: is there any differencies in ovr and ovo encoding? | 16:22 |
pluskid | blackburn: ovr vs. ovo ? | 16:22 |
blackburn | yes | 16:22 |
pluskid | blackburn: yes, ovr is dense, ovo is sparse :D | 16:22 |
blackburn | oh right | 16:23 |
blackburn | I see now | 16:23 |
blackburn | OvO has N(N-1)/2 length | 16:24 |
pluskid | yeah | 16:24 |
blackburn | pluskid: I've got some crasher with random ecoc hmm | 16:29 |
pluskid | blackburn: hmm, how to produce it? | 16:29 |
blackburn | let me try with valgrind (it is pretty slow) | 16:30 |
pluskid | ok | 16:30 |
blackburn | uh wow | 16:31 |
blackburn | pluskid: not ecoc issue probably.. | 16:32 |
pluskid | hmm | 16:32 |
blackburn | some crazy things out there :D | 16:32 |
pluskid | what's happening? | 16:32 |
blackburn | ==8764== Source and destination overlap in memcpy(0x15ca7040, 0x15ca7040, 5944320) | 16:32 |
blackburn | ==8764== at 0x4C2A1C4: memcpy (mc_replace_strmem.c:635) | 16:32 |
blackburn | ==8764== by 0x11B0FB4D: get_copy(void*, unsigned long) (modshogun_wrap.cxx:5169) | 16:32 |
pluskid | what's modshogun_wrap.cxx:5169 ? SWIG would be hard to debug... | 16:33 |
blackburn | pluskid: I guess something wrong with my script | 16:35 |
blackburn | this can't be true :D | 16:35 |
pluskid | haha | 16:35 |
-!- karlnapf [~heiko@host86-182-166-18.range86-182.btcentralplus.com] has joined #shogun | 16:36 | |
-!- wiking [~wiking@78-23-189-112.access.telenet.be] has joined #shogun | 16:51 | |
-!- wiking [~wiking@78-23-189-112.access.telenet.be] has quit [Changing host] | 16:51 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 16:51 | |
@sonney2k | Re | 16:52 |
@sonney2k | blackburn, can you check how much they overlap | 16:52 |
@sonney2k | actually they are the same | 16:52 |
@sonney2k | memcpy(0x15ca7040, 0x15ca7040, 5944320) | 16:52 |
@sonney2k | blackburn, is len of 5944320 reasonable? | 16:52 |
blackburn | sonney2k: no idea :D | 16:53 |
@sonney2k | 6MB? | 16:53 |
blackburn | yes should be something like that | 16:53 |
@sonney2k | blackburn, how big is the stuff you copy? | 16:53 |
@sonney2k | ok | 16:53 |
@sonney2k | then it makes sense | 16:53 |
@sonney2k | pluskid, just reading your gist | 16:55 |
blackburn | I can't stop valgrind with that example :D | 16:55 |
@sonney2k | don't understand it yet but I guess you are saying things are differnent | 16:55 |
pluskid | sonney2k: yes, different if I'm correct, but acceptable | 16:56 |
pluskid | I mean acceptable if we explicitly document it | 16:56 |
pluskid | and since the user generally never care about the probabilities | 16:56 |
@sonney2k | pluskid, I don't really udnerstand what you wrote | 16:59 |
pluskid | sonney2k: I'm calculating the prob of getting 0, +1 and -1 for a position | 16:59 |
@sonney2k | ok so if uniformly sampling it is all 1/3 | 17:00 |
@sonney2k | right? | 17:00 |
pluskid | yes | 17:00 |
pluskid | if we use our alternative method | 17:00 |
pluskid | to get 0, first you should not be randomly selected as the two positions | 17:00 |
* sonney2k watches valgrind - yay the examples work again :) | 17:01 | |
pluskid | the prob is C(2,N-1) / C(2,N) | 17:01 |
pluskid | here N is num classes, assume it is 4 | 17:01 |
@sonney2k | pluskid, ok | 17:02 |
@sonney2k | pluskid, actually the 1/3 is not correct since we remove cases where we don't have a -1 and +1 at least | 17:02 |
pluskid | yes | 17:02 |
@sonney2k | I mean even in the uniform sampling case | 17:02 |
pluskid | sonney2k: no | 17:02 |
pluskid | sonney2k: we are rejecting the whole codebook, not single code position | 17:02 |
@sonney2k | pluskid, why? I thought we drop all cases | 17:03 |
@sonney2k | ahh | 17:03 |
@sonney2k | ok | 17:03 |
@sonney2k | but still | 17:03 |
@sonney2k | the whole codebook then needs modelling | 17:03 |
@sonney2k | basically concatenation of one code then | 17:03 |
@sonney2k | err to one code | 17:04 |
@sonney2k | and there will be more +1/-1s than usual in there | 17:04 |
pluskid | that's true, we are not sampling from the space of all codebooks | 17:05 |
pluskid | not uniform sampling from all codebooks | 17:05 |
@sonney2k | yeah | 17:07 |
@sonney2k | I fail to solve this analytically | 17:07 |
@sonney2k | have to leave train | 17:09 |
@sonney2k | pluskid, thanks for the fix and cu hopefully tomorrow | 17:09 |
pluskid | sonney2k: haha, cu | 17:09 |
pluskid | time to sleep soon here | 17:09 |
-!- eric_ [2e1fd566@gateway/web/freenode/ip.46.31.213.102] has quit [Quit: Page closed] | 17:12 | |
-!- pluskid [~pluskid@li400-235.members.linode.com] has quit [Quit: Leaving] | 17:16 | |
-!- uricamic [~uricamic@2001:718:2:1634:f2de:f1ff:fecf:a6a5] has quit [Quit: Leaving.] | 17:20 | |
CIA-113 | shogun: Heiko Strathmann master * r302bc24 / (2 files): | 17:26 |
CIA-113 | shogun: m_values variable is now split to array/length instead of SGVector due to messy | 17:26 |
CIA-113 | shogun: problems. Parameter registration removed - http://git.io/WlOeNw | 17:26 |
CIA-113 | shogun: Heiko Strathmann master * rcd00a95 / src/shogun/modelselection/ModelSelectionParameters.h : serialization is now forbidden - http://git.io/VQKUZg | 17:26 |
CIA-113 | shogun: Heiko Strathmann master * r8105d5f / (2 files): | 17:26 |
CIA-113 | shogun: Merge pull request #503 from karlnapf/master | 17:26 |
CIA-113 | shogun: get rid of SGVector<void/char> - http://git.io/VDh6YA | 17:26 |
-!- n4nd0 [~n4nd0@190.Red-2-137-59.dynamicIP.rima-tde.net] has joined #shogun | 17:35 | |
n4nd0 | yaay! back to normal life :) | 17:36 |
blackburn | n4nd0: oh congrats | 17:36 |
blackburn | how was your exam? | 17:36 |
n4nd0 | blackburn, I think it was ok, we'll see | 17:39 |
blackburn | n4nd0: do you have results of other exams yet? | 17:39 |
blackburn | I have last one on DSP | 17:39 |
blackburn | tomorrow | 17:39 |
n4nd0 | not yet | 17:40 |
n4nd0 | I didn't even get the one I did two Thursdays ago yet | 17:40 |
blackburn | I see | 17:41 |
blackburn | n4nd0: so you are free to do some stuff? | 17:41 |
n4nd0 | yeah! | 17:42 |
blackburn | n4nd0: you were talking about some umls? | 17:42 |
n4nd0 | yes, Nico suggested to prepare them | 17:43 |
n4nd0 | I saw he started some code sketch in gist as well | 17:43 |
blackburn | I just tried to sketch some domain adaptation example | 17:44 |
blackburn | :D | 17:44 |
blackburn | can't enhance accuracy | 17:44 |
blackburn | it is 1.0 :D | 17:44 |
n4nd0 | in gist you mean? | 17:44 |
blackburn | no | 17:44 |
-!- gsomix [~gsomix@178.45.90.39] has joined #shogun | 17:49 | |
blackburn | ??????????? ??????? | 17:50 |
karlnapf | I love the new SGVector system :) | 17:58 |
gsomix | hi all | 17:58 |
karlnapf | hi | 17:58 |
blackburn | karlnapf: is there any bugs so far? | 17:59 |
karlnapf | blackburn, dont know, I am currently another one | 17:59 |
karlnapf | but the --enable-trace-mallocs still doesnt work | 17:59 |
karlnapf | which would be an enormous help | 17:59 |
blackburn | gsomix: | 17:59 |
gsomix | in progress | 18:00 |
karlnapf | I did not mean to stress anybody btw :) | 18:01 |
blackburn | karlnapf: it is ok, RIGHT GSOMIX? :D | 18:01 |
karlnapf | lol :D | 18:01 |
gsomix | blackburn, yes, master. | 18:01 |
blackburn | karlnapf: index_t in subsets is confusing for python :( | 18:03 |
karlnapf | blackburn, what? | 18:03 |
karlnapf | doesnt compile? | 18:04 |
blackburn | karlnapf: subsets are SGVector<uint32_t> | 18:04 |
blackburn | but in python default int is signed | 18:04 |
blackburn | so you have to explicitly set type | 18:04 |
karlnapf | where did I do the uint32_t | 18:04 |
blackburn | actually I think we can handle this | 18:04 |
blackburn | karlnapf: orrr | 18:04 |
blackburn | ah | 18:04 |
blackburn | karlnapf: sorry not u | 18:04 |
karlnapf | kk :) | 18:05 |
blackburn | but still doesn't fit | 18:05 |
blackburn | karlnapf: hmm let me check default type | 18:05 |
karlnapf | index_t = int32_t | 18:05 |
blackburn | yes | 18:05 |
karlnapf | i am using index_t everywhere | 18:05 |
blackburn | karlnapf: yes that's ok | 18:05 |
blackburn | karlnapf: ah! got it | 18:05 |
blackburn | it seems swig does not generate while it is index_t | 18:06 |
blackburn | and default int in python is 64 | 18:06 |
blackburn | :D | 18:06 |
blackburn | I guess it can be solved with typemaps | 18:06 |
karlnapf | mmh | 18:07 |
gsomix | >> 0 Blocks are allocated: | 18:09 |
gsomix | horray! | 18:09 |
blackburn | sonney2k: have you seen? http://google-opensource.blogspot.com/2012/05/introducing-ceres-solver-nonlinear.html | 18:11 |
blackburn | it is portable - callback classes | 18:12 |
-!- PhilTillet [~philippe@vir78-1-82-232-38-145.fbx.proxad.net] has joined #shogun | 18:14 | |
-!- n4nd0 [~n4nd0@190.Red-2-137-59.dynamicIP.rima-tde.net] has quit [Ping timeout: 276 seconds] | 18:20 | |
blackburn | karlnapf: need advice | 18:31 |
karlnapf | blackburn, yes? | 18:31 |
blackburn | what does low auROC and high accuracy mean? | 18:31 |
karlnapf | ehm | 18:31 |
karlnapf | auROC = area under ROC curve? | 18:32 |
blackburn | yeah | 18:32 |
blackburn | accuracy = 0.5 | 18:32 |
blackburn | auROC = 0.745575 | 18:32 |
blackburn | accuracy = 0.5175 | 18:32 |
blackburn | auROC = 0.371575 | 18:32 |
blackburn | any idea what I have lost there? | 18:32 |
blackburn | accuracy increased but ROC felt down | 18:32 |
karlnapf | which problem? | 18:32 |
karlnapf | might have to do with symmetry of the problem | 18:32 |
blackburn | no, dataset is well balanced | 18:33 |
karlnapf | you can get a bad classifier while the ROC score is large | 18:33 |
blackburn | 200 vs 200 | 18:33 |
karlnapf | mmmh | 18:33 |
blackburn | I am doing some experiments with domain adaptation | 18:33 |
blackburn | first one is SVM trained on source domain | 18:33 |
blackburn | applied to target domain | 18:33 |
karlnapf | I usually dont use ROC because of all these caveats one might run into | 18:33 |
karlnapf | let me think isnt there a case when you can have high accuracy but low roc? | 18:34 |
blackburn | and second one is SVM trained on subset of target domain regularized against SVM trained on source domain | 18:34 |
blackburn | hmmm | 18:34 |
blackburn | it really depends on parameters.. | 18:34 |
blackburn | accuracy = 0.5 | 18:34 |
blackburn | auROC = 0.73045 | 18:34 |
blackburn | accuracy = 0.6575 | 18:34 |
blackburn | auROC = 0.788975 | 18:34 |
blackburn | much better now :D | 18:35 |
karlnapf | what did you do? | 18:35 |
blackburn | changed C | 18:35 |
karlnapf | well | 18:35 |
karlnapf | how is the ROC computed anyway? | 18:35 |
blackburn | two C and two widths | 18:35 |
blackburn | crazy | 18:35 |
karlnapf | we dont have the signoid fitting for SVMs | 18:35 |
karlnapf | what score is used? | 18:35 |
blackburn | why do you need to have sigmoid fitting there? | 18:35 |
karlnapf | ROC needs a non-binary classifier score | 18:36 |
karlnapf | what is used here? | 18:36 |
blackburn | outputs of svm | 18:36 |
karlnapf | a i see | 18:36 |
blackburn | FP/(FN+TN) | 18:36 |
blackburn | TP/(FP+TP) | 18:36 |
karlnapf | sorry then, if the classes are balanced I dont know where this should come from | 18:38 |
blackburn | karlnapf: me too | 18:38 |
blackburn | karlnapf: ah one more q | 18:38 |
karlnapf | have you tried f1 measure? | 18:38 |
blackburn | not yet | 18:38 |
karlnapf | thats usually the most robust | 18:38 |
blackburn | I just don't know how to fit values here | 18:39 |
karlnapf | which ones? | 18:39 |
blackburn | C, width | 18:39 |
karlnapf | mmh you might use my mighty grid-search framework :) | 18:39 |
blackburn | karlnapf: that's a crazy case here.. | 18:39 |
karlnapf | start with a coarse search (exponential 2^-5 to 2^10 or so) | 18:40 |
karlnapf | find best pair and refine from there | 18:40 |
blackburn | karlnapf: I have 4 parameters :D | 18:40 |
karlnapf | oh | 18:40 |
blackburn | C of source svm | 18:40 |
karlnapf | well, you only told me about 2 :) | 18:40 |
blackburn | width of source kernel | 18:40 |
blackburn | C of target svm | 18:40 |
blackburn | and no idea if width should be the same | 18:40 |
karlnapf | and the domain is different? | 18:40 |
blackburn | yes | 18:40 |
karlnapf | then probably not the same | 18:40 |
karlnapf | I would let that run over night | 18:41 |
blackburn | karlnapf: I do not really want results but to grasp how does it change | 18:41 |
blackburn | however slight improvement is here and I should be happy | 18:42 |
karlnapf | with 4 parameter I would say one cannot really imagine that | 18:42 |
blackburn | yeah 4d spaces are hard to grasp :D | 18:42 |
-!- vikram360 [~vikram360@117.216.144.237] has joined #shogun | 18:44 | |
blackburn | pff everything is so ill-posed | 18:44 |
blackburn | karlnapf: it seems your supervisor is the expert in things like kernel mean matching, right? | 18:48 |
blackburn | karlnapf: hahaha I should make it linear probably | 18:54 |
blackburn | got 1.0 finally | 18:54 |
-!- PhilTillet [~philippe@vir78-1-82-232-38-145.fbx.proxad.net] has quit [Remote host closed the connection] | 18:54 | |
karlnapf | blackburn, congrats :) | 18:55 |
blackburn | :D | 18:55 |
blackburn | okay now I see it works more or less | 18:55 |
karlnapf | blackburn, yes, arthur does a lot of kernel based statistical stuff | 18:55 |
blackburn | karlnapf: is he overloaded with his work? | 18:56 |
karlnapf | well scientists tend to be overloaded all the time :) | 18:56 |
blackburn | I mean is there a chance I ask him for some advice? | 18:56 |
karlnapf | he's quite busy, but you can probably send him a mail | 18:56 |
karlnapf | whats the problem though? | 18:56 |
blackburn | nothing just estimate for my future work | 18:56 |
blackburn | karlnapf: KMM is useful for DA | 18:57 |
blackburn | so if there is the expert like arthur I can ask him if I am stucked :D | 18:57 |
karlnapf | lol i dont know both of these abreviations :) | 18:57 |
blackburn | kernel mean matching | 18:57 |
blackburn | domain adaptation | 18:57 |
karlnapf | k | 18:59 |
karlnapf | mmh | 18:59 |
karlnapf | kernel mean matching is? | 18:59 |
karlnapf | the MMD metric? | 18:59 |
blackburn | karlnapf: no I don't think so | 19:00 |
blackburn | karlnapf: it is a method to match test and train domains | 19:00 |
karlnapf | mmh, I mean you can still ask :) | 19:02 |
karlnapf | but I am unsure whether he has time to dig into that -- which is probably necessary | 19:02 |
blackburn | heh ok | 19:02 |
blackburn | http://dl.dropbox.com/u/10139213/share/0000_0_0_0_15_0_1.pgm | 19:06 |
blackburn | http://dl.dropbox.com/u/10139213/share/0000_02176.pgm | 19:06 |
blackburn | karlnapf: ^ that's how my domains look like | 19:06 |
karlnapf | what is the overall image in this kind of stuff? | 19:07 |
blackburn | karlnapf: what do you mean? | 19:07 |
karlnapf | explain to me what you are doing? | 19:07 |
karlnapf | :) | 19:07 |
blackburn | karlnapf: 3d image is source (train) domain | 19:08 |
blackburn | real image is target (test) domain | 19:08 |
blackburn | karlnapf: I do binary classification on that data | 19:08 |
karlnapf | what are the classes? | 19:09 |
blackburn | two different guys | 19:09 |
gsomix | karlnapf, about trace-mallocs. | 19:10 |
karlnapf | k, well nice stuff is that | 19:10 |
karlnapf | gsomix, yes? | 19:10 |
karlnapf | is it working :) ? | 19:10 |
gsomix | karlnapf, I'm afraid, but it seems, that it works... again | 19:10 |
gsomix | hehe =___= | 19:10 |
-!- n4nd0 [~n4nd0@190.Red-2-137-59.dynamicIP.rima-tde.net] has joined #shogun | 19:10 | |
karlnapf | nice :) | 19:11 |
gsomix | karlnapf, can you merge it? | 19:11 |
karlnapf | yes let me check | 19:11 |
gsomix | karlnapf, ok, just few minutes | 19:13 |
blackburn | oh shit | 19:13 |
blackburn | exam | 19:13 |
blackburn | :D | 19:13 |
n4nd0 | hey guys, a question | 19:13 |
blackburn | n4nd0: yes? | 19:13 |
n4nd0 | I think my background in optimization is rather low | 19:14 |
-!- cronor [~cronor@g225030209.adsl.alicedsl.de] has joined #shogun | 19:14 | |
n4nd0 | it will probably be quite good for me to read about it | 19:14 |
n4nd0 | do you have any recommendation? | 19:14 |
blackburn | aham! | 19:15 |
n4nd0 | I mean for example the different optimization problems that arise with SVMs | 19:15 |
blackburn | yes | 19:16 |
n4nd0 | with the different formulations and the like | 19:16 |
n4nd0 | do you think it is a good idea to read about that from a more general point of view? | 19:16 |
blackburn | n4nd0: ftp://cmp.felk.cvut.cz/pub/cmp/articles/franc/Franc-PhD05.pdf | 19:16 |
n4nd0 | let me see | 19:16 |
blackburn | well formulations of binary svm are pretty similar | 19:17 |
blackburn | they are not really changing | 19:17 |
blackburn | except some crazy (like DA stuff) things | 19:17 |
blackburn | formulations of multiclass svm are much more interesting I think :D | 19:18 |
karlnapf | n4nd0 | 19:18 |
karlnapf | there is a very nice book about convex optimization | 19:18 |
karlnapf | Stephen Boyd | 19:19 |
karlnapf | Department of Electrical Engineering | 19:19 |
karlnapf | Stanford University | 19:19 |
karlnapf | Lieven Vandenberghe | 19:19 |
karlnapf | Electrical Engineering Department | 19:19 |
karlnapf | University of California, Los Angeles | 19:19 |
karlnapf | I think its free to download | 19:19 |
karlnapf | if not, I might have a digital copy floating around somewhere | 19:19 |
blackburn | karlnapf: that 6** pages thing? | 19:19 |
karlnapf | well not everything | 19:20 |
karlnapf | I mean for understanding the SVM stuff | 19:20 |
blackburn | :D | 19:20 |
karlnapf | you basically need to understand only the Lagrangian stuff | 19:20 |
blackburn | yeah it is pretty simple | 19:20 |
blackburn | n4nd0: are you able to derive dual from primal? | 19:20 |
karlnapf | but n4nd0, dont worry, this takes some time to get | 19:20 |
blackburn | and do you know what is primal and dual? | 19:21 |
n4nd0 | blackburn, yes | 19:21 |
blackburn | yes for both? | 19:21 |
n4nd0 | blackburn, yeah | 19:21 |
karlnapf | I would start with optimizing quadratic forms, do newton, line search and Lagrangian stuff | 19:21 |
karlnapf | then you already can do a lot | 19:21 |
n4nd0 | blackburn, right now it would probably take some minutes | 19:21 |
n4nd0 | blackburn, but that is something I learnt last year in a course | 19:21 |
blackburn | n4nd0: SO is very similar to C-S multiclass | 19:22 |
blackburn | let me write it down | 19:22 |
n4nd0 | what does C-S stand for? | 19:23 |
@sonney2k | crammer singer :) | 19:24 |
blackburn | http://latex.codecogs.com/gif.latex?\min_{w}%20\sum_w%20\|w_m\|^2%20+%20C%20\sum_i%20\xi_i,%20\\%20\langle%20w_{y_i},%20x_i%20\rangle%20-%20\langle%20w_{m},%20x_i%20\rangle%20\leq%20d(y_i,m)%20-%20\xi_i,%20\\%20\text{where}~~~%20d(y_i,m)%20=%20[y_i=m] | 19:24 |
@sonney2k | blackburn, yes it is the natural extension | 19:24 |
blackburn | n4nd0: IIRC in wikipedia there is a formulation of SO | 19:24 |
@sonney2k | only problem is that the argmax can be very expensive | 19:24 |
@sonney2k | karlnapf, still there? | 19:25 |
karlnapf | sonney2k, yes | 19:25 |
blackburn | n4nd0: you could try to derive dual and match how SO can be C-S | 19:25 |
karlnapf | sonney2k, I found the reason for the error with the x-val and regression example | 19:25 |
@sonney2k | karlnapf, I was wondering about model selection / serialization with the new SGVector / Matrix stuff | 19:25 |
karlnapf | the locking is responsible | 19:25 |
@sonney2k | karlnapf, what was it? | 19:25 |
karlnapf | subset/locking related thing | 19:25 |
blackburn | n4nd0: http://www.stanford.edu/~boyd/cvxbook/ that's the book | 19:26 |
karlnapf | havent completely found out, but training without locking works | 19:26 |
karlnapf | sonney2k, what did you mean with that? | 19:26 |
@sonney2k | karlnapf, hmm | 19:26 |
blackburn | hahah my formulation is wrong sorry | 19:26 |
@sonney2k | karlnapf, locking is supposed to fix the data and precompute the kernel matrix | 19:26 |
@sonney2k | no more right? | 19:26 |
blackburn | d(y_i,m) = 1 - [y_i = m] | 19:26 |
karlnapf | yes, but it adds subsets to the custom kernel for that, and also to labels | 19:27 |
@sonney2k | karlnapf, ok what I mean is that I don't know how we can serialize/deserialze with new sgvector | 19:27 |
karlnapf | I am in the process of figuring it out :) | 19:27 |
@sonney2k | karlnapf, I recall that we were just using ptrs + len and did fill things in | 19:27 |
karlnapf | oh you mean version wise? | 19:27 |
@sonney2k | but now you need correct refcounts too | 19:27 |
@sonney2k | version wise is even worse | 19:27 |
n4nd0 | blackburn, and what about the sum over w? | 19:28 |
blackburn | n4nd0: hah | 19:28 |
blackburn | totally wrong sorry | 19:28 |
@sonney2k | i changed a couple of double* / int class member variables but that certainly will no longer work when loading | 19:28 |
blackburn | sum over ms | 19:28 |
n4nd0 | blackburn, :) | 19:28 |
karlnapf | sonney2k, you mean de-serialising a vector in general? | 19:28 |
@sonney2k | n4nd0, so did you finish your exam? all good? | 19:29 |
n4nd0 | sonney2k, pretty tiring but it was ok | 19:29 |
blackburn | sonney2k: have you seen my cool pics? ;) | 19:29 |
-!- vikram360 [~vikram360@117.216.144.237] has quit [Ping timeout: 265 seconds] | 19:29 | |
n4nd0 | sonney2k, I still find very curious when they make us in the exams step by step the convolution of two pulses | 19:30 |
n4nd0 | after five years doing the same :D | 19:30 |
n4nd0 | they make us do* | 19:30 |
@sonney2k | blackburn, about ceres - yes I have seen it. You think we should better just use it for least squares stuff? | 19:30 |
blackburn | sonney2k: it should be cool | 19:31 |
blackburn | hey it comes from google | 19:31 |
blackburn | :D | 19:31 |
blackburn | I believe we can fit it there pretty nice | 19:31 |
@sonney2k | karlnapf, yes | 19:32 |
@sonney2k | karlnapf, and not that soon sgmatrix etc will follow | 19:32 |
blackburn | n4nd0: I am going to take some convolutions tomorrow | 19:32 |
blackburn | and Z transforms | 19:32 |
blackburn | hehe | 19:33 |
@sonney2k | I mean it seems things compile now so I can continue with SGMatrix/ SparseMatrix / StringList | 19:33 |
@sonney2k | because I *really* like the new SGVector stuff | 19:33 |
blackburn | MOAR BLOOD | 19:33 |
@sonney2k | soooo much easier to use | 19:33 |
karlnapf | yes indeed | 19:33 |
karlnapf | very nice stuff | 19:33 |
n4nd0 | blackburn, you'll have some fun there :D | 19:33 |
karlnapf | mmh, I still dont really get the problem you mentioned sonney2k | 19:33 |
blackburn | n4nd0: now recalling FFT :D | 19:34 |
@sonney2k | now we just need a few more helper functions to do general tasks with vectors / matrices and then all good | 19:34 |
@sonney2k | karlnapf, do all libshogun examples run for you? | 19:34 |
n4nd0 | blackburn, you know what? FFT is actually very useful | 19:34 |
@sonney2k | because here base_map_parameters.h has a problem | 19:34 |
@sonney2k | .cpp | 19:34 |
blackburn | n4nd0: I am a big fan of any transforms | 19:34 |
blackburn | I said it today already to pluskid :D | 19:34 |
karlnapf | sonney2k, yes, in my last patch that example worked | 19:35 |
@sonney2k | karlnapf, ==17961== Invalid free() / delete / delete[] / realloc() | 19:35 |
@sonney2k | ok | 19:35 |
@sonney2k | let me git pull | 19:35 |
@sonney2k | karlnapf, btw does that mean we cannot use SGVector/Matrix etc in x-validation? | 19:35 |
karlnapf | yes we can | 19:35 |
@sonney2k | n4nd0, good to hear | 19:35 |
@sonney2k | karlnapf, that is what I wanted to hear :D | 19:36 |
karlnapf | its only that the parameter tree cannot be serialised :) | 19:36 |
@sonney2k | karlnapf, what did you remove | 19:36 |
n4nd0 | blackburn, DFT is used in wifi, 3G and 4G! it is everywhere :) | 19:36 |
karlnapf | however, currently only two types are supported | 19:36 |
@sonney2k | ahh why would one want to do that anyways? | 19:36 |
blackburn | n4nd0: yes I know ;) | 19:36 |
karlnapf | sonney2k, yes indeed, I replaces this generic vector for the values by array/len to get rid of SGVector<char> | 19:36 |
karlnapf | model-selection for matrices, I wonder if anybody will ever request this :D | 19:37 |
* sonney2k never needed fft/dft ... | 19:37 | |
@sonney2k | karlnapf, in 2 years :) | 19:38 |
karlnapf | yes :) shogun 2.0 | 19:38 |
karlnapf | also comes with cluster support :D | 19:38 |
@sonney2k | karlnapf, we hope to have shogun 2.0 this year btw | 19:39 |
@sonney2k | we are changing too much to justify a 1.x release | 19:39 |
blackburn | sonney2k: there should be a room for some transforms in genomes :D | 19:39 |
blackburn | sonney2k: hmm wait some operations can be done with fft | 19:40 |
@sonney2k | blackburn, I know viruses that can :D | 19:40 |
karlnapf | nice | 19:40 |
karlnapf | but we only had shogun1.0 and 1.1 | 19:40 |
blackburn | sonney2k: but matching? | 19:40 |
blackburn | it can be done in fourier domain | 19:40 |
@sonney2k | what do you want to match? | 19:41 |
blackburn | sequences may be? I am not an expert you know :) | 19:41 |
n4nd0 | blackburn, what matching are you talking about? | 19:41 |
n4nd0 | blackburn, matched filter? | 19:41 |
n4nd0 | wow 20 seconds lag ... | 19:42 |
cronor | hey guys | 19:44 |
karlnapf | gotta go, take care all | 19:44 |
n4nd0 | karlnapf, bye, take care you too | 19:45 |
cronor | bye karlnapf | 19:45 |
@sonney2k | karlnapf, there are still errors | 19:45 |
@sonney2k | in base_map_parameters | 19:46 |
blackburn | n4nd0: hmm I lost my idea :D | 19:46 |
@sonney2k | karlnapf, base_load_file_parameters | 19:46 |
@sonney2k | karlnapf, base_load_all_file_parameters | 19:46 |
@sonney2k | karlnapf, to reproduce run make check-valgrind | 19:46 |
blackburn | sonney2k: isn't matching of two sequencies important in bioinf? | 19:46 |
@sonney2k | seems like these are memory leaks in there | 19:47 |
@sonney2k | blackburn, yes but even considering dft or so on dna sounds a lot slower than doing the matching... | 19:47 |
blackburn | sonney2k: O(n log n) | 19:48 |
blackburn | are other matchers faster? | 19:48 |
@sonney2k | linear time (in query)... but it depends on what you want to do | 19:49 |
@sonney2k | alright then | 19:50 |
@sonney2k | I guess I should continue with SGMatrix now | 19:50 |
@sonney2k | and blackburn - don't you have an exam? | 19:50 |
blackburn | sonney2k: not now | 19:50 |
blackburn | :D | 19:50 |
blackburn | in 13 hours | 19:50 |
blackburn | too much time | 19:50 |
@sonney2k | - 2 hrs sleep | 19:50 |
@sonney2k | 11 hrs | 19:50 |
@sonney2k | yeah | 19:51 |
@sonney2k | blackburn, go fix some bugs! | 19:51 |
blackburn | sleep? what for? :D | 19:51 |
blackburn | sonney2k: do we have any? | 19:51 |
@sonney2k | gsomix, btw did you do the reformatting changes in the code? you had a couple of if(...) | 19:51 |
blackburn | I'd rather learn DSP :D :D | 19:51 |
@sonney2k | blackburn, haha | 19:51 |
gsomix | sonney2k, aha. | 19:51 |
* sonney2k opens pandoras box | 19:53 | |
@sonney2k | aka SGMatrix | 19:53 |
blackburn | sonney2k: I tried chris' DA svm | 19:53 |
blackburn | works! | 19:53 |
blackburn | sonney2k: ah 1 minute | 19:53 |
blackburn | I asked karlnapf before may be you know | 19:53 |
blackburn | what does low auROC but high accuracy mean? | 19:54 |
n4nd0 | wooow I have passed databases!!! | 19:54 |
blackburn | n4nd0: congrats ;) | 19:54 |
blackburn | we knew that | 19:54 |
@sonney2k | blackburn, data is unbalanced | 19:54 |
n4nd0 | I did so !%# bad the exam | 19:54 |
blackburn | bad? | 19:54 |
n4nd0 | I was not sure at all | 19:54 |
@sonney2k | err wait no | 19:54 |
n4nd0 | terrible | 19:54 |
blackburn | wait so bad or passed? :D | 19:55 |
@sonney2k | blackburn, what are the numbers? | 19:55 |
n4nd0 | I did it terrible, bat managed to pass | 19:55 |
n4nd0 | haha | 19:55 |
n4nd0 | but* | 19:55 |
blackburn | sonney2k: was something like 0.6 accuracy and 0.2 auROC | 19:55 |
@sonney2k | n4nd0, thats all that counts | 19:55 |
@sonney2k | blackburn, 0.2 auROC??? | 19:56 |
blackburn | yes | 19:56 |
@sonney2k | blackburn, you know that 0.5 is the worst you can get | 19:56 |
@sonney2k | (random classifier) | 19:56 |
n4nd0 | sonney2k, yeah! :) 9 credits less left | 19:56 |
blackburn | there is a bug then | 19:56 |
blackburn | orrr | 19:56 |
@sonney2k | so 1-(your classifier) | 19:56 |
@sonney2k | works better | 19:56 |
blackburn | sonney2k: yes I fixed that alraedy | 19:56 |
@sonney2k | and gets 80% auROC | 19:56 |
@sonney2k | blackburn, fixed what? | 19:56 |
blackburn | normalization and parameters | 19:56 |
blackburn | but was curious what does it mean | 19:57 |
@sonney2k | blackburn, of what? | 19:57 |
blackburn | of svms | 19:57 |
blackburn | sonney2k: | 19:57 |
blackburn | source->target | 19:57 |
blackburn | accuracy = 0.8125 | 19:57 |
blackburn | auROC = 0.925625 | 19:57 |
blackburn | DA | 19:57 |
blackburn | accuracy = 0.8775 | 19:57 |
blackburn | auROC = 1.0 | 19:57 |
@sonney2k | blackburn, it sounds like you swapped labels +1 <-> -1 | 19:57 |
@sonney2k | on test data | 19:57 |
blackburn | source is http://dl.dropbox.com/u/10139213/share/0000_0_0_0_15_0_1.png | 19:57 |
blackburn | target is http://dl.dropbox.com/u/10139213/share/0000_02176.png | 19:57 |
blackburn | sonney2k: cool example isn't it? | 19:57 |
@sonney2k | I don't get it | 20:01 |
blackburn | sonney2k: I train svm on source 3d data | 20:01 |
blackburn | and train svm regularized against that source svm on 10 examples of target real photo | 20:02 |
@sonney2k | btw, how shall we do sgvector refcount business? | 20:02 |
blackburn | and apply to whole target data | 20:02 |
blackburn | sonney2k: ? | 20:02 |
@sonney2k | I mean shall we have a common base class for SGMatrix/Vector ...? | 20:02 |
blackburn | sonney2k: what can it share? | 20:02 |
blackburn | ref? | 20:03 |
@sonney2k | the ref/unref | 20:03 |
blackburn | not really needed I think | 20:03 |
@sonney2k | not so sure | 20:03 |
@sonney2k | code is > 100 lines | 20:04 |
@sonney2k | times 5 | 20:04 |
@sonney2k | classes | 20:04 |
@sonney2k | better use inheritance... | 20:04 |
blackburn | sonney2k: I don't mind | 20:04 |
@sonney2k | any ideas for a proper name | 20:04 |
blackburn | SGDataStructure :D | 20:05 |
@sonney2k | blackburn, and then only have refcounts in there :D | 20:05 |
blackburn | sonney2k: no idea! | 20:05 |
blackburn | really no idea | 20:05 |
@sonney2k | or we use SGBase and also derive SGObject from ti | 20:06 |
@sonney2k | it | 20:06 |
@sonney2k | hmmhh sgobject is different ... it is always used as ptr | 20:07 |
blackburn | sonney2k: what will SGBase contain? | 20:07 |
blackburn | no | 20:07 |
@sonney2k | blackburn, refcounting only | 20:07 |
blackburn | that wouldnot work | 20:08 |
blackburn | moreover we planned to try shared ptrs | 20:08 |
blackburn | sonney2k: may be we can sell a place for some adv there? | 20:08 |
blackburn | SGCocaCola? | 20:08 |
@sonney2k | blackburn, SGGarbageCollector? | 20:09 |
blackburn | may be SGAlways - I always love their advertisement | 20:09 |
blackburn | ehm | 20:09 |
@sonney2k | or SGRefCounter | 20:10 |
blackburn | it is not a garbage collector | 20:10 |
blackburn | and not a ref counter | 20:10 |
@sonney2k | blackburn, https://en.wikipedia.org/wiki/Reference_counting | 20:10 |
blackburn | sonney2k: yes - not a collectOR | 20:10 |
@sonney2k | why not? | 20:10 |
blackburn | sonney2k: because collector is an entity that does garbage collecting | 20:11 |
@sonney2k | so what is ref/unref doing? | 20:11 |
blackburn | sonney2k: SGReferencedStructure | 20:11 |
blackburn | sonney2k: so each vector is a GC? | 20:11 |
@sonney2k | it is a garbage collection algroith | 20:11 |
@sonney2k | algorithm | 20:11 |
blackburn | no that name is wrong - it is confusing | 20:12 |
@sonney2k | blackburn, SGRefcountedObject ? | 20:12 |
@sonney2k | or SGReferenceCountedObject? | 20:12 |
blackburn | sonney2k: we need to make a borderline between SGObject and that class ;) | 20:13 |
blackburn | isn't SGObject ref counted? | 20:13 |
@sonney2k | wiking, n4nd0, karlnapf, gsomix - any other opinions? | 20:13 |
@sonney2k | blackburn, yes that is why I wanted to have a common base class | 20:13 |
blackburn | sonney2k: that can be bad | 20:14 |
@sonney2k | but it doesn't really work - we use SGObjects as ptrs only | 20:14 |
@sonney2k | so the whole mechanism is different | 20:14 |
blackburn | I'd call it SGReferencedStructure | 20:14 |
@sonney2k | it is an object... | 20:15 |
blackburn | SGReferencedData | 20:15 |
@sonney2k | ok | 20:15 |
@sonney2k | lets use this | 20:15 |
blackburn | if we put an Object word here we would make it confusing | 20:15 |
n4nd0 | I don't see clear what we need here about this | 20:15 |
blackburn | because they would be both Objects | 20:15 |
@sonney2k | n4nd0, a name for a class | 20:15 |
blackburn | both referenced | 20:15 |
blackburn | but one called referenced | 20:15 |
blackburn | and one not | 20:15 |
@sonney2k | the base class of SGVector/Matrix ... | 20:16 |
@sonney2k | that will do refcounting | 20:16 |
blackburn | SGRDAO! | 20:16 |
blackburn | :D | 20:16 |
blackburn | Shogun referenced data access object :D | 20:16 |
@sonney2k | SGReferencedData it is! | 20:16 |
blackburn | I like ref'd data | 20:16 |
blackburn | n4nd0: if you want to do some intrusive penetration | 20:17 |
blackburn | :D | 20:17 |
blackburn | you can separate labels | 20:17 |
blackburn | binary/multiclass | 20:17 |
wiking | sonney2k: have to read the log | 20:18 |
n4nd0 | what about structured labels? | 20:18 |
@sonney2k | n4nd0, but I recall that you didn't finish the benchmark for the covertrees or did you? | 20:19 |
blackburn | hah | 20:19 |
@sonney2k | wiking, go ahead :) | 20:19 |
blackburn | sonney2k: I think we should start with labels | 20:19 |
wiking | blackburn: please don't implement a garbage collector for cpp, there's a good reason why it does not have one | 20:19 |
blackburn | wiking: ?? I don't want to :D | 20:20 |
@sonney2k | fear and loathing on #shogun | 20:21 |
n4nd0 | sonney2k, the next step was to try it out doing the distance computation using lapack | 20:21 |
blackburn | sonney2k: n4nd0: I'll do this benchmark when I will be changing neighbors searching in EDRT | 20:21 |
@sonney2k | blackburn, n4nd0 the 2xy thing? | 20:22 |
wiking | i would go with the KISS story: why we don't do a shared pointer story? | 20:22 |
blackburn | love story | 20:22 |
wiking | of course the problem now would be (as it's implemented in boost) that we would need to redefine all the function arguments | 20:23 |
wiking | but then again if we do the SGReferencedData | 20:23 |
n4nd0 | sonney2k, I think we talked about doing the norm or distance with blas | 20:24 |
wiking | then you would inherit SGMatrix from that? | 20:24 |
@sonney2k | hmhh - the assignment operator= is class specific right? | 20:24 |
wiking | or you would have SGMatrixReferenced? | 20:24 |
n4nd0 | sonney2k, not even doing the 2xy trick | 20:24 |
blackburn | sonney2k: yeah | 20:24 |
@sonney2k | n4nd0, that doesn't work - blas doesn't have a function for that | 20:24 |
@sonney2k | wiking, yes | 20:24 |
@sonney2k | blackburn, ok | 20:25 |
wiking | so we would have SGMatrix and then do the referenced trick with SGMatrixReferenced | 20:25 |
wiking | well in that case that would require as well a whole lot of function arg rewriting in a lot of functions as far as i can see now, or? | 20:25 |
n4nd0 | sonney2k, then it would be with the 2xy trick | 20:25 |
@sonney2k | wiking, no | 20:26 |
gsomix | karlnapf, done | 20:26 |
wiking | sonney2k: how? | 20:27 |
@sonney2k | we do SGRef* and derive SGMatrix from that class | 20:27 |
@sonney2k | done | 20:27 |
wiking | ok i see | 20:27 |
wiking | but still currently the api is like | 20:27 |
wiking | something(SGVector/SGMatrix.... | 20:27 |
wiking | or? | 20:27 |
wiking | or SGMatrix/SGVector something (....) | 20:27 |
@sonney2k | what? | 20:27 |
wiking | a typical function i mean.. in shogun | 20:28 |
wiking | it looks like that, in case of SGMatrix/Vector | 20:28 |
wiking | ok sorry i see what you mean | 20:28 |
@sonney2k | gsomix, why did you remove the hashset example? | 20:29 |
wiking | the only question here is, that now we are doing our own way, but for example in c++11 we already would have std::shared_ptr. so i'm just wondering why we wouldn't just implement shared_ptr in case there's no support for it, i.e. if there's no c++11 support, and use that? | 20:29 |
@sonney2k | gsomix, otherwise the patch looks good to merge from my side | 20:29 |
wiking | i mean essentially we'll do the same thing with SGReferencedData | 20:30 |
gsomix | sonney2k, oh. I will do new CSet and examples for CMap and CSet later. | 20:30 |
wiking | but imho it'd be good if we try to go with some standards too... | 20:30 |
@sonney2k | wiking, it is a very simple mechanism w/o overhead | 20:30 |
@sonney2k | gsomix, ok | 20:30 |
blackburn | wiking: help me to convince sonney2k to use more stl :D | 20:30 |
CIA-113 | shogun: Evgeniy Andreev master * r15cb774 / (4 files in 2 dirs): deleted CSet, added CMap - http://git.io/EMhyAA | 20:31 |
CIA-113 | shogun: Evgeniy Andreev master * r074c5da / (4 files in 3 dirs): CSet<MemoryBlock> to CMap<void*, MemoryBlock> - http://git.io/2QZdMg | 20:31 |
CIA-113 | shogun: Evgeniy Andreev master * r0e70022 / (src/shogun/lib/Map.h src/shogun/lib/memory.cpp): fixes for tracing mallocs - http://git.io/TpoyHw | 20:31 |
CIA-113 | shogun: Soeren Sonnenburg master * rf04183b / (8 files in 4 dirs): | 20:31 |
CIA-113 | shogun: Merge pull request #504 from gsomix/CSet | 20:31 |
CIA-113 | shogun: ?Map for mallocs tracing - http://git.io/Q8hg1w | 20:31 |
blackburn | I admit I do not really like we have to give gsomix tasks like that | 20:31 |
@sonney2k | blackburn, ? | 20:31 |
wiking | sonney2k: yes simple but none-standard. and imho there's a good reason to go with standard solution if one is available | 20:31 |
blackburn | sonney2k: he spent time reimplementing map | 20:31 |
blackburn | and debugging it | 20:31 |
gsomix | oh, politics :) | 20:31 |
blackburn | while it is already available | 20:32 |
wiking | sonney2k: i don't want to say stupid things so i'll check it now, but i think std::shared_ptr (just as in case of boost) is intended to be implemented with template inline functions... and if that's true, i don't see any overhead | 20:33 |
shogun-buildbot | build #859 of libshogun is complete: Failure [failed compile] Build details are at http://www.shogun-toolbox.org/buildbot/builders/libshogun/builds/859 blamelist: gsomix@gmail.com | 20:34 |
gsomix | wut? | 20:35 |
wiking | sonney2k: moreover things like being thread-safe would be solved as well... | 20:36 |
wiking | and if you do thread-safe implementation for SGReferencedData then you are basically at the same state... | 20:37 |
blackburn | wait wait | 20:37 |
blackburn | SGVector is not thread safe?? | 20:37 |
blackburn | hey that sucks | 20:37 |
blackburn | wiking: how does it work with shared ptrs? | 20:38 |
wiking | blackburn: as usual | 20:38 |
blackburn | is it shared_prt<Class>? | 20:38 |
wiking | using some kind of a locking mechanism that is atomic | 20:38 |
wiking | yeah otherwise it's like that | 20:38 |
wiking | you pass around shared_ptr<Class> | 20:38 |
blackburn | wiking: I se | 20:40 |
blackburn | e | 20:40 |
wiking | shared_ptr has been developed as part of boost library for some time now, so it has became quite standard and it has became the part of std in c++11 | 20:40 |
CIA-113 | shogun: Sergey Lisitsyn master * r5238cb0 / src/shogun/features/Labels.cpp : Removed wrong include - http://git.io/hWgiQA | 20:40 |
wiking | i mean thread safeness is required for ref counting, if we use threads | 20:40 |
blackburn | we tend to not use sgvectors in threads | 20:40 |
blackburn | but python can | 20:41 |
blackburn | hmm | 20:41 |
blackburn | oooooor | 20:41 |
blackburn | it can't sorr | 20:41 |
wiking | blackburn: well you were just talking about openmp ;) | 20:41 |
blackburn | wiking: there would not be any sgvectors actually | 20:42 |
wiking | blackburn: not this time :D | 20:42 |
wiking | i mean how can u assure that at a moment there won't be an implementation that doesn't use the same sgvector from different threads... the only thing you can do of course is to explicitly say that SGVector should not be used from threads. | 20:42 |
wiking | but then again this is not another story | 20:43 |
wiking | i was just really talking about reference counting | 20:43 |
blackburn | yes it shouldn't be used from threads | 20:43 |
gsomix | karlnapf, try to trace. | 20:47 |
-!- n4nd0 [~n4nd0@190.Red-2-137-59.dynamicIP.rima-tde.net] has quit [Ping timeout: 276 seconds] | 20:48 | |
gsomix | oh, my android phone said, that it's time to sleep | 20:50 |
gsomix | I'm trying to set the schedule of sleep | 20:50 |
gsomix | hehe | 20:50 |
gsomix | good night guys | 20:51 |
blackburn | HE HE | 20:51 |
-!- n4nd0 [~n4nd0@190.Red-2-137-59.dynamicIP.rima-tde.net] has joined #shogun | 21:00 | |
-!- vikram360 [~vikram360@117.216.144.237] has joined #shogun | 21:00 | |
blackburn | n4nd0: ok if you ready I have a plan | 21:00 |
blackburn | copy labels class | 21:00 |
blackburn | rename it | 21:00 |
blackburn | and make multiclass machines use it ;) | 21:01 |
blackburn | all the other stuff later | 21:01 |
n4nd0 | MulticlassLabels? | 21:01 |
n4nd0 | I mean the name for the new class | 21:01 |
blackburn | yes | 21:02 |
-!- gsomix [~gsomix@178.45.90.39] has quit [Ping timeout: 265 seconds] | 21:03 | |
n4nd0 | what future plans do you have in mind for this class later? | 21:03 |
blackburn | n4nd0: int32_t instead of float64_t here | 21:03 |
blackburn | and some checks | 21:04 |
blackburn | like no negatives | 21:04 |
n4nd0 | no -1 label right? | 21:05 |
blackburn | sure | 21:05 |
@sonney2k | blackburn, wait the multiclass label stuff etc is on pluskids todo list | 21:06 |
@sonney2k | so label though is not | 21:07 |
blackburn | sonney2k: he didn't start yet I think? | 21:07 |
@sonney2k | not so clear how so label should look like though | 21:07 |
@sonney2k | blackburn, but he has a plan | 21:07 |
n4nd0 | I agree, probably it makes more sense that Pluskid does it | 21:07 |
blackburn | sonney2k: how can we solve get_label problem? | 21:07 |
n4nd0 | blackburn, what do you think? | 21:07 |
@sonney2k | and we both thought that so labels are totally separate | 21:07 |
blackburn | n4nd0: agree | 21:08 |
@sonney2k | so it makes sense to develop sth for that | 21:08 |
blackburn | sonney2k: no base? | 21:08 |
@sonney2k | no base (at least for now) | 21:08 |
blackburn | sonney2k: machine?? | 21:08 |
@sonney2k | n4nd0, maybe wiking knows a couple of matching labels | 21:08 |
n4nd0 | so far I do not see what use can we make of a base for so and binary/multiclass labels | 21:09 |
@sonney2k | n4nd0, the only thing we came up with is get_num_labels() | 21:09 |
n4nd0 | sonney2k, I am afraid I don't know what do you mean with matching labels :S | 21:09 |
@sonney2k | n4nd0, examples for SO labels | 21:09 |
n4nd0 | ah all right | 21:10 |
@sonney2k | n4nd0, I for example know a segmentation :) | 21:10 |
n4nd0 | like parse trees | 21:10 |
@sonney2k | yes | 21:10 |
n4nd0 | sequence of integers for HM-SVMs | 21:10 |
wiking | n4nd0: yeah for labels i have something for you and for psi i have a request based on sonney2k implementation on gist | 21:10 |
@sonney2k | for segmentation a single label would be y=[1,2,0,3,5,9] | 21:10 |
@sonney2k | n4nd0, that could be represented as CStringList<int> | 21:10 |
n4nd0 | sonney2k, there is a sequence class in shogund, isn't it? | 21:11 |
@sonney2k | n4nd0, for that you need some functions like to compare label with ground truth etc | 21:11 |
@sonney2k | n4nd0, CStringList :) | 21:11 |
n4nd0 | aha ok | 21:11 |
@sonney2k | like hamming distance etc | 21:11 |
blackburn | sonney2k: we can make labels void* and redefine get/set labels then | 21:11 |
@sonney2k | needed fro slack/ margin rescaling | 21:11 |
n4nd0 | I thought it was something called like sequence | 21:11 |
@sonney2k | blackburn, bah :( | 21:12 |
blackburn | sonney2k: how can we keep machine if labels are different? | 21:12 |
@sonney2k | n4nd0, other examples are trees, graphs, some 2d structures appearing w/ images - but wiking is the expert there | 21:12 |
n4nd0 | sonney2k, yeah | 21:13 |
blackburn | get/set labels should appear in concrete machines like kernel/linear/multiclass | 21:13 |
n4nd0 | I think that bounding boxes may be also labels | 21:13 |
n4nd0 | wiking, is that right? | 21:13 |
blackburn | yes | 21:13 |
wiking | n4nd0: yes | 21:13 |
wiking | but afaik that should be left for the user to implement | 21:14 |
wiking | that's the cleanest | 21:14 |
n4nd0 | sonney2k, however, do we aim at providing a complete set of classes that may be use as labels? | 21:14 |
wiking | the only thing you can do is pre implement some 'standard' ones | 21:14 |
n4nd0 | wiking, exactly, I agree with you | 21:14 |
blackburn | wiking: will you implement sliding window one? | 21:14 |
n4nd0 | for example, the one we need for HM-SVMs | 21:14 |
wiking | blackburn: ? | 21:16 |
n4nd0 | wiking, so, what is the request for psi? | 21:16 |
blackburn | wiking: or how does it work? :D | 21:16 |
blackburn | with bounding box? | 21:16 |
@sonney2k | n4nd0, I think you should start with segmentations for labels | 21:17 |
@sonney2k | that is easiest - you can use CStringList | 21:17 |
blackburn | sonney2k: segmentation of? | 21:17 |
@sonney2k | and you can real world examples. | 21:17 |
@sonney2k | blackburn, anything | 21:18 |
blackburn | sonney2k: anything would be hard to implement ;) | 21:18 |
n4nd0 | sonney2k, hmmm I thought the plan was first to implement the optimization algorithm | 21:18 |
n4nd0 | SO-SVM | 21:18 |
n4nd0 | and later try it out (implement the application-dependent parts) with HM-SVMs | 21:18 |
blackburn | but can't we make it template?? | 21:18 |
n4nd0 | blackburn, what? SO-SVM for example? | 21:19 |
blackburn | n4nd0: labels? | 21:19 |
n4nd0 | blackburn, aham | 21:19 |
n4nd0 | my idea was to have an abstract class there | 21:19 |
n4nd0 | e.g. CStructuredLabel | 21:20 |
n4nd0 | that is the one used from the optimization algorithms | 21:20 |
blackburn | yes exactly | 21:20 |
blackburn | derived from CLabels<Structure>? | 21:20 |
n4nd0 | mm I don't know about that | 21:21 |
blackburn | hmmm | 21:21 |
n4nd0 | are we going to make CLabels with templates? | 21:21 |
blackburn | wiking: can we store pointer to CLabels<?>? | 21:21 |
blackburn | like in java | 21:21 |
blackburn | I guess no.. | 21:21 |
-!- vikram360 [~vikram360@117.216.144.237] has quit [Ping timeout: 255 seconds] | 21:22 | |
CIA-113 | shogun: Chiyuan Zhang master * r876d4b2 / src/shogun/multiclass/ecoc/ECOCRandomSparseEncoder.h : Correct the equations in comment. - http://git.io/Wy6Fdw | 21:22 |
CIA-113 | shogun: Soeren Sonnenburg master * rae429c4 / src/shogun/multiclass/ecoc/ECOCRandomSparseEncoder.h : | 21:22 |
CIA-113 | shogun: Merge pull request #502 from pluskid/ecoc-random-sparse | 21:22 |
CIA-113 | shogun: Correct the equations in comment. - http://git.io/tPESxw | 21:22 |
n4nd0 | blackburn, but what is the problem to make an abstract class and derive the others from it | 21:22 |
blackburn | n4nd0: no general ancestor.. | 21:23 |
n4nd0 | e.g. CStructuredLabel <-- CParseTree | 21:23 |
blackburn | ??? get_labels() | 21:23 |
n4nd0 | but this CStructuredLabel could derive the general ancestor | 21:23 |
n4nd0 | thus all the others | 21:23 |
blackburn | n4nd0: what could it share with ancestor? | 21:24 |
n4nd0 | mmm I don't think I see your point | 21:24 |
@sonney2k | n4nd0, no templates for SO labels at least for now | 21:24 |
n4nd0 | have to go now, dinner time | 21:24 |
blackburn | n4nd0: what returns get_label? | 21:24 |
n4nd0 | be back later | 21:24 |
@sonney2k | I think for segmentation uint16 should be sufficient | 21:25 |
@sonney2k | at least we only ever had a handful of segemnts | 21:25 |
@sonney2k | segments | 21:25 |
blackburn | sonney2k: | 21:25 |
blackburn | how can we | 21:25 |
blackburn | derive anything from clabels | 21:26 |
blackburn | and change return type of get_labels | 21:26 |
blackburn | set_labels, etc? | 21:26 |
@sonney2k | n4nd0, ahh and you will need labels for that | 21:26 |
@sonney2k | blackburn, not possible | 21:26 |
blackburn | sonney2k: so what do you suggest? | 21:26 |
@sonney2k | blackburn, I don't understand | 21:26 |
@sonney2k | what do you mean? | 21:26 |
blackburn | sonney2k: what is hierarchy of labels classes? | 21:26 |
blackburn | do they have common ancestor? | 21:26 |
@sonney2k | no | 21:30 |
@sonney2k | well SGObject | 21:30 |
blackburn | sonney2k: does machine contain no m_labels then? | 21:30 |
@sonney2k | blackburn, true | 21:32 |
blackburn | sonney2k: should be a BInaryMachine then | 21:33 |
blackburn | to group linear machine and kernel machine | 21:33 |
blackburn | sonney2k: is it really working for image segmentation? | 21:39 |
@sonney2k | sry got disconnect | 21:42 |
@sonney2k | what is working? | 21:42 |
@sonney2k | SO? | 21:42 |
blackburn | sonney2k: yes | 21:42 |
@sonney2k | yes sure - there are examples to distinguish e.g. back from foreground | 21:43 |
blackburn | sonney2k: I start to think svm can everythink | 21:43 |
blackburn | g | 21:43 |
blackburn | * | 21:43 |
blackburn | :D | 21:43 |
blackburn | sonney2k: may be even predict traffic jams? :D | 21:44 |
@sonney2k | could do jam / non jam segementations too :) | 21:45 |
@sonney2k | costly maybe | 21:45 |
@sonney2k | think of millions of km of road networks :) | 21:45 |
@sonney2k | or meters ;) | 21:45 |
blackburn | sonney2k: hmm what is length of roads in berlin? | 21:45 |
@sonney2k | don't know | 21:46 |
blackburn | sonney2k: btw why do you use train? | 21:46 |
blackburn | not a car.. | 21:46 |
@sonney2k | maybe 1 million km? | 21:46 |
blackburn | 48/57 pages done :D | 21:47 |
blackburn | some hard shit in the end | 21:47 |
@sonney2k | blackburn, I cannot code and drive | 21:49 |
blackburn | ahh | 21:49 |
@sonney2k | otherwise I would prefer bike | 21:49 |
blackburn | sonney2k: what bike do you have? | 21:50 |
wiking | sonney2k: can i have a question about store_model_features and data_lock story? | 21:50 |
@sonney2k | wiking, ask | 21:50 |
wiking | sonney2k: since neither of it is implemented in multi class machines, except in inn, so we currently crossval won't work on those machines | 21:51 |
@sonney2k | as long as you don't want to convince me that std != evil | 21:51 |
blackburn | sonney2k: it is not | 21:51 |
@sonney2k | wiking, yeah true | 21:51 |
wiking | sonney2k: hahah i have long ago gave up to convince you about that, but i still will tell my opinion ;) | 21:51 |
@sonney2k | wiking, karlnapf introduced these to get crossval to work on kernel machines | 21:52 |
blackburn | anything we do in means of datastructure is a lame std you can't decline it :) | 21:52 |
@sonney2k | wiking, we badly needed those to store feature vectors together with alphas | 21:52 |
@sonney2k | wiking, before that we only ever used indices into training data | 21:52 |
@sonney2k | and kept the whole data set around | 21:52 |
@sonney2k | wiking, you are not alone | 21:53 |
@sonney2k | wiking, maybe it takes another decade before I break in :D | 21:53 |
wiking | sonney2k: yeah and as far as i understood implementing store_model_features should be done on the level of shogun/machine/KernelMulticlassMachine.h | 21:54 |
wiking | no | 21:54 |
wiking | i meant | 21:54 |
wiking | yeah i was right | 21:54 |
wiking | so if i implement store_model_features on that level, then all the multi class kernel machines, i.e. multi class svms would be covered | 21:54 |
@sonney2k | wiking, yes | 21:55 |
wiking | and then we would actually need to implement for MulticlassLibLinear and MulticlassOCAS | 21:56 |
blackburn | what for? | 21:56 |
wiking | since they are inherited from directly multiclassmachine | 21:56 |
wiking | CLinearMulticlassMachine that is... | 21:56 |
blackburn | wiking: why you need to reimplement it there? | 21:57 |
wiking | blackburn: which one do you mean now? :) | 21:57 |
blackburn | wiking: OCAS and LibLinear | 21:57 |
wiking | blackburn: well i'm not sure that we could implement store_model_features on CLinearMulticlassMachine level or MulticlassMachine for that matter.. | 21:58 |
blackburn | why not? | 21:59 |
wiking | blackburn: but if we can of course i'm not against it, i just want to implement either store_model_features or data_lock mechanism for multi class machines since we - and i personally really - in need for xval support | 21:59 |
blackburn | what does it do? :D | 21:59 |
wiking | blackburn: quote from Machine.h for store_model_features: | 22:00 |
wiking | /** Stores feature data of underlying model. | 22:00 |
wiking | * After this method has been called, it is possible to change | 22:00 |
wiking | * the machine's feature data and call apply(), which is then performed | 22:00 |
wiking | * on the training feature data that is part of the machine's model. | 22:00 |
wiking | * | 22:00 |
wiking | * Base method, has to be implemented in order to allow cross-validation | 22:00 |
wiking | * and model selection. | 22:00 |
wiking | for data_lock: | 22:00 |
wiking | ** Locks the machine on given labels and data. After this call, only | 22:00 |
wiking | * train_locked and apply_locked may be called | 22:00 |
wiking | and since neither train_locked nor apply_locked is implemented in any of the multi class machine | 22:00 |
wiking | it thought the easier would be to go with store_model_features implementation | 22:01 |
@sonney2k | wiking, you don't need store model features in linear MC svm | 22:01 |
blackburn | ehm so all you need in linear mc machine | 22:01 |
@sonney2k | because you have w | 22:01 |
@sonney2k | and b | 22:01 |
blackburn | hah | 22:01 |
blackburn | really | 22:01 |
@sonney2k | you only need that for kernel / distance machines | 22:01 |
wiking | sonney2k: ok so in that case it's an empty implementation | 22:02 |
blackburn | yes | 22:02 |
@sonney2k | where you have to keep a copy of the data (data is part of the model) | 22:02 |
wiking | sonney2k: then that is an easy fix :) | 22:02 |
@sonney2k | like in KNN | 22:02 |
@sonney2k | you need to keep all training data | 22:02 |
blackburn | kernelmachine is not working at all | 22:02 |
wiking | sonney2k: ok then i'll do the one for linear MC | 22:02 |
blackburn | so no problem here :D:D: | 22:02 |
wiking | blackburn: ???? | 22:02 |
blackburn | wiking: subset stuff is still unimplemented | 22:02 |
blackburn | no way for xval here | 22:02 |
@sonney2k | blackburn, I thought it is now? | 22:03 |
blackburn | 135 ????????virtual void add_machine_subset(SGVector<index_t> subset) | 22:04 |
blackburn | 136 ????????{ | 22:04 |
blackburn | 137 ????????????SG_NOTIMPLEMENTED; | 22:04 |
blackburn | 138 ????????} | 22:04 |
@sonney2k | blackburn, do you know if it is sufficient to implement the = operator in a base class | 22:04 |
@sonney2k | will it then be called in derived classes? | 22:04 |
wiking | sonney2k: http://pastebin.com/mvDSMgiN | 22:04 |
blackburn | sonney2k: I don't think so.. | 22:04 |
wiking | would u accept? | 22:04 |
wiking | if so i'll commit and send you the pull request | 22:05 |
@sonney2k | wiking, have a look at LinearMachine | 22:06 |
wiking | sonney2k: yeah it's the same there :) | 22:06 |
wiking | ah ok | 22:06 |
@sonney2k | then copy the comment too! | 22:06 |
wiking | i'll copy the doxygen comment | 22:06 |
wiking | heheh i was slower | 22:07 |
wiking | yeah i'm doin git | 22:07 |
blackburn | sonney2k: 12.4 http://www.parashift.com/c++-faq-lite/assignment-operators.html | 22:07 |
blackburn | doin' git | 22:07 |
wiking | ;) | 22:07 |
wiking | done https://github.com/shogun-toolbox/shogun/pull/505 | 22:09 |
CIA-113 | shogun: Viktor Gal master * rd301049 / src/shogun/machine/LinearMulticlassMachine.h : | 22:11 |
CIA-113 | shogun: Add vanilla store_model_features for LinearMulticlassMachine | 22:11 |
CIA-113 | shogun: So one can actually do a cross-validation with multiclass linear | 22:11 |
CIA-113 | shogun: machines - http://git.io/Q2YSIg | 22:11 |
CIA-113 | shogun: Soeren Sonnenburg master * r4f67612 / src/shogun/machine/LinearMulticlassMachine.h : | 22:11 |
CIA-113 | shogun: Merge pull request #505 from vigsterkr/master | 22:11 |
CIA-113 | shogun: Add vanilla store_model_features for LinearMulticlassMachine - http://git.io/d8xqKg | 22:11 |
@sonney2k | blackburn, yay! | 22:12 |
@sonney2k | However if you do not create your own assignment operator, the one that the compiler creates for you will automatically call your base class's assignment operator. | 22:12 |
@sonney2k | blackburn, ^ so it is sufficient | 22:12 |
blackburn | hmm | 22:12 |
blackburn | nice | 22:12 |
@sonney2k | that simplifies SGVector drastically | 22:13 |
@sonney2k | the only thing we need is unref() in destructor | 22:14 |
@sonney2k | all the rest is encapsulated in SGReferencedData | 22:14 |
@sonney2k | hmmhh | 22:18 |
@sonney2k | github down? | 22:18 |
wiking | worksforme | 22:20 |
@sonney2k | hmmhh | 22:20 |
@sonney2k | not here | 22:20 |
@sonney2k | blackburn, btw nice ptr to the faq | 22:21 |
@sonney2k | we have another subtle bug | 22:21 |
@sonney2k | self assignment | 22:21 |
blackburn | yes | 22:21 |
@sonney2k | I am not 100% sure | 22:27 |
@sonney2k | whether | 22:27 |
@sonney2k | if (this == &orig) | 22:27 |
@sonney2k | return *this; | 22:27 |
@sonney2k | is the solution to our potential problem | 22:27 |
@sonney2k | I mean if one has | 22:28 |
@sonney2k | SGVector x; | 22:28 |
@sonney2k | and does x=x; | 22:28 |
@sonney2k | it should be ok | 22:28 |
blackburn | should not it be pointers? | 22:28 |
@sonney2k | no | 22:28 |
wiking | mmm is there a reason why we don't store support vectors at least on the level of MulticlassSVM? | 22:30 |
@sonney2k | wiking, not per default you mean? | 22:30 |
@sonney2k | consider a data set of size 32GB | 22:30 |
@sonney2k | with *lots* of SVs | 22:31 |
wiking | mm | 22:31 |
wiking | true | 22:31 |
@sonney2k | then copying data is EOUTOFMEMORY | 22:31 |
wiking | i'm just thinking about store_model_features | 22:31 |
@sonney2k | dammed github is not working... | 22:31 |
wiking | sonney2k: http://status.github.com/ | 22:32 |
@sonney2k | the website is but not git pull | 22:32 |
wiking | it says all system is operational | 22:32 |
@sonney2k | git push github | 22:32 |
@sonney2k | Connection closed by 207.97.227.239 | 22:32 |
@sonney2k | fatal: The remote end hung up unexpectedly | 22:32 |
CIA-113 | shogun: Soeren Sonnenburg master * r25d336a / (4 files in 2 dirs): | 22:37 |
CIA-113 | shogun: derive SGVector from SGReferencedData to avoid code duplication | 22:37 |
CIA-113 | shogun: - later SGMatrix/SGStringList/SGNDArray/SGSparseMatrix will all use | 22:37 |
CIA-113 | shogun: this - http://git.io/8QQZuQ | 22:37 |
CIA-113 | shogun: Soeren Sonnenburg master * r51c39a6 / src/shogun/lib/SGReferencedData.h : retun *this on self assignment - http://git.io/TUc88g | 22:37 |
-!- n4nd0 [~n4nd0@190.Red-2-137-59.dynamicIP.rima-tde.net] has quit [Quit: Ex-Chat] | 22:37 | |
wiking | sonney2k: any hints for store_model_features for a multi class kernel machine? | 22:43 |
-!- PhilTillet [~philippe@vir78-1-82-232-38-145.fbx.proxad.net] has joined #shogun | 22:54 | |
-!- n4nd0 [~n4nd0@190.Red-2-137-59.dynamicIP.rima-tde.net] has joined #shogun | 23:01 | |
-!- n4nd0 [~n4nd0@190.Red-2-137-59.dynamicIP.rima-tde.net] has quit [Client Quit] | 23:03 | |
CIA-113 | shogun: Heiko Strathmann master * r8830799 / src/shogun/machine/Machine.cpp : added debug messages - http://git.io/laJX5w | 23:06 |
CIA-113 | shogun: Heiko Strathmann master * r52e449e / (3 files in 3 dirs): | 23:06 |
CIA-113 | shogun: Merge pull request #506 from karlnapf/master | 23:06 |
CIA-113 | shogun: fixes a memory error in one example - http://git.io/DRD16g | 23:06 |
CIA-113 | shogun: Heiko Strathmann master * r17d92f5 / src/shogun/evaluation/CrossValidation.cpp : code whitespace - http://git.io/6GxBrw | 23:06 |
CIA-113 | shogun: Heiko Strathmann master * r423cc95 / examples/undocumented/libshogun/base_map_parameters.cpp : fix a memory error - http://git.io/HfU4gg | 23:06 |
wiking | mmm evaluation/CrossValidationSplitting.cpp:13:10: fatal error: 'shogun/lib/Set.h' file not found | 23:09 |
wiking | i guess they just left out when set.h was removed | 23:11 |
wiking | https://github.com/shogun-toolbox/shogun/pull/507 | 23:15 |
wiking | for fixing | 23:15 |
wiking | sonney2k: do you want such an example in lib shogun: evaluation_cross_validation_multiclass.cpp | 23:18 |
wiking | ? | 23:18 |
blackburn | wiking: feel free to add :) | 23:18 |
wiking | ok | 23:18 |
wiking | currently it works with MCLiblinear | 23:18 |
wiking | but i'll valgrind it first | 23:19 |
wiking | heiko please come here! | 23:19 |
wiking | definitely lost: 11,752 bytes in 56 blocks | 23:20 |
wiking | doh | 23:20 |
CIA-113 | shogun: Viktor Gal master * r80b01ce / (2 files): Remove unused shogun/lib/Set.h includes - http://git.io/o7IJZg | 23:20 |
@sonney2k | argh | 23:21 |
@sonney2k | sgvector patch will be massive again | 23:22 |
@sonney2k | err sgmatrix | 23:22 |
shogun-buildbot | build #869 of libshogun is complete: Success [build successful] Build details are at http://www.shogun-toolbox.org/buildbot/builders/libshogun/builds/869 | 23:25 |
wiking | blackburn: here? | 23:52 |
blackburn | yes | 23:52 |
wiking | ok so | 23:52 |
wiking | CLabels* CMulticlassMachine::apply() line 89 | 23:52 |
wiking | that's true far all machines? | 23:53 |
wiking | i.e. that the returned clables is going to be SG_REF-ed | 23:53 |
wiking | ? | 23:53 |
wiking | or at least we can assume this? | 23:53 |
blackburn | wiking: yes makes sense | 23:54 |
wiking | as currently we have a leak | 23:54 |
blackburn | wiking: ref is 0 on new | 23:54 |
blackburn | leak? why? | 23:54 |
wiking | and that's because if u check | 23:54 |
wiking | CrossValidation.cpp:294 | 23:54 |
wiking | and line 296 | 23:54 |
wiking | the returned CLabels* result_labels=m_machine->apply(m_features); | 23:54 |
wiking | will be SG_REF-ed again | 23:54 |
blackburn | oh | 23:55 |
wiking | so when on line 302 | 23:55 |
wiking | we call SG_UNREF | 23:55 |
wiking | that won't delete that | 23:55 |
wiking | so it will leak | 23:55 |
wiking | i'm just asking so that i can remove this extra ref | 23:55 |
wiking | in crossval | 23:55 |
blackburn | wiking: no you can remove it in multiclass | 23:55 |
blackburn | there is no ref in kernelmachine | 23:55 |
blackburn | so it works w/o | 23:55 |
wiking | yeah this is the thing | 23:56 |
wiking | i was just wondering where we should remove the extra ref | 23:56 |
wiking | ok | 23:56 |
wiking | i'll then remove form apply () | 23:56 |
wiking | ok doing a check with valgrind to be sure | 23:58 |
--- Log closed Tue May 08 00:00:37 2012 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!