--- Log opened Mon Jul 10 00:00:49 2017 | ||
sukey1 | [https://github.com/shogun-toolbox/shogun] New commit https://github.com/shogun-toolbox/shogun/commit/943d622bc73c78094e65680cad8bbfcfd4782454 by vigsterkr | 03:55 |
---|---|---|
sukey1 | [https://github.com/shogun-toolbox/shogun] New commit https://github.com/shogun-toolbox/shogun/commit/cc5628d262fb09eac56b6bd8fa5d82df3776886f by vigsterkr | 04:48 |
-!- mikeling [uid89706@gateway/web/irccloud.com/x-jathdrlvlcdzbkyj] has joined #shogun | 06:07 | |
-!- travis-ci [~travis-ci@ec2-54-211-136-94.compute-1.amazonaws.com] has joined #shogun | 06:28 | |
travis-ci | it's Viktor Gal's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/251854970 | 06:28 |
-!- travis-ci [~travis-ci@ec2-54-211-136-94.compute-1.amazonaws.com] has left #shogun [] | 06:28 | |
@wiking | mikeling, here? | 07:07 |
-!- iglesiasg [~iglesiasg@217.119.234.214] has joined #shogun | 07:22 | |
-!- mode/#shogun [+o iglesiasg] by ChanServ | 07:22 | |
mikeling | wiking: ping | 07:36 |
mikeling | hey | 07:36 |
@wiking | ok | 07:37 |
@wiking | so i'm wondering how come the sample_null is giving that weird vector back | 07:38 |
@wiking | mikeling, btw the vector of the same element | 07:38 |
@wiking | is always the same? | 07:38 |
mikeling | yes | 07:38 |
@wiking | meaning the content of it is always the same when you run the unit test? | 07:38 |
mikeling | always | 07:38 |
@wiking | it's always a vector of -0.0188990416936576366 | 07:39 |
@wiking | right? | 07:39 |
mikeling | yes | 07:39 |
@wiking | i guess in the code there a set_global_seed in the unit test? | 07:39 |
mikeling | yes, we have | 07:39 |
mikeling | set_global_seed(12345); | 07:39 |
@wiking | what happens if you change it to set_global_seed(1) | 07:40 |
@wiking | ? | 07:40 |
mikeling | let me have a try | 07:40 |
@wiking | the vector in compute_p_value | 07:40 |
@wiking | is again the same? | 07:40 |
mikeling | ?????????? I don't understand now. | 07:41 |
mikeling | as you said, the result stay the same | 07:42 |
mikeling | still -0.0188990416936576366 after I change the seed to 1 | 07:42 |
mikeling | by set_global_seed(1) | 07:42 |
mikeling | wiking: ^ | 07:42 |
@wiking | oh | 07:45 |
@wiking | that is most weird | 07:45 |
@wiking | so setting the seed does not change anything of that unit test? | 07:45 |
mikeling | wiking: sorry, sorry, just a second | 07:45 |
mikeling | I address the right test | 07:45 |
@wiking | okey | 07:47 |
mikeling | wiking: ok, it changed to 0.260531611740589142 | 07:47 |
@wiking | ok | 07:47 |
@wiking | but again | 07:47 |
@wiking | it's a vector of | 07:47 |
@wiking | 0.260531611740589142 | 07:47 |
@wiking | the elements are the same | 07:47 |
mikeling | yes [0.260531611740589142,0.260531611740589142,0.260531611740589142,0.260531611740589142,0.260531611740589142,0.260531611740589142,0.260531611740589142,0.260531611740589142,0.260531611740589142,0.260531611740589142] | 07:47 |
@wiking | ok | 07:47 |
@wiking | that is strange | 07:48 |
@wiking | i wonder what's happening | 07:52 |
@wiking | in statistical_testing there's literally no prn | 07:52 |
@wiking | *prng call right? | 07:52 |
mikeling | wiking: here is the lldb debug process of mine https://gist.github.com/MikeLing/81d827cdbd811acbec54b0cbbefb6ea5 | 07:53 |
mikeling | I hind some output and some detail function call of compute_p_value | 07:54 |
mikeling | * hide | 07:54 |
@wiking | yeo | 07:54 |
@wiking | CMeanShiftDataGenerator | 07:54 |
@wiking | is using prng i guess | 07:54 |
mikeling | yes, and that's the only place I found related to prng within QuadraticTimeMMD.perform_test_permutation_unbiased_full test | 07:55 |
@wiking | result[i]=CMath::randn_double | 07:55 |
@wiking | that's in | 07:55 |
mikeling | it been changed to m_rng->std_normal_distrib(); | 07:56 |
@wiking | features/streaming/generators/MeanShiftDataGenerator.cpp | 07:56 |
@wiking | yes | 07:56 |
mikeling | in this line of pr https://github.com/shogun-toolbox/shogun/pull/3906/files#diff-0b5192ff8ca1dff8cad9d9d6384da391L69 | 07:57 |
@wiking | yes | 07:57 |
mikeling | mmm, it should be fine. Since the randn_double just return what std_normal_distrib() get https://github.com/shogun-toolbox/shogun/blob/be8e005da18d5bb6f6383013158dd0fc4d5d20ba/src/shogun/mathematics/Math.h#L1127-L1130 | 07:59 |
@wiking | yep | 08:00 |
@wiking | i'm really puzzled | 08:00 |
@wiking | mikeling, okey | 08:12 |
@wiking | can i ask you to debug something | 08:12 |
@wiking | pl | 08:12 |
@wiking | plz | 08:12 |
mikeling | sure | 08:12 |
@wiking | so this is running right the code of CQuadraticTimeMMD | 08:13 |
@wiking | can you do a breakline here | 08:13 |
@wiking | https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/statistical_testing/QuadraticTimeMMD.cpp#L573 | 08:14 |
@wiking | and tell me which of the two methods are being called? | 08:14 |
@wiking | NAM_MMD2_SPECTRUM or NAM_PERMUTATION | 08:14 |
mikeling | NAM_PERMUTATION | 08:15 |
@wiking | ok | 08:15 |
@wiking | just a sec | 08:15 |
mikeling | wiking: defined in here https://github.com/shogun-toolbox/shogun/blob/develop/tests/unit/statistical_testing/QuadraticTimeMMD_unittest.cc#L390 | 08:16 |
mikeling | the NAM_PERMUTATION | 08:16 |
@wiking | ah ok | 08:16 |
@wiking | cool | 08:16 |
@wiking | just a sec | 08:16 |
@wiking | breakline here https://github.com/shogun-toolbox/shogun/blob/feature/random-refactor/src/shogun/statistical_testing/QuadraticTimeMMD.cpp#L364 | 08:17 |
@wiking | and print the content of result.vector | 08:17 |
mikeling | oh, I already do that in the morning, I believe it will be a vector contained same elements also | 08:19 |
mikeling | leet me verify it | 08:19 |
@wiking | ok | 08:20 |
@wiking | mikeling, okey.... so another story | 08:24 |
@wiking | if you put this on break does it call it | 08:24 |
@wiking | https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/statistical_testing/internals/mmd/PermutationMMD.h#L201 | 08:25 |
mikeling | let me see, just a second | 08:25 |
@wiking | k | 08:26 |
mikeling | BTW, the result vector is vector=[-0.00157492,-0.00157492,-0.00157492,-0.00157492,-0.00157492,-0.00157492,-0.00157492,-0.00157492,-0.00157492,-0.00157492] | 08:26 |
@wiking | ok so same elements | 08:27 |
@wiking | ok | 08:27 |
mikeling | yes | 08:27 |
mikeling | wiking: precompute_permutation_inds() of PermutationMMD has been called | 08:28 |
@wiking | k | 08:28 |
@wiking | now my question is | 08:28 |
@wiking | if you step till https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/statistical_testing/internals/mmd/PermutationMMD.h#L203 | 08:28 |
@wiking | can you print m_permuted_inds.vector | 08:29 |
@wiking | ? | 08:29 |
mikeling | sure, a second | 08:30 |
@wiking | then step 2 lines down into till https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/statistical_testing/internals/mmd/PermutationMMD.h#L206 | 08:30 |
@wiking | and print again m_permuted_inds.vector | 08:30 |
mikeling | in the beginning, the m_permuted_inds is vector=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] | 08:34 |
@wiking | ok | 08:34 |
mikeling | and afte cacluated | 08:34 |
mikeling | it's ector=[12,45,25,11,21,49,40,2,36,1,19,42,39,31,6,13,32,29,16,47,5,10,14,3,15,26,22,17,24,20,33,7,37,46,30,48,34,18,41,23,0,43,9,44,8,38,4,27,28,35] | 08:34 |
@wiking | after std::iota | 08:34 |
@wiking | or after permutation? | 08:34 |
mikeling | ok | 08:34 |
@wiking | after iota it should be a that | 08:34 |
@wiking | what you have showed | 08:34 |
mikeling | wiking: after the whole loop https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/statistical_testing/internals/mmd/PermutationMMD.h#L214 | 08:34 |
mikeling | it's [12,45,25,11,21,49,40,2,36,1,19,42,39,31,6,13,32,29,16,47,5,10,14,3,15,26,22,17,24,20,33,7,37,46,30,48,34,18,41,23,0,43,9,44,8,38,4,27,28,35] | 08:35 |
@wiking | what's the value of m_save_inds | 08:35 |
@wiking | ? | 08:35 |
@wiking | and what's the value of m_inverted_permuted_inds | 08:36 |
@wiking | ok can you do one thing | 08:37 |
@wiking | after allocate_permutation_inds(); | 08:37 |
mikeling | sfter iota, it's [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49] | 08:37 |
mikeling | after | 08:37 |
mikeling | after permute it's [12,45,25,11,21,49,40,2,36,1,19,42,39,31,6,13,32,29,16,47,5,10,14,3,15,26,22,17,24,20,33,7,37,46,30,48,34,18,41,23,0,43,9,44,8,38,4,27,28,35] | 08:38 |
@wiking | before the for loop create a local prng: auto prng = std::unique_ptr.... | 08:38 |
@wiking | and pass it to https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/statistical_testing/internals/mmd/PermutationMMD.h#L206 | 08:38 |
@wiking | as a second argument | 08:38 |
@wiking | basically instead of CMath::permute(m_permuted_inds); | 08:38 |
@wiking | do CMath::permute(m_permuted_inds, prng.get()); | 08:38 |
@wiking | because with the fixed seed CMath::permute without passing prng will always do the very same permutation | 08:41 |
@wiking | because inside CMath::permute you always create a new prng | 08:41 |
@wiking | and that prng has always the same seed | 08:41 |
@wiking | if the seed is set globally | 08:41 |
@wiking | and i think here we want something else :) | 08:42 |
@wiking | we want really random stuff | 08:42 |
@wiking | after each call | 08:42 |
@wiking | in this example m_num_null_samples =? | 08:43 |
mikeling | ok, the m_num_null_samples == 10 | 08:44 |
mikeling | I create a prng by auto prng = std::unique_ptr<CRandom>(new CRandom()); | 08:44 |
mikeling | and after CMath::permute(m_permuted_inds, prng.get()); | 08:44 |
@wiking | yes | 08:44 |
mikeling | m_permuted_inds.display_vector() give me | 08:44 |
mikeling | vector=[12,45,25,11,21,49,40,2,36,1,19,42,39,31,6,13,32,29,16,47,5,10,14,3,15,26,22,17,24,20,33,7,37,46,30,48,34,18,41,23,0,43,9,44,8,38,4,27,28,35] | 08:44 |
@wiking | yeah but after each loop | 08:44 |
@wiking | they should be different | 08:45 |
@wiking | right? | 08:45 |
mikeling | mmm, let me see | 08:45 |
@wiking | first one will be the same | 08:45 |
@wiking | that you had previously | 08:45 |
@wiking | when n = 0 | 08:45 |
@wiking | when when n =1 or the rest | 08:46 |
@wiking | m_permuted_inds.display_vector() should give you different results | 08:46 |
mikeling | wiking: it gives me same result for each loop | 08:46 |
@wiking | mmm that should not be the case | 08:47 |
@wiking | if you pass the prng | 08:47 |
@wiking | this should be the case if you dont pass the prng after each loop | 08:47 |
mikeling | like this https://pastebin.mozilla.org/9026742 | 08:47 |
@wiking | ok oh | 08:48 |
@wiking | wrong place | 08:48 |
@wiking | :) | 08:48 |
@wiking | auto prng = std::unique_ptr<CRandom>(new CRandom()); | 08:48 |
@wiking | should be outside of the for loop | 08:48 |
mikeling | oh, sorry | 08:48 |
@wiking | just before https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/statistical_testing/internals/mmd/PermutationMMD.h#L203 | 08:48 |
@wiking | btw i hope you know that in lldb you can print an SGVector content like this | 08:49 |
@wiking | say in case of m_permuted_inds | 08:49 |
@wiking | jsut type: p m_permuted_inds.vector | 08:49 |
@wiking | and it'll print the content of m_permuted_inds | 08:49 |
@wiking | anyhow | 08:49 |
@wiking | once you put the prng outside of the for loop | 08:49 |
@wiking | and you pass that to permute | 08:50 |
@wiking | then each loop you should have a different permutation | 08:50 |
mikeling | wiking: yes, it is | 08:53 |
mikeling | https://pastebin.mozilla.org/9026744 | 08:53 |
@wiking | ok good | 08:54 |
mikeling | each loop will give me different result | 08:54 |
@wiking | now if we go back to that vector | 08:54 |
@wiking | https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/statistical_testing/HypothesisTest.cpp#L79 | 08:54 |
@wiking | that shouldnt be anymore like full of same elements | 08:54 |
@wiking | right? | 08:54 |
@wiking | it should be some random numbers | 08:54 |
mikeling | yes! it's vector=[-0.0188990416936576366,0.289082631468772888,-0.000296307698590680957,0.0906120724976062775,-0.0715163871645927429,-0.0252181515097618103,-0.213874764740467072,0.412667155265808105,0.154181867837905884,-0.204684354364871979] | 08:55 |
@wiking | cool | 08:55 |
mikeling | without same element anymore | 08:55 |
@wiking | perfect | 08:55 |
@wiking | this for sure was a problem | 08:55 |
@wiking | so now what you need to do is the following | 08:56 |
@wiking | it's only CMath::permute that is still using random | 08:56 |
@wiking | in a way right? | 08:56 |
mikeling | yes | 08:57 |
@wiking | ok so now you'll have to check everywhere | 08:57 |
@wiking | in the code | 08:57 |
mikeling | like https://pastebin.mozilla.org/9026745 | 08:57 |
@wiking | where CMath::permute is used | 08:57 |
mikeling | ok | 08:58 |
mikeling | and add a prng to them? | 08:58 |
@wiking | so yeah i mean in case | 08:58 |
@wiking | there's a for loop and not just 1 permutation | 08:58 |
@wiking | then you'll have to do this | 08:58 |
@wiking | but maybe the best is | 08:59 |
@wiking | that you force | 08:59 |
@wiking | CMath::permute(SGVector<T> v, CRandom* rand) | 08:59 |
@wiking | so theres' no part where rand = NULL | 09:00 |
mikeling | ok, I see | 09:00 |
@wiking | and maybe define another function | 09:00 |
@wiking | that is only | 09:00 |
@wiking | CMath::permute(SGVector<T> v) | 09:00 |
@wiking | but yeah | 09:00 |
@wiking | we can leave it as it is now | 09:00 |
@wiking | but you need to go through the code | 09:00 |
@wiking | and see where CMath::permute is being used | 09:00 |
@wiking | and where CMath::permute is called in a loop | 09:01 |
@wiking | then you'll have to do the trick we did this time | 09:01 |
@wiking | note! | 09:01 |
@wiking | when you do this patch | 09:01 |
@wiking | do note amend or squash | 09:01 |
@wiking | put it on to of | 09:01 |
@wiking | 39920817b24cac3fb1c6098b8ce484f3a9d8de7d | 09:01 |
@wiking | ok/ | 09:01 |
@wiking | so i can see separately this part of the code | 09:01 |
mikeling | ok, I will keep that in mind | 09:02 |
mikeling | thank you | 09:02 |
@wiking | cool | 09:02 |
@wiking | i dont know if the unit test now passes or not | 09:02 |
@wiking | but this definitely was a problem | 09:02 |
@wiking | but i would suppose that now after using the same seed | 09:02 |
@wiking | it should actually has the same output | 09:03 |
@wiking | unless of course prng was called before | 09:03 |
@wiking | in some other places :S | 09:03 |
-!- geektoni [~geektoni@93-34-128-38.ip49.fastwebnet.it] has joined #shogun | 09:25 | |
sukey1 | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/3919 opened by geektoni | 09:47 |
sukey1 | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/3919 synchronized by geektoni | 10:00 |
@wiking | gsocers is it an odd or even week/ | 10:47 |
@wiking | ? | 10:47 |
@wiking | i think an even :D | 10:47 |
@wiking | so prepare the blog posts plz ^ geektoni micmn mikeling | 10:48 |
@wiking | this was just a gentle reminder :P | 10:48 |
@wiking | lisitsyn, btw i know it sounds at first a bit stupid but i'm wondering whether in case of the pip thingy (and as well conda) we shouldn't just fuzzball 1 .so | 10:53 |
@wiking | meaning that we would take libshogun.a and put that into swig .so | 10:53 |
@wiking | basically this is what tf does | 10:54 |
@wiking | as i believe we have this layer of separation of libshogun.so and swig interfaces | 10:56 |
@wiking | because we wanna actually be able to ship in one ssytem | 10:56 |
@wiking | multiple interfaces | 10:56 |
@wiking | but honestly | 10:56 |
@wiking | i think the general user would like to use either R or python or whatever interface | 10:57 |
@wiking | and have it as one | 10:57 |
@wiking | without the hassle of having libshogun.so around | 10:57 |
-!- HeikoS [~heiko@host-92-0-169-11.as43234.net] has joined #shogun | 11:03 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 11:03 | |
lisitsyn | wiking: .a into interface .so? | 11:04 |
@wiking | yes | 11:04 |
lisitsyn | I agree | 11:04 |
lisitsyn | even if user wants multiple interfaces | 11:05 |
lisitsyn | wiking: it also reduces the need to provide DYLD_LIBRARY_PATH | 11:05 |
@wiking | hehehe indeed :) | 11:05 |
@wiking | o fcourse one can lament | 11:06 |
@wiking | about the story of why one uses shared libs | 11:06 |
@wiking | and memory | 11:06 |
@wiking | and lalalla | 11:06 |
@wiking | but in the BULLSHIT age of docker | 11:06 |
lisitsyn | shared libs were useful when we had 1mb | 11:06 |
@wiking | NOBODY cares anymore of shared libraries and that stuff | 11:06 |
@wiking | man this | 11:06 |
@wiking | this | 11:06 |
@wiking | http://money.cnn.com/2017/07/07/technology/google-dandelion/index.html | 11:06 |
@wiking | THIS IS THE FUCKING BULLSHIT | 11:06 |
@wiking | this technology is 40 years old at least | 11:07 |
@wiking | like AC | 11:07 |
@wiking | i have the very same system installed in serbia (NOTE SERBIA) | 11:07 |
@wiking | for 4k EUR | 11:07 |
@wiking | in my house | 11:07 |
@wiking | when things are going out of hands.... | 11:08 |
@wiking | anyhow yeah | 11:08 |
@wiking | maybe we should just forget the story | 11:08 |
lisitsyn | hah | 11:08 |
@wiking | and interface libs | 11:08 |
@wiking | are actually the whole thing in one | 11:08 |
lisitsyn | wiking: there is an idea from some system | 11:09 |
lisitsyn | let me lookup | 11:09 |
@wiking | anyhow the official packages | 11:09 |
@wiking | if we would ever have one | 11:09 |
@wiking | like R or pypi | 11:09 |
@wiking | etc | 11:09 |
@wiking | they would anyways would need to ship something like that | 11:10 |
@wiking | if they are precompiled | 11:10 |
lisitsyn | http://nixos.org | 11:13 |
lisitsyn | wiking: huh found | 11:13 |
@wiking | packaging? | 11:13 |
@wiking | i think i saw this one | 11:13 |
lisitsyn | wiking: so there is a graph | 11:14 |
lisitsyn | of A -> B and so on | 11:14 |
lisitsyn | but no versions | 11:14 |
lisitsyn | so you fix the versions and try to test the whole | 11:14 |
lisitsyn | and then deploy this fixed thing | 11:14 |
lisitsyn | this reminds me that there are alternatives to using dynamic libs all around | 11:15 |
lisitsyn | :) | 11:15 |
@wiking | :) | 11:15 |
lisitsyn | wiking: we link everything static way here at my job | 11:16 |
lisitsyn | this makes you independent of system you're running at | 11:16 |
@wiking | \o/ | 11:16 |
lisitsyn | it is just x86_64 for you | 11:16 |
@wiking | yeah i mean | 11:19 |
@wiking | when you told me | 11:19 |
@wiking | that you static ompile your code | 11:19 |
@wiking | into the interpreter | 11:19 |
@wiking | taht's some heavy weight shit :D | 11:19 |
@wiking | ./bazdmeg | 11:20 |
@wiking | and everything is running | 11:20 |
@wiking | :D | 11:20 |
@wiking | ./shogun | 11:20 |
@wiking | :DDDDDDDDDDDDd | 11:20 |
@wiking | which is a python interpreter | 11:20 |
@wiking | and all that in one | 11:20 |
@wiking | HeikoS, what do you think & | 11:21 |
@wiking | ^ | 11:21 |
@wiking | shall we just ship a whole python interpreter with shogun | 11:21 |
@HeikoS | wiking: think about? | 11:21 |
@wiking | and then everybody is happy? :D | 11:21 |
@HeikoS | wiking: Lol | 11:21 |
@HeikoS | what? | 11:21 |
@HeikoS | like the guys from graphlab? | 11:21 |
@wiking | well just thinkering | 11:21 |
@wiking | yeah | 11:22 |
@wiking | those people | 11:22 |
@wiking | the Tika | 11:22 |
@wiking | tuka | 11:22 |
@wiking | puri | 11:22 |
@wiking | what was their last name before apple bought them? | 11:22 |
@wiking | turi! | 11:22 |
@HeikoS | I dont know | 11:22 |
@HeikoS | whatever | 11:22 |
@wiking | man that was even better | 11:22 |
@wiking | c++ compiler with the whole code | 11:22 |
@wiking | \o/ | 11:22 |
@HeikoS | but is there a specific reason why we want to join this shit-wave? | 11:22 |
@wiking | HeikoS, anyhow rather about this | 11:22 |
@HeikoS | if we integrate with conda, that is kind of that no? | 11:23 |
@wiking | [16:51] <wiking> lisitsyn, btw i know it sounds at first a bit stupid but i'm wondering whether in case of the pip thingy (and as well conda) we shouldn't just fuzzball 1 .so | 11:23 |
@wiking | [16:51] <wiking> meaning that we would take libshogun.a and put that into swig .so | 11:23 |
@wiking | [16:51] <wiking> basically this is what tf does | 11:23 |
@wiking | mmm Dougal does it a bit differently | 11:23 |
@wiking | and he still uses the 2 layer thing | 11:23 |
@wiking | meaning core libshogun.so and shogun.so interface lib | 11:23 |
@wiking | but i'm saying that i dont see really nowadays a point | 11:23 |
@wiking | into this nice engineering | 11:23 |
@wiking | because NOBODY cares anymore about c++ api | 11:24 |
@wiking | and shared libraries | 11:24 |
@wiking | they just wanna have a module that they could | 11:24 |
@wiking | conda install | 11:24 |
@wiking | pip install | 11:24 |
@wiking | R install | 11:24 |
@wiking | whetever install | 11:24 |
@wiking | and that magically works | 11:24 |
@wiking | which is OF COURSE | 11:24 |
@wiking | normal | 11:24 |
@HeikoS | mmmh | 11:24 |
@wiking | i mean check out TF | 11:24 |
@HeikoS | and if you want to use shogun with your existing python installation? | 11:24 |
@wiking | they dont fucking ship c++ lib anywhere | 11:24 |
@HeikoS | all these libs that are so easy to install | 11:25 |
@HeikoS | they always create such a mess downstream in your workflow | 11:25 |
@wiking | nono forget the ship with an interpreter | 11:25 |
@wiking | that was rather a joke | 11:25 |
@wiking | i'm saying that maybe we should start shipping 1 shared lib | 11:25 |
@wiking | per interface | 11:25 |
@HeikoS | ah | 11:25 |
@HeikoS | rather than c++ lib and then python lib | 11:25 |
@wiking | yes | 11:25 |
@HeikoS | got it | 11:25 |
@wiking | we would just fuzzball everything | 11:26 |
@wiking | into one .so | 11:26 |
@wiking | and that's like python's shogun.so | 11:26 |
@wiking | then R's shogun.so | 11:26 |
@wiking | etc etc etc | 11:26 |
@HeikoS | that would make running things a bit easier | 11:26 |
@wiking | no separate libshogun.so | 11:26 |
@wiking | that you need to LD_LIBRARY PATh | 11:26 |
@HeikoS | no more ld path setting and so | 11:26 |
@wiking | etc etc etc | 11:26 |
@wiking | yeye | 11:26 |
@HeikoS | but there would still be the stnadalone libshogun.so | 11:26 |
@wiking | it's just one fuckign switch :) | 11:26 |
@wiking | well you could have one | 11:26 |
@HeikoS | but it just a separate thing from the python one | 11:26 |
@wiking | but your python .so wouldn't use it | 11:27 |
@wiking | your c++ code could of course use it | 11:27 |
@wiking | i mean in the case | 11:27 |
@wiking | when you wanted to have on one system | 11:27 |
@HeikoS | this also makes packaging a bit easier I guess | 11:27 |
@wiking | R python ruby and jvm | 11:27 |
@HeikoS | eg for .deb | 11:27 |
@wiking | and all those interfaces | 11:27 |
@HeikoS | noi more depoendencies | 11:27 |
@wiking | mmm | 11:27 |
@wiking | on deb it's tricky | 11:27 |
@wiking | :D | 11:27 |
@wiking | but yeah | 11:27 |
@wiking | lets rather concetrate | 11:27 |
@wiking | on language packages | 11:28 |
@HeikoS | yeah | 11:28 |
@HeikoS | agreed on that | 11:28 |
@wiking | like gem, maven, pypi, R | 11:28 |
@wiking | etc | 11:28 |
@HeikoS | we need more coverage for the languages | 11:28 |
@wiking | so those things would anyways need a libshogun.so | 11:28 |
@wiking | shipped somehow | 11:28 |
@HeikoS | and ease of install | 11:28 |
@wiking | because you cannot assume | 11:28 |
@wiking | that they'll have it installed it somewhow | 11:28 |
@wiking | so either you put a separate libshogun.so in there | 11:28 |
@wiking | next to the language's swig interface so | 11:28 |
@wiking | or just fuck it | 11:29 |
@wiking | and put everything into one | 11:29 |
@wiking | :) | 11:29 |
lisitsyn | again, I think it is a good idea | 11:29 |
@wiking | see tensorflow | 11:29 |
@wiking | they do this | 11:29 |
lisitsyn | we just change our targets a bit | 11:29 |
lisitsyn | the worst thing that happens in the case | 11:29 |
@wiking | pypi package of tensorflow | 11:29 |
lisitsyn | is bloat of size | 11:29 |
@wiking | ships one fuzzball of .so | 11:29 |
lisitsyn | who cares | 11:29 |
@wiking | that is the python interface including the c++ code | 11:29 |
@wiking | *shared lib of tf | 11:29 |
@wiking | and that's all | 11:30 |
@wiking | on our end | 11:30 |
@wiking | this is not such a horror job | 11:30 |
@wiking | as we just switch the linking | 11:30 |
lisitsyn | no it is just changing the linking | 11:30 |
@wiking | of the swig interface | 11:30 |
@HeikoS | DO IT | 11:30 |
@wiking | with shogun | 11:30 |
@HeikoS | DO IT | 11:30 |
@HeikoS | DO IT | 11:30 |
lisitsyn | hh | 11:30 |
@wiking | :) | 11:30 |
@HeikoS | :D | 11:30 |
@wiking | muezli | 11:31 |
@HeikoS | mikeling: I havent got the global function calls working yet, but it is close. Maybe later today | 11:31 |
@wiking | that's all | 11:31 |
@HeikoS | hey btw | 11:31 |
@HeikoS | wiking, lisitsyn shall we release BSD soon? | 11:31 |
@HeikoS | lisitsyn: you have some header magic? | 11:31 |
@wiking | HeikoS, feature/eigen-lapack | 11:31 |
lisitsyn | HeikoS: I am thinking of way to clean up licences | 11:31 |
@HeikoS | remove all gpl headers | 11:31 |
@wiking | HeikoS, if you use linux that should work already.... | 11:31 |
@HeikoS | put BSD :D | 11:31 |
lisitsyn | I mean yes it is easy to get list of authors | 11:31 |
lisitsyn | but some things would be strange | 11:31 |
@HeikoS | wiking: ah cool | 11:31 |
@HeikoS | wiking: will check it out | 11:32 |
lisitsyn | there are some glitches | 11:32 |
@wiking | HeikoS, problem is that there seems to be a bug with cmake's Lapack detector | 11:32 |
@wiking | HeikoS, so i could make it detect (even with -DBVA_VENDOR=Intel) | 11:32 |
@wiking | conda's mkl | 11:32 |
@wiking | conda's openblas works... | 11:32 |
lisitsyn | HeikoS: we have things like local email (master@mymachine) and stuff like that | 11:32 |
@HeikoS | wiking: ah that is good, ok anything I can push dougal to help with? | 11:32 |
@wiking | HeikoS, anyhow you can make eigne to use your lapakc backend | 11:32 |
@HeikoS | lisitsyn: email not needed | 11:33 |
@wiking | HeikoS, we need some windows help | 11:33 |
@HeikoS | lisitsyn: just names | 11:33 |
lisitsyn | HeikoS: same thing with names | 11:33 |
@wiking | HeikoS, as there's a linking problem | 11:33 |
@wiking | and i dont get what the fuck | 11:33 |
lisitsyn | HeikoS: so I will come up with some cleaning | 11:33 |
@HeikoS | wiking: dougal doesnt have a windows machine ... | 11:33 |
@wiking | yeah | 11:33 |
@wiking | i know | 11:33 |
@wiking | but he did everything :)) | 11:33 |
@HeikoS | lisitsyn: doesnt have t obe perfect | 11:33 |
@wiking | so it's cool | 11:33 |
@HeikoS | just kill all those headers | 11:33 |
@HeikoS | wiking: great | 11:33 |
@HeikoS | should announce that and acknowledge him once it is working | 11:34 |
@wiking | yes | 11:34 |
@wiking | news :) | 11:34 |
@wiking | man we didn't udpate news for ages | 11:34 |
@wiking | :DDDD | 11:34 |
@wiking | neither did our nice students | 11:34 |
@wiking | :P | 11:34 |
@HeikoS | wiking: yeah always good to do that straight away | 11:34 |
@wiking | yep | 11:34 |
@wiking | my fault | 11:34 |
lisitsyn | wiking: FAKE_NEWS | 11:34 |
@wiking | should have been warning people | 11:34 |
@HeikoS | push the guys :) | 11:34 |
@wiking | lisitsyn, FAAAAAAAAAAAAAAAAAAAAAKE | 11:34 |
@HeikoS | wiking: so the bsd files | 11:34 |
@HeikoS | they are all in this new folder now | 11:35 |
@wiking | you mean gpl | 11:35 |
@HeikoS | shall I move that in a separate repo? | 11:35 |
@HeikoS | yeah | 11:35 |
@wiking | mmm ah yeah | 11:35 |
@wiking | unfortunately we'll hav eto do that | 11:35 |
@wiking | to comply with gpl | 11:35 |
@HeikoS | sure | 11:35 |
@HeikoS | how to reference? | 11:35 |
@HeikoS | cmake git clones it? | 11:35 |
@wiking | submodule is fine | 11:35 |
@wiking | afaik | 11:35 |
lisitsyn | oh no submodules again | 11:35 |
@HeikoS | ah no | 11:35 |
@HeikoS | no submodule | 11:35 |
@wiking | lisitsyn, we have to | 11:35 |
lisitsyn | sheeat | 11:35 |
@wiking | or i mean | 11:35 |
@HeikoS | can't we just give a path? | 11:35 |
@wiking | we can just not do anything | 11:35 |
@wiking | :DDDDDDDDDDDD | 11:36 |
@wiking | and fuck gpl | 11:36 |
@wiking | :P | 11:36 |
lisitsyn | submodule is better than path for sure | 11:36 |
@wiking | but man i mean | 11:36 |
lisitsyn | what do you mean | 11:36 |
@HeikoS | but then we need to constantly update that thing | 11:36 |
@wiking | we already have like n+1 request | 11:36 |
@wiking | why MKL is not working | 11:36 |
@wiking | on debian packages | 11:36 |
@wiking | ... | 11:36 |
@wiking | (svmlight) | 11:36 |
@wiking | HeikoS, yeah like with data | 11:36 |
@wiking | i mean with cmake | 11:36 |
@HeikoS | wiking, lisitsyn ok then I will submodule it | 11:36 |
lisitsyn | but we stop developing gpl right? | 11:36 |
@wiking | you'd have to do the same | 11:36 |
@HeikoS | lisitsyn: no | 11:36 |
lisitsyn | I mean we don't update it anyway | 11:36 |
lisitsyn | I am not fancy of adding more gpl deps | 11:37 |
lisitsyn | are you? | 11:37 |
@HeikoS | lisitsyn: no | 11:37 |
@HeikoS | but still maintain | 11:37 |
lisitsyn | yes maintain is like one commit per year anyway | 11:37 |
@HeikoS | sure | 11:37 |
@wiking | :> | 11:37 |
@HeikoS | so then | 11:37 |
@HeikoS | submodule the gpl folder and that's it right? | 11:37 |
@wiking | yeah that should do it | 11:37 |
@wiking | and since we are lazy fucks | 11:38 |
@wiking | we'll never update it | 11:38 |
@wiking | :D | 11:38 |
@HeikoS | haha | 11:38 |
@wiking | HeikoS, and what by default bsd build? | 11:38 |
lisitsyn | yeah that's what I mean | 11:38 |
lisitsyn | hah | 11:38 |
@wiking | HeikoS, btw what happened with unit tests? D: | 11:38 |
@wiking | HeikoS, you'd move those as well :D | 11:38 |
@HeikoS | wiking: no why? | 11:38 |
@wiking | or fuck that shit | 11:38 |
@wiking | ? | 11:38 |
lisitsyn | why? | 11:38 |
@HeikoS | guarded (.) | 11:38 |
lisitsyn | tests are not gpl | 11:38 |
@wiking | :) | 11:38 |
@HeikoS | 8-) | 11:38 |
lisitsyn | :P | 11:38 |
@wiking | ok i mean i dont wanna go all lawyer here | 11:38 |
@wiking | so yeah let's assume that it's fine | 11:39 |
@wiking | :) | 11:39 |
lisitsyn | I think it is fine | 11:39 |
lisitsyn | oh that license is soooo | 11:39 |
@HeikoS | they contain includes of non-existing files that are never given to the compiler | 11:39 |
@wiking | i mean i dont know | 11:39 |
@wiking | its just i guess | 11:39 |
@HeikoS | GPL doesnt pass that barrier | 11:39 |
@wiking | it's border line | 11:39 |
lisitsyn | I don't believe GPL can touch this | 11:39 |
@wiking | but who knows :) | 11:39 |
@HeikoS | mc hammer agrees | 11:39 |
lisitsyn | yes | 11:39 |
@wiking | k | 11:39 |
@HeikoS | good | 11:40 |
lisitsyn | mcmc hammer! | 11:40 |
@HeikoS | lisitsyn: man | 11:40 |
@HeikoS | I wanted to call my algorithm like that | 11:40 |
lisitsyn | good name | 11:40 |
@HeikoS | but then I found out some physics guys had that already | 11:40 |
lisitsyn | haha yes | 11:40 |
@HeikoS | but my repo is still called like that :D | 11:40 |
@HeikoS | ok then | 11:41 |
@HeikoS | Ill cycle to work now | 11:41 |
lisitsyn | HeikoS: I explained the concept of 'test' set with turning on that song | 11:41 |
@HeikoS | talk later | 11:41 |
lisitsyn | :D | 11:41 |
@HeikoS | :D | 11:41 |
lisitsyn | HeikoS: that's the only sunny day in moscow today so the same for me | 11:42 |
lisitsyn | going to take some bike | 11:42 |
lisitsyn | :P | 11:42 |
-!- travis-ci [~travis-ci@ec2-54-81-148-90.compute-1.amazonaws.com] has joined #shogun | 11:44 | |
travis-ci | it's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/251772035 | 11:44 |
-!- travis-ci [~travis-ci@ec2-54-81-148-90.compute-1.amazonaws.com] has left #shogun [] | 11:44 | |
@wiking | lisitsyn, :DDDDDDDDDDDDDDDDDDDDDDd | 11:45 |
@wiking | lisitsyn, only sunny day :D | 11:45 |
lisitsyn | wiking: it seems the US is testing climatic sanctions because we have no summer this time | 11:47 |
@wiking | :)))) | 11:47 |
-!- HeikoS [~heiko@host-92-0-169-11.as43234.net] has quit [Quit: Leaving.] | 11:53 | |
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has joined #shogun | 12:54 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 12:54 | |
sukey1 | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/3920 opened by micmn | 13:21 |
@wiking | micmn, how do u control the num of threads? | 13:32 |
micmn | it's just linalg | 13:35 |
micmn | wiking: ^ | 13:35 |
@wiking | micmn, -> eigen decides? | 13:37 |
micmn | yep, standard matrix product | 13:37 |
@wiking | k | 13:37 |
@wiking | and i guess u have 4 vcores | 13:37 |
@wiking | that's why 4 threadss? | 13:37 |
micmn | yes | 13:37 |
@wiking | cool | 13:41 |
@wiking | the power of immutable structures :D | 13:41 |
@wiking | now it's just time to get unlimited ram | 13:42 |
@wiking | \o | 13:42 |
micmn | XD | 13:44 |
@wiking | ok so | 13:51 |
@wiking | here | 13:51 |
@wiking | HERE IS THE PURE GENIUS OF THE INTERNETZ | 13:51 |
lisitsyn | oh | 13:51 |
lisitsyn | :D | 13:51 |
@wiking | there's just really nothing after this horizon | 13:51 |
@wiking | lisitsyn, https://eros.vision/ | 13:51 |
@wiking | :DDDDDDDDDDDDDDDDDDDDDDDDDD | 13:51 |
@wiking | i mean man | 13:51 |
@wiking | GENIOOOOOOOOOOOUUUUUUUUUUUUS! :) | 13:52 |
lisitsyn | hahah | 13:52 |
@wiking | i mean fuck all the things | 13:52 |
@wiking | ICO for biatch | 13:52 |
@wiking | :D | 13:52 |
@wiking | and THEY RAISED ALREADY 100k | 13:52 |
lisitsyn | haha | 13:53 |
@wiking | mmm no | 13:53 |
@wiking | 180k | 13:53 |
@wiking | LOL | 13:53 |
@wiking | i mean can you believe this | 13:53 |
@wiking | this shows the infinite craziness of the internetz | 13:54 |
@wiking | :D | 13:54 |
@iglesiasg | Hola! | 13:54 |
@iglesiasg | HeikoS: checking the gpl stuff: https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/kernel/string/DistantSegmentsKernel.cpp#L8 | 13:54 |
@wiking | iglesiasg, ^ | 13:54 |
@iglesiasg | wiking: about eros? | 13:55 |
@wiking | yes | 13:55 |
@iglesiasg | yeah, I just opened the website | 13:55 |
@iglesiasg | still not fired fiuuu | 13:55 |
@iglesiasg | xD | 13:55 |
@wiking | :D | 13:55 |
@HeikoS | iglesiasg: thanks | 13:55 |
@HeikoS | iglesiasg: well spotted :) | 13:56 |
@wiking | lisitsyn, best is | 13:56 |
@wiking | lisitsyn, 2% revenue sharing | 13:56 |
@wiking | :DDDDDDDD | 13:56 |
@wiking | i mean essentialy if you invest | 13:56 |
@wiking | you are a virtual pimp | 13:56 |
@iglesiasg | HeikoS: there are a few more I think, let me dig into it | 13:57 |
@iglesiasg | lisitsyn: can tapkee_shogun be updated to bsd? https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/lib/tapkee/tapkee_shogun.hpp#L3 | 14:00 |
lisitsyn | iglesiasg: for sure | 14:00 |
@iglesiasg | great | 14:00 |
@wiking | https://i.ytimg.com/vi/xLw5xDq4YfM/hqdefault.jpg | 14:02 |
sukey1 | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/3921 opened by iglesias | 14:09 |
sukey1 | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/3921 | 14:09 |
@wiking | micmn, C.o.V.E.R.I.D.G.E :) | 14:12 |
@iglesiasg | HeikoS: brent slipped through too I think: https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/lib/external/brent.h | 14:16 |
micmn | wiking: eh? :p | 14:21 |
@wiking | micmn, nw... added the comment to the thing | 14:22 |
@wiking | pr | 14:22 |
@wiking | need some ++ on the codecov with some unit testz | 14:22 |
@wiking | otherwise i'll send this cat your house https://i.ytimg.com/vi/xLw5xDq4YfM/hqdefault.jpg | 14:22 |
micmn | ok sure xD | 14:23 |
@wiking | thnx | 14:23 |
-!- yamz [~myamada@2620:13:0:10:bdae:b37e:9286:1eb6] has quit [Read error: Connection reset by peer] | 14:24 | |
-!- yammer [~myamada@64.7.137.182] has joined #shogun | 14:24 | |
-!- yammer [~myamada@64.7.137.182] has quit [Read error: Connection reset by peer] | 14:27 | |
-!- yammer [~myamada@2620:13:0:10:ad90:f873:79fb:1bee] has joined #shogun | 14:27 | |
-!- geektoni [~geektoni@93-34-128-38.ip49.fastwebnet.it] has quit [Ping timeout: 260 seconds] | 14:30 | |
-!- yammerz [~myamada@64.7.137.182] has joined #shogun | 14:31 | |
-!- yammer [~myamada@2620:13:0:10:ad90:f873:79fb:1bee] has quit [Read error: Connection reset by peer] | 14:32 | |
-!- geektoni [~geektoni@93-34-128-38.ip49.fastwebnet.it] has joined #shogun | 14:32 | |
Trixis | just to check, if i need a custom kernel and im using java to interface with shogun, the only way to do it as of now is to compute the inner products in a separate function, and then set the kernel matrix in CustomKernel, right? | 14:45 |
@wiking | Trixis, how's your fight? | 14:45 |
@wiking | ok sooooo | 14:45 |
@wiking | if you use java | 14:45 |
@wiking | you actually would love to have this | 14:45 |
@wiking | Trixis, https://github.com/shogun-toolbox/shogun/issues/3892 | 14:46 |
@wiking | this is possible | 14:46 |
@wiking | and with python it work | 14:46 |
@wiking | s | 14:46 |
@wiking | and it is possible with swig | 14:47 |
@wiking | it needs some patches around the swig code though | 14:47 |
Trixis | wiking: otherwise, my fight is going pretty well so far, got the code that computes my features to interact with shogun properly | 14:47 |
Trixis | wiking: i see | 14:47 |
@wiking | but it is definitely something that should be possible | 14:47 |
@wiking | once that'd be fixed | 14:47 |
@wiking | you could derive a class from DirectorKernel | 14:47 |
@wiking | in java | 14:47 |
@wiking | and basically that'd act like any other kernel in shogun | 14:48 |
@wiking | that's actually a great feature of swig | 14:48 |
@wiking | unfortunately does not work yet with java :( | 14:48 |
@wiking | i mean in shogun | 14:48 |
@wiking | in general you can read about it on swig's website | 14:49 |
@wiking | Trixis, but yeah | 14:49 |
@wiking | otherwise until the magic thing happens | 14:49 |
@wiking | you have no better choice atm | 14:49 |
@iglesiasg | the LogPlusOne preprocessor is pretty great | 14:49 |
@wiking | iglesiasg, KILL IT WITH FIRE | 14:50 |
@wiking | or reimplement it | 14:50 |
@wiking | :) | 14:50 |
@wiking | you know you dictate to sergey what the thing should look like | 14:51 |
@iglesiasg | wiking: I think we can drop this, right? | 14:51 |
@wiking | sergey pretends he never saw the code :) | 14:51 |
@wiking | and implements it | 14:51 |
@wiking | done | 14:51 |
@wiking | :) | 14:51 |
@wiking | honestly | 14:52 |
@wiking | this thing about gpl | 14:52 |
@wiking | and being scared of | 14:52 |
@wiking | is a bunch of lala land | 14:52 |
@wiking | but yeah | 14:52 |
@wiking | KILL IIIIIIIIIIIIIIIIIIIT WITH FIRE! | 14:52 |
@wiking | look at linux kernel | 14:52 |
@iglesiasg | mmm I suppose it might have some use in streaming features | 14:52 |
@wiking | it's gpl :) | 14:52 |
Trixis | wiking: kk, sounds good. Guess ill just wrap all kernels with a java interface, lol. | 14:52 |
@iglesiasg | but it is a dense preprocessor so I am not sure it can be use in that case | 14:52 |
@wiking | Trixis, :) | 14:54 |
Trixis | at this stage, i just need it to work. This is science after all, software engineering can come later. | 14:56 |
@wiking | hehehe | 14:56 |
@wiking | what is your use case? | 14:56 |
@wiking | nuclear reactor stabilizer? | 14:56 |
Trixis | wiking: haha, no. Computational biology, compound property prediction | 14:57 |
@wiking | \o/ | 14:57 |
@wiking | awesome | 14:57 |
@wiking | dont forget we have a doi | 14:57 |
@wiking | ;) | 14:57 |
Trixis | wiking: ofc, if i get something publishable out of this i sure will cite you | 14:58 |
@wiking | :) | 14:58 |
@wiking | lisitsyn, this is just for u "Get 10x Speedup in Tensorflow Multi-Task Learning using Python Multiprocessing | 15:06 |
lisitsyn | wiking: LOL | 15:06 |
@wiking | man | 15:06 |
@wiking | the amoount of spam generated on internet | 15:06 |
@wiking | is truly amazing | 15:07 |
Trixis | the init method in CombinedKernel simply calls init, i.e. compute of each of the subkernels, right? | 15:07 |
@wiking | you mean init(lhs, rhs)? | 15:08 |
Trixis | yeah | 15:08 |
@wiking | yeah should do that afaik | 15:08 |
@wiking | http://shogun.ml/api/latest/CombinedKernel_8cpp_source.html | 15:09 |
@wiking | but yeah | 15:09 |
@wiking | init weights the subkernels | 15:09 |
@wiking | and init's the kernel normalizers | 15:10 |
@iglesiasg | if anybody can shed some light into how set_preprocessed works I am happy to hear :) | 15:14 |
@wiking | que? | 15:14 |
@wiking | it's magico | 15:14 |
@wiking | dont ask questions that cannot be answered | 15:14 |
@iglesiasg | examples/undocumented/python/serialization_complex_example.py | 15:14 |
@wiking | :D | 15:14 |
@iglesiasg | hahaha | 15:14 |
@iglesiasg | feats.add_preprocessor(NormOne()) | 15:14 |
@iglesiasg | feats.add_preprocessor(LogPlusOne()) | 15:14 |
@iglesiasg | feats.set_preprocessed(1) | 15:14 |
@iglesiasg | no idea what that is doing | 15:15 |
@iglesiasg | if it is saying something like only apply the preprocessor in 1?! | 15:15 |
* iglesiasg is afk for a few | 15:16 | |
@wiking | iglesiasg, | 15:16 |
@wiking | /** i'th entry is true if features were already preprocessed with preproc i */ | 15:16 |
@wiking | CDynamicArray<bool>* preprocessed; | 15:16 |
@wiking | so u can specify | 15:16 |
@wiking | which preprocessors on the featues | 15:16 |
@wiking | has already been applied | 15:16 |
@wiking | i guess | 15:16 |
@wiking | this is when you would extend your feature set? | 15:16 |
@wiking | or i mean i dont get it :D) | 15:16 |
@wiking | i dont understand why would you add a preprocessor | 15:17 |
@wiking | that is already done on the data? | 15:18 |
@wiking | especially that set_feature_matrix | 15:18 |
@wiking | does not reset the preprocessed flag | 15:18 |
@wiking | so say you take a densefeatures class | 15:18 |
@wiking | do this magic limbo | 15:18 |
@wiking | then you set_feature_matrix | 15:19 |
@wiking | but you dont apply there that preprocessor | 15:19 |
@wiking | then it's lalala | 15:19 |
@wiking | i think only the masters can shed some light on this :D | 15:19 |
@wiking | these is some heavy sorcery from mordor | 15:20 |
@wiking | sonney2k, ^ :) | 15:21 |
@wiking | iglesiasg, or maybe this is like a convenience function | 15:33 |
@wiking | iglesiasg, where you can easily turn on and off preprocessors | 15:33 |
@wiking | iglesiasg, cool stuff for parameter searching :D | 15:33 |
@wiking | just flip a boolean | 15:34 |
@wiking | right? | 15:34 |
@wiking | instead of add_preprocessor | 15:34 |
@wiking | remove_preprocessor | 15:34 |
@wiking | lalalal | 15:34 |
@wiking | i cannot think about anything else | 15:34 |
* iglesiasg is back | 15:35 | |
@wiking | \/\o/\/ | 15:36 |
Trixis | wiking: hence i also have to also call init_normalizer to achieve an equivalent statement, right? | 15:36 |
@wiking | Trixis, when? | 15:37 |
@wiking | i mean if you call in combinedKernel.init | 15:37 |
@wiking | then that's called | 15:37 |
@wiking | after initing all the kernels | 15:37 |
@wiking | of course in ccase you build yourself | 15:37 |
Trixis | wiking: after i call init / set the kernel matrix for each of the subkernels | 15:37 |
@wiking | the matrix | 15:37 |
@iglesiasg | wiking: yeah, I agree with your thoughts on the magic limbo | 15:37 |
@wiking | mmm idk Trixis | 15:38 |
@wiking | i have to check the code | 15:38 |
@wiking | but i mean you need to init the normalizers for sure | 15:38 |
@wiking | but the normalizers later | 15:38 |
@wiking | automagically applied | 15:38 |
@wiking | ont the kernel matrix | 15:38 |
@wiking | afaik | 15:38 |
@wiking | iglesiasg, cool for param search really | 15:38 |
@wiking | :) | 15:38 |
@wiking | pretty styleish | 15:39 |
@wiking | check git blame | 15:39 |
@wiking | maybe htere's some meaningful log :D | 15:39 |
Trixis | wiking: i mean, normalisation is it's own identity, hence calling it twice should still yield the same result, right? | 15:43 |
@wiking | one would hope! | 15:43 |
Trixis | hahaha | 15:43 |
@wiking | but yeah i mean | 15:43 |
@wiking | weird things happen osme time | 15:44 |
@wiking | if u find a bug | 15:44 |
@wiking | just report plz | 15:44 |
Trixis | kk | 15:44 |
Trixis | oh, actually, looks like i can just set the customkernel matrices beforehand, then call init in combined kernel, since it simply skips custom kernels | 15:45 |
Trixis | well this simplifies it a lot | 15:45 |
@wiking | man i wish there would be a way | 15:47 |
@wiking | to put these conversations somehow | 15:47 |
@wiking | easily to a structured data | 15:47 |
@wiking | so that others later could understand this | 15:47 |
Trixis | wiking: eh i might as well create an example from parts of the code, if you remind me in a couple of months | 15:53 |
@wiking | Trixis, remind | 15:57 |
@wiking | :) | 15:57 |
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has quit [Ping timeout: 248 seconds] | 16:06 | |
sukey1 | [https://github.com/shogun-toolbox/shogun] New commit https://github.com/shogun-toolbox/shogun/commit/6a21cf1cfd83f756ad07186401d4ceb93639b93a by karlnapf | 16:11 |
-!- HeikoS [~heiko@eduroam-int-pat-8-96.ucl.ac.uk] has joined #shogun | 16:23 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 16:23 | |
@wiking | HeikoS, ye may | 16:37 |
@wiking | or i meant hey man | 16:37 |
@wiking | :) | 16:37 |
@wiking | here? | 16:37 |
@HeikoS | I am | 16:37 |
@wiking | ok | 16:37 |
@wiking | so apart from whether or not u wanna join to a reggee party | 16:38 |
@wiking | about the iterators | 16:38 |
@wiking | so i was thinking abou tthis | 16:38 |
@wiking | a bit | 16:38 |
@wiking | and looking into swig0 | 16:38 |
@HeikoS | so whats exactly up? not sure I follow :D | 16:38 |
@wiking | so i mean are we sure that the whole story works nicely | 16:39 |
@wiking | i mean i'm not sure why it wouldn't work right | 16:39 |
@wiking | .begin() | 16:39 |
@wiking | .end() | 16:39 |
@wiking | .next() | 16:39 |
@wiking | these are the stuff we wanna be able to expose to swig interfaces | 16:40 |
sukey1 | [https://github.com/shogun-toolbox/shogun] New commit https://github.com/shogun-toolbox/shogun/commit/36842e97c92e79ed4c1095ba66d6152a1d69f170 by karlnapf | 16:40 |
@wiking | so this should work one would hope | 16:40 |
@wiking | https://stackoverflow.com/a/27243461 | 16:40 |
@HeikoS | ah | 16:40 |
@wiking | i just dont wanna end up where that we have | 16:40 |
@wiking | all these amazing design | 16:40 |
@wiking | and realise that swig is magico lando | 16:40 |
@HeikoS | you think we are there yet .. thinking about exposingn this to swig | 16:40 |
@wiking | and we cannot do it | 16:40 |
@HeikoS | not sure we want to expose this to swig | 16:41 |
@wiking | yeye but we would like to | 16:41 |
@HeikoS | (iteartors) | 16:41 |
@wiking | or? | 16:41 |
@HeikoS | not so sure | 16:41 |
@wiking | HeikoS, features? | 16:41 |
@HeikoS | extract_feature_matrix() | 16:41 |
@wiking | as we were talking about features as iterators | 16:41 |
@wiking | yeye but that's shito | 16:41 |
@HeikoS | I would expose conversion methods to the typemapped types | 16:41 |
@wiking | if it's a streaming matrix | 16:41 |
@wiking | *feature | 16:41 |
@HeikoS | there can also be an API for that | 16:41 |
@HeikoS | but internally | 16:41 |
@HeikoS | we dont do that stuff | 16:41 |
@wiking | i mean the good stuff with iterators | 16:41 |
@wiking | that that allows us | 16:41 |
@HeikoS | due to all the issues with types etc | 16:42 |
@wiking | dontcare for sreaming or nonstreaming | 16:42 |
@wiking | anyhow this is just my point | 16:42 |
@wiking | that we should think a bit | 16:42 |
@wiking | about swig in this context | 16:42 |
@wiking | like for example | 16:42 |
@wiking | some<> | 16:42 |
@wiking | :) | 16:42 |
@wiking | good stuff | 16:42 |
@wiking | none usable as is atm from swig | 16:42 |
@HeikoS | yeah ok | 16:43 |
@HeikoS | I get the point | 16:43 |
@HeikoS | whats up with some btw? | 16:43 |
@wiking | well | 16:43 |
@HeikoS | what about just typemapping it? | 16:43 |
@wiking | mmm | 16:43 |
@wiking | it's a template | 16:43 |
@wiking | how do you typemap that | 16:43 |
@wiking | ? | 16:43 |
@wiking | and anyways the problem there is that | 16:43 |
@HeikoS | no you dont, you are right | 16:43 |
@wiking | you would kind of start the work | 16:43 |
@wiking | that siwg just partially done | 16:44 |
@wiking | for std::shared_ptr | 16:44 |
@wiking | i mean there's support for it | 16:44 |
@wiking | but like not for all the languages etc | 16:44 |
@HeikoS | mmh | 16:44 |
@wiking | so if we go done on the path | 16:44 |
@HeikoS | what about decoupling the SWIG api from the rest of shogun | 16:44 |
@wiking | of Some<> | 16:44 |
@wiking | ok but yeah i mean then you start down on the road of | 16:44 |
@wiking | native * | 16:44 |
@wiking | and some hax0r stuff internally | 16:45 |
@wiking | prune to errors | 16:45 |
@HeikoS | I mean like SWIG stays as it is (with reference counting etc) | 16:45 |
@wiking | hax0r = c++Z feaures | 16:45 |
@wiking | yeye i get it | 16:45 |
@wiking | alhotugh | 16:45 |
@wiking | i wanted to share THIS | 16:45 |
@HeikoS | and internally we modify some to work with that? | 16:45 |
@wiking | just a sec | 16:45 |
-!- iglesiasg [~iglesiasg@217.119.234.214] has quit [Quit: leaving] | 16:45 | |
@HeikoS | wiking: I have another question btw: https://travis-ci.org/shogun-toolbox/shogun/jobs/252016173#L3503 | 16:46 |
@HeikoS | how to import global functions from java? | 16:46 |
@wiking | HeikoS, https://github.com/shogun-toolbox/shogun/issues/2880 | 16:46 |
@wiking | so that talks about SGRefObject | 16:47 |
@wiking | HeikoS, https://github.com/shogun-toolbox/shogun/issues/2880#issuecomment-127923640 | 16:47 |
@wiking | :) | 16:47 |
@wiking | "did get removed for some reason by someone who knows why that | 16:47 |
@wiking | was maybe not a good idea?" | 16:47 |
@wiking | particularly like this one :D | 16:47 |
@HeikoS | haha | 16:48 |
@HeikoS | I think thoralf was that | 16:48 |
@wiking | "Do not remember. Git logs say that Thorsten removed it. "Obsolete "." | 16:48 |
@wiking | :D | 16:48 |
@wiking | good shit | 16:48 |
@HeikoS | haha :D | 16:48 |
@wiking | :) | 16:48 |
@HeikoS | easy to re-introduce | 16:48 |
@HeikoS | so but I agree we have to think this through a bit more | 16:48 |
@HeikoS | so whats the best approach as of nowß | 16:49 |
@HeikoS | ? | 16:49 |
@HeikoS | and also see my question above .... any ideas? | 16:49 |
@wiking | yes | 16:49 |
@wiking | just trying to get u an answer | 16:49 |
-!- HeikoS [~heiko@eduroam-int-pat-8-96.ucl.ac.uk] has quit [Quit: Leaving.] | 16:50 | |
-!- travis-ci [~travis-ci@ec2-54-204-59-182.compute-1.amazonaws.com] has joined #shogun | 16:57 | |
travis-ci | it's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/252016167 | 16:57 |
-!- travis-ci [~travis-ci@ec2-54-204-59-182.compute-1.amazonaws.com] has left #shogun [] | 16:57 | |
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has joined #shogun | 17:07 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 17:07 | |
@HeikoS | wiking: sorry had to move place | 17:08 |
@wiking | k | 17:12 |
@wiking | HeikoS, so theres' this story | 17:12 |
@wiking | %module (jniclassname="name") modulename | 17:12 |
@wiking | If name is the same as modulename then the module class name gets changed from modulename to modulenameModule. | 17:12 |
@wiking | so there should be a module shogun | 17:13 |
@HeikoS | import org.shogun.MulticlassLabels; | 17:13 |
@HeikoS | this works | 17:13 |
@HeikoS | import org.shogun.get_global_io; | 17:13 |
@HeikoS | this doesnt | 17:13 |
@HeikoS | (it does though in python= | 17:13 |
@HeikoS | ) | 17:13 |
@wiking | nono | 17:13 |
@wiking | so there should be a clas | 17:13 |
@wiking | shogun | 17:13 |
@HeikoS | ah | 17:14 |
@wiking | apparently | 17:14 |
@HeikoS | import org.shogun.module.get_global_io; | 17:14 |
@wiking | and that wraps the globals | 17:14 |
@wiking | nono | 17:14 |
@wiking | do not import | 17:14 |
@HeikoS | "There is no such thing as a global Java function so global C functions are wrapped as static methods in the module class." | 17:14 |
sukey1 | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/3920 synchronized by micmn | 17:14 |
@wiking | get_global | 17:14 |
@wiking | as u cannot import | 17:14 |
@wiking | a method | 17:14 |
@wiking | yes | 17:14 |
@wiking | exactly | 17:14 |
@wiking | so you wouold have | 17:14 |
@wiking | org.shogun.shogun ? | 17:14 |
@wiking | and then shogun.get_global_io() | 17:14 |
@HeikoS | yes | 17:14 |
@HeikoS | import org.shogun.shogun; | 17:14 |
@HeikoS | that works | 17:15 |
@HeikoS | ok let me try | 17:15 |
@wiking | but i think | 17:16 |
@wiking | nothing | 17:17 |
@wiking | anyhow that should be it | 17:17 |
@wiking | based on SWIG's documentation | 17:17 |
@wiking | but maaaybe beaseu of that story in the | 17:17 |
@HeikoS | http://www.swig.org/Doc2.0/SWIGDocumentation.html#Java_module_packages_classes | 17:17 |
@wiking | docs | 17:17 |
@HeikoS | 24.3.2 Functions | 17:17 |
@wiking | you might have shogunModule | 17:17 |
@wiking | so org.shogun.shogunModule | 17:17 |
@HeikoS | learning so much about shogun these days ;) | 17:19 |
@wiking | :)))) | 17:20 |
@wiking | magical land | 17:20 |
@wiking | ok so | 17:21 |
@wiking | just to get everybody | 17:21 |
@wiking | calm down and realise that yeah things are not perfect anywhere | 17:21 |
@wiking | https://thepasteb.in/p/Q1hBZOjXKwrc8 | 17:21 |
@wiking | this is when trying to compile a 80billion dollar revenue's company sw on M$ windows | 17:22 |
@wiking | i meant "company of a 80 billion USD revenue" | 17:22 |
@wiking | ... | 17:22 |
@wiking | so if we look from this perspective | 17:22 |
@wiking | we are doing pretty ok :D | 17:23 |
sukey1 | [https://github.com/shogun-toolbox/shogun] New commit https://github.com/shogun-toolbox/shogun/commit/92e3257ead97291e5e8c53aebdd8a16fbc490210 by karlnapf | 17:23 |
@HeikoS | haha :D | 17:23 |
@HeikoS | everyone has the same problems | 17:24 |
@HeikoS | BUT WE FIX THEM | 17:24 |
@wiking | indeed | 17:24 |
@wiking | i mean its' funny i think | 17:24 |
@wiking | to look at things this way | 17:24 |
@wiking | man really that's a company of 80 billion USD | 17:24 |
@wiking | with shitload of engineers | 17:24 |
@wiking | and they fail on the same little shits | 17:24 |
@wiking | distribution etc | 17:24 |
@wiking | mmmm | 17:28 |
-!- iglesias [~iglesias@wlan073045.mobiel.utwente.nl] has joined #shogun | 17:28 | |
@wiking | does anybody relised that TF | 17:28 |
@wiking | actually cannot be built offline | 17:28 |
@wiking | ? | 17:28 |
@wiking | muha :D | 17:29 |
iglesias | without blaze? | 17:29 |
@wiking | iglesias, what are u doing at the uni? | 17:29 |
@wiking | iglesias, nono man ./configure script downloads a .js form the web | 17:29 |
iglesias | wiking: yo soy un estudiante, de por vida | 17:29 |
@wiking | and even if it downloaded it | 17:29 |
@wiking | it would redonwload it again | 17:29 |
@wiking | pura vida! | 17:29 |
iglesias | aaah haha cool | 17:30 |
@wiking | good shitz | 17:30 |
@wiking | being forever student | 17:30 |
iglesias | sí | 17:30 |
iglesias | es bueno | 17:30 |
@wiking | so yeah | 17:31 |
@wiking | good shit | 17:31 |
iglesias | wiking: I started a fun test with tf btw | 17:31 |
@wiking | one could rest after seeing these stuff | 17:31 |
iglesias | or challenge rather than test | 17:31 |
@wiking | iglesias, tf is cool btw | 17:32 |
iglesias | will I manage to build a hello world without blaze? :O | 17:32 |
iglesias | just old plain g++ -I ... -l ... | 17:32 |
@wiking | heheh | 17:32 |
@wiking | have fun | 17:32 |
@wiking | :) | 17:32 |
iglesias | haha yeah | 17:32 |
iglesias | I left it in blaze -s | 17:32 |
@wiking | :> | 17:32 |
iglesias | but it looked like it was building lot of stuff | 17:33 |
@wiking | but i mean its good that we are struggling with the same shit :) | 17:33 |
iglesias | not just the minimal example | 17:33 |
iglesias | which I found funky btw since the last time I touched that directory I already did blaze sth | 17:33 |
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has quit [Ping timeout: 258 seconds] | 17:34 | |
iglesias | anyhow, it is in the other machine, so I will check it tomorrow | 17:34 |
sukey1 | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/3920 synchronized by micmn | 17:34 |
iglesias | if you hear don't hear from me about it, I failed the challenge xD | 17:34 |
@wiking | :>>>>>>>. | 17:35 |
-!- HeikoS [~heiko@eduroam-int-pat-8-96.ucl.ac.uk] has joined #shogun | 17:50 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 17:50 | |
-!- iglesias [~iglesias@wlan073045.mobiel.utwente.nl] has quit [Quit: leaving] | 18:07 | |
-!- HeikoS [~heiko@eduroam-int-pat-8-96.ucl.ac.uk] has quit [Quit: Leaving.] | 18:14 | |
@wiking | lisitsyn, https://github.com/hioa-cs/IncludeOS | 18:14 |
@wiking | :D | 18:14 |
@wiking | lisitsyn, this is ++ version of your statically linking libraries together | 18:15 |
@wiking | :D | 18:15 |
@wiking | not only have the interpreter | 18:15 |
@wiking | but the whole fukcing os into one thing | 18:15 |
@wiking | :D | 18:15 |
@wiking | "Extreme memory footprint: A minimal bootable image, including bootloader, operating system components and a complete C++ standard library is currently 707K when optimized for size." | 18:16 |
@wiking | :) | 18:16 |
@wiking | man this is crazy | 18:17 |
@wiking | :)))))))))))))) | 18:17 |
@wiking | geektoni, killed it with fire? | 18:21 |
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has joined #shogun | 18:22 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 18:22 | |
-!- travis-ci [~travis-ci@ec2-54-81-148-90.compute-1.amazonaws.com] has joined #shogun | 18:23 | |
travis-ci | it's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/252044729 | 18:23 |
-!- travis-ci [~travis-ci@ec2-54-81-148-90.compute-1.amazonaws.com] has left #shogun [] | 18:23 | |
@wiking | HeikoS, one more thing | 18:25 |
@wiking | we should start using variables for data path even in the xamples | 18:26 |
@wiking | as the ../../ | 18:26 |
@wiking | is yeah mikulas :) | 18:26 |
@wiking | and another story that is great http://jupyter-dashboards-layout.readthedocs.io/en/latest/index.html | 18:30 |
@HeikoS | wiking: both good | 18:35 |
@HeikoS | yeah the data | 18:35 |
-!- geektoni [~geektoni@93-34-128-38.ip49.fastwebnet.it] has quit [Remote host closed the connection] | 18:54 | |
@HeikoS | micmn: you around? | 19:01 |
micmn | HeikoS: here | 19:05 |
@HeikoS | In file included from /home/heiko/git/shogun/build_bsd/tests/unit/trained_model_serialization_unittest.cc:171:0: | 19:06 |
@HeikoS | /home/heiko/git/shogun/src/gpl/shogun/classifier/svm/SVMOcas.h:20:41: fatal error: shogun/lib/external/libocas.h: No such file or directory | 19:06 |
@HeikoS | compilation terminated. | 19:06 |
@HeikoS | micmn: I am getting that atm did you ever see it before? | 19:06 |
micmn | mmm no | 19:08 |
micmn | so that is guarded with USE_GPL_SHOGUN | 19:08 |
sukey1 | [https://github.com/shogun-toolbox/shogun] New commit https://github.com/shogun-toolbox/shogun/commit/c084a7631ae7590b7138176ab4e250238dec1133 by karlnapf | 19:09 |
sukey1 | [https://github.com/shogun-toolbox/shogun] New branch feature/BSD_refactor created | 19:09 |
micmn | maybe it's not handling correctly the gpl folder | 19:10 |
micmn | are you compiling with USE_GPL_SHOGUN right? | 19:10 |
sukey1 | [https://github.com/shogun-toolbox/shogun] New commit https://github.com/shogun-toolbox/shogun/commit/be24a46e71292479a92770581bf1d42a36dc8ebd by karlnapf | 19:10 |
sukey1 | [https://github.com/shogun-toolbox/shogun] New branch feature/BSD_refactor created | 19:11 |
sukey1 | [https://github.com/shogun-toolbox/shogun] New commit https://github.com/shogun-toolbox/shogun/commit/c084a7631ae7590b7138176ab4e250238dec1133 by karlnapf | 19:11 |
@HeikoS | micmn: no I disabled it | 19:13 |
@HeikoS | since I am working on the bSD release | 19:13 |
@HeikoS | micmn: did you take the guards into account? | 19:13 |
@HeikoS | mikeling: I just merged the global calls in meta lanugage | 19:13 |
@HeikoS | mikeling: see meta_api/calls.sg for an example | 19:13 |
micmn | yeah | 19:13 |
@HeikoS | micmn: ok maybe it is something with the cache | 19:14 |
micmn | I'll disable GPL_SHOGUN and see what's going on | 19:15 |
@HeikoS | micmn: wait a sec | 19:15 |
@HeikoS | yeah so here is what happens | 19:15 |
@HeikoS | no actually I dont understand | 19:16 |
@HeikoS | mmmg | 19:16 |
@HeikoS | micmn: I wanted to ask something else | 19:16 |
@HeikoS | what is the state of the linalg wihtout templated matrix? | 19:16 |
micmn | mmm not sure how to continue, let me check the pr | 19:18 |
micmn | so the thing about lazy-evaluation | 19:19 |
micmn | what's your idea on it? | 19:20 |
sukey1 | [https://github.com/shogun-toolbox/shogun] Issue https://github.com/shogun-toolbox/shogun/issues/3922 opened by karlnapf | 19:20 |
sukey1 | [https://github.com/shogun-toolbox/shogun] Issue https://github.com/shogun-toolbox/shogun/issues/3922 karlnapf added label: "Cleanups" | 19:20 |
sukey1 | [https://github.com/shogun-toolbox/shogun] Issue https://github.com/shogun-toolbox/shogun/issues/3922 karlnapf added label: "cmake" | 19:20 |
@HeikoS | micmn: I am not sure how to do it and not sure whether that even solves our problems | 19:21 |
@HeikoS | micmn: any ideas on the type determination in linalg? | 19:21 |
@HeikoS | I mean we can go with a simple thing for now, the API is independent of that | 19:22 |
@HeikoS | and I am more afte rthe API for now | 19:22 |
micmn | you mean to avoid the switch? | 19:22 |
@HeikoS | i.e. that the classes exist and that all linalg methods take the un-templated arguments as well as templated ones | 19:22 |
@HeikoS | micmn: yes | 19:22 |
micmn | so for methods like matrix_prod it's negligible | 19:23 |
@HeikoS | micmn: yep | 19:23 |
@HeikoS | micmn: it is more like if you repeatedly call a cheap method | 19:23 |
@HeikoS | micmn: but I am fine with a switch for now | 19:23 |
@HeikoS | as said, this can be changed independently of the API | 19:23 |
micmn | btw in get_cov() I tried to replace vector.vector[i] with vector[i] | 19:24 |
@HeikoS | yes? | 19:24 |
micmn | and the speed drawback was huge | 19:24 |
micmn | I think because of the call check_on_cpu() or something like that | 19:24 |
@HeikoS | thats just a boolean flag | 19:25 |
@HeikoS | is that with compiler optimizations? | 19:25 |
micmn | mmm I'm not sure I'll double check | 19:25 |
@HeikoS | micmn: one thing that might help is to remove the ";" at the end of the error message (then they are faster) | 19:25 |
@HeikoS | micmn: with optimizations i cant imagine that would be slower | 19:25 |
micmn | anyway, the next thing for matrix class | 19:27 |
micmn | could be a prototype for iterators | 19:27 |
@HeikoS | micmn: good point | 19:28 |
@HeikoS | micmn: I also thought that maybe it is a good idea to take a really simple algorithm | 19:28 |
@HeikoS | like linear ridge regression | 19:28 |
@HeikoS | and write that with an untemplate matrix | 19:28 |
@HeikoS | so that there is no float_**** in the algorithm code | 19:29 |
micmn | I could use a typical use-case for an iterator | 19:29 |
micmn | linear ridge regression has it? | 19:29 |
@HeikoS | micmn: no iterators needed | 19:29 |
@HeikoS | just covariance | 19:29 |
@HeikoS | and cholesky | 19:29 |
@HeikoS | but would be a good start I think before digging into more complex terrain | 19:29 |
micmn | ok | 19:30 |
micmn | so the plan is: address the comments on the PR and add methods needed by linear ridge regression and rewrite it with the new matrix class | 19:32 |
micmn | probably I'll need Vector too | 19:33 |
@HeikoS | micmn: btw | 19:33 |
@HeikoS | http://buildbot.shogun-toolbox.org:8080/#/builders/4 | 19:33 |
@HeikoS | micmn: http://buildbot.shogun-toolbox.org:8080/#/builders/4/builds/15/steps/5/logs/stdio | 19:34 |
@HeikoS | it is this patch that broke the build | 19:34 |
@HeikoS | micmn: easy to reproduce locally: delete the src/gpl directory, re-run cmake, and then make | 19:35 |
micmn | thx I'm on it | 19:40 |
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has quit [Ping timeout: 255 seconds] | 19:42 | |
-!- travis-ci [~travis-ci@ec2-54-81-148-90.compute-1.amazonaws.com] has joined #shogun | 19:56 | |
travis-ci | it's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/252085514 | 19:56 |
-!- travis-ci [~travis-ci@ec2-54-81-148-90.compute-1.amazonaws.com] has left #shogun [] | 19:56 | |
@wiking | micmn, | 23:09 |
@wiking | [05:03] <micmn> [19:22:01] and the speed drawback was huge | 23:09 |
@wiking | [05:03] <micmn> [19:22:21] I think because of the call check_on_cpu() or something like that | 23:09 |
@wiking | you can profile iy | 23:09 |
@wiking | *it | 23:09 |
@wiking | and maybe use google's benchmarking lib to get the runtimes | 23:10 |
@wiking | btw lazy evaluation is in a way nothing else but you build a stack | 23:10 |
@wiking | and the interface would look like a builder pattern | 23:11 |
@wiking | each operation = push to the OP stack | 23:11 |
@wiking | micmn, https://github.com/ericniebler/range-v3 | 23:28 |
lisitsyn | ranges! | 23:28 |
@wiking | micmn, https://github.com/ericniebler/range-v3/blob/master/doc/index.md#views | 23:39 |
@wiking | lisitsyn, this is a fucking nice lib | 23:39 |
Trixis | "MKL.cpp line 901: Assertion R >= 0 failed!" any idea what the potential cause could be? | 23:44 |
--- Log closed Tue Jul 11 00:00:50 2017 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!