--- Log opened Thu Jul 06 00:00:43 2017 | ||
-!- gideonite [~gideon@mookmo.net] has quit [Quit: Lost terminal] | 00:21 | |
-!- mikeling [uid89706@gateway/web/irccloud.com/x-pyatdlfgiklkptwe] has joined #shogun | 02:59 | |
mikeling | Hi wiking and lisitsyn , for the random and global see, https://gist.github.com/MikeLing/f29d8a39551734a3bd3fb202b40542ea is this what want? | 03:16 |
---|---|---|
mikeling | After I use CSGObject::set_global_seed() instead of sg_rand() and CMath::init_random(), some tests still failed | 03:17 |
mikeling | *global seed | 03:17 |
@wiking | you can still call it set_seed() | 03:18 |
@wiking | here https://gist.github.com/MikeLing/f29d8a39551734a3bd3fb202b40542ea#file-random_refactor-cpp-L11 | 03:19 |
@wiking | it'd be enough to do return CSGObject::m_seed; | 03:19 |
@wiking | i guess for this https://gist.github.com/MikeLing/f29d8a39551734a3bd3fb202b40542ea#file-random_refactor-cpp-L18 | 03:19 |
@wiking | you converted generate_seed() to static of CRandom | 03:19 |
@wiking | now the question is | 03:20 |
@wiking | how do you create m_rng | 03:20 |
@wiking | in SGObject | 03:20 |
@wiking | but actually | 03:20 |
@wiking | seed really doesn't need to be member of SGObject | 03:20 |
@wiking | we could just have a global sg_seed | 03:21 |
@wiking | like we used to have sg_rng | 03:21 |
@wiking | or sg_io | 03:21 |
mikeling | wiking: sorry, I forget to include that part into gist https://gist.github.com/MikeLing/f29d8a39551734a3bd3fb202b40542ea#file-random_refactor-cpp-L6 | 03:21 |
mikeling | here | 03:21 |
@wiking | ok yeah | 03:21 |
@wiking | this was the idea roughly | 03:21 |
@wiking | and even in this case you have failing tets? | 03:22 |
@wiking | *tests? | 03:22 |
@wiking | can you share which ones? | 03:22 |
mikeling | sure, just a second | 03:22 |
@wiking | i have to leave now | 03:22 |
@wiking | but gonna come back on mobile | 03:22 |
@wiking | just a sec | 03:22 |
mikeling | ok, later. :) | 03:22 |
mikeling | I have three unit test failed: | 03:31 |
mikeling | 212 - unit-NeuralLinearLayer (Failed) | 03:31 |
mikeling | 246 - unit-QuadraticTimeMMD (Failed) | 03:32 |
mikeling | 247 - unit-TwoDistributionTest (Failed) | 03:32 |
-!- wiking_mob [~Mutter@14.100.136.116] has joined #shogun | 03:38 | |
wiking_mob | Hi | 03:38 |
wiking_mob | mikeling: here? | 03:38 |
mikeling | yes | 03:38 |
wiking_mob | Can you copy paste your answer plz | 03:39 |
mikeling | sure | 03:39 |
wiking_mob | Thnx | 03:39 |
wiking_mob | So jus | 03:39 |
wiking_mob | Im just wondering which are the modules that are failing still for you | 03:40 |
mikeling | wiking_mob: https://pastebin.mozilla.org/9026375 | 03:40 |
wiking_mob | Probably in this case we will have to change the expected value of the unit tests | 03:41 |
wiking_mob | In all these tests there's a set seed right? | 03:41 |
mikeling | yes, for example https://github.com/shogun-toolbox/shogun/compare/feature/random-refactor...MikeLing:get_rid_of_sg_rand#diff-99e054735e2346e73999f150d70befd9 | 03:42 |
mikeling | those mmd->set_seed(12345); has been removed | 03:42 |
mikeling | let me update it | 03:42 |
wiking_mob | Okok | 03:43 |
wiking_mob | Bever | 03:43 |
wiking_mob | Never | 03:43 |
wiking_mob | Mind i get it | 03:44 |
wiking_mob | Ok so this is probably already because we do not have a global random | 03:44 |
wiking_mob | Which is actually good | 03:44 |
wiking_mob | Two things | 03:44 |
wiking_mob | 1) could we move the static seed out of sgobject, and be a global var as sg_io? | 03:45 |
mikeling | mmm, that's what we do before, sg_rand | 03:45 |
wiking_mob | Yea yeah | 03:45 |
wiking_mob | But no crandom globa | 03:45 |
wiking_mob | Only a uint32_t seed | 03:45 |
mikeling | ok, I see | 03:46 |
wiking_mob | And make all Crandom use that | 03:46 |
wiking_mob | You can actually write in the default ctor of CRandom to use that global var | 03:46 |
wiking_mob | 2) once this little change is done send in the pr with the failing tests | 03:47 |
mikeling | wiking_mob: BTW, sometimes we call sg_rand->set_seed() twice, like https://github.com/shogun-toolbox/shogun/blob/35059db38eef4c929ac5e0b2d01395bafbb124c9/tests/unit/statistical_testing/QuadraticTimeMMD_unittest.cc#L512-L516 | 03:47 |
wiking_mob | And we'll check with heiko and lambday if i'm right about the fact that this is really because of the fact that random is not global anymore | 03:48 |
mikeling | it's going to refresh the status of random generator | 03:48 |
wiking_mob | Lemme check | 03:48 |
mikeling | so | 03:48 |
mikeling | maybe we need to have a way to do that | 03:48 |
mikeling | if we don't want to change the test | 03:48 |
wiking_mob | We will have to change the test anyways | 03:49 |
mikeling | ok | 03:49 |
wiking_mob | Anyhow once you have that pr | 03:49 |
wiking_mob | We will ping the guys | 03:49 |
mikeling | ok, I see | 03:50 |
wiking_mob | But in the meanwhile we can move to the new step | 03:50 |
wiking_mob | Which is actually 2 | 03:50 |
wiking_mob | Mmmm | 03:50 |
wiking_mob | Ok one question | 03:50 |
wiking_mob | Im wondering if we ever decided whether after switching to c++11 random engines would we still wrap them by a CRandom class or no? | 03:51 |
mikeling | wiking_mob: yes we do, | 03:52 |
mikeling | because we don't want to do those engine init and distribution choosing every time | 03:53 |
wiking_mob | Aha | 03:55 |
wiking_mob | Cos my problem is that | 03:55 |
wiking_mob | For that we would have some very stupid wrapper functions | 03:56 |
wiking_mob | Which i dont like | 03:56 |
wiking_mob | Thinking about all the different type of distribution one might want :( | 03:56 |
wiking_mob | To wrap these functions is a bit stupid | 03:57 |
wiking_mob | But yeah i agree | 03:59 |
wiking_mob | That we need an easy way to construct the random with the right seed etc | 03:59 |
wiking_mob | But that could be a simple lambda or somethinng | 04:01 |
wiking_mob | mikeling: see what i mean? | 04:02 |
wiking_mob | auto prng = get_prng(); | 04:03 |
mikeling | wiking_mob: so the prng is a random generator with c++11 random engines? | 04:04 |
wiking_mob | Yea | 04:06 |
wiking_mob | So like the mt.... | 04:06 |
wiking_mob | By default | 04:06 |
wiking_mob | mikeling: lemme think about this a bit | 04:08 |
wiking_mob | You can still do the pr :) | 04:08 |
mikeling | wiking_mob: sure, I will commit that pr asap | 04:08 |
mikeling | thanks | 04:08 |
wiking_mob | Yeah | 04:10 |
wiking_mob | And lets ping those two about the errors | 04:10 |
wiking_mob | But im sure its something that we will face anyways when switching to another prng | 04:10 |
-!- wiking_mob [~Mutter@14.100.136.116] has quit [Remote host closed the connection] | 04:16 | |
-!- wiking_mob [~Mutter@14.100.136.116] has joined #shogun | 04:24 | |
-!- wiking_mob [~Mutter@14.100.136.116] has quit [Remote host closed the connection] | 04:27 | |
-!- wiking_mob [~Mutter@14.100.136.116] has joined #shogun | 04:43 | |
-!- wiking_mob [~Mutter@14.100.136.116] has quit [Remote host closed the connection] | 04:47 | |
-!- Trixis [~Trixis@unaffiliated/trixis] has quit [Ping timeout: 260 seconds] | 07:28 | |
-!- Trixis [~Trixis@unaffiliated/trixis] has joined #shogun | 07:30 | |
-!- iglesiasg [~iglesiasg@217.119.234.214] has joined #shogun | 07:47 | |
-!- mode/#shogun [+o iglesiasg] by ChanServ | 07:47 | |
@wiking | mikeling, how's going with the PR? :) | 09:05 |
-!- geektoni [~geektoni@93-34-128-38.ip49.fastwebnet.it] has joined #shogun | 09:30 | |
@sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/3905 merged by lisitsyn | 09:55 |
@sukey | [https://github.com/shogun-toolbox/shogun] New commit https://github.com/shogun-toolbox/shogun/commit/40632048978bfc560736c2fb84794891dfbe0e6c by lisitsyn | 09:55 |
-!- geektoni [~geektoni@93-34-128-38.ip49.fastwebnet.it] has quit [Remote host closed the connection] | 10:06 | |
-shogun-buildbot:#shogun- Build osx1 - libshogun #55 is complete: Failure [test (failure)] - http://buildbot.shogun-toolbox.org:8080/#builders/25/builds/55 | 10:08 | |
@wiking | mmm osx why u no like it | 10:15 |
lisitsyn | eh | 10:17 |
lisitsyn | wiking: Theorem 1. The Perceptron does not converge on mac | 10:17 |
@wiking | :) | 10:18 |
lisitsyn | wiking: is there a *coin based on linear separability? | 10:19 |
lisitsyn | oh, vapnikcoin! you can mine vapkikcoin using 1/L2(w) | 10:20 |
lisitsyn | once you have some you can minimize loss | 10:20 |
-shogun-buildbot:#shogun- Build osx1 - libshogun #56 is complete: Success [build successful] - http://buildbot.shogun-toolbox.org:8080/#builders/25/builds/56 | 10:21 | |
lisitsyn | I fueled up the build with some eth | 10:22 |
@wiking | :>>>>>>>>>>>> | 10:24 |
@sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/3906 opened by MikeLing | 10:30 |
@wiking | great | 10:32 |
@wiking | lets see what fails | 10:32 |
@wiking | :) | 10:32 |
micmn | wiking: any idea why I get this with python interface? https://pastebin.com/aUsEdWqq | 10:56 |
@wiking | lemme check | 11:03 |
@wiking | need to debuggooo :) | 11:03 |
@wiking | what happens if you do | 11:04 |
@wiking | x = RealFeatures(np.random.randn(n,n)) | 11:04 |
@wiking | x.get_mean() | 11:04 |
@wiking | is it the same? | 11:04 |
micmn | yes | 11:04 |
@wiking | loco | 11:05 |
micmn | x.get_cov() works | 11:05 |
micmn | get_mean() does not :> | 11:05 |
@wiking | mikeling, you should just include common.h to have int32_t | 11:05 |
@wiking | and not to use __int32_t | 11:05 |
@wiking | micmn, lol lemme see | 11:06 |
@wiking | micmn, btw that function implementation | 11:06 |
@wiking | in DotFeatures.cpp | 11:06 |
@wiking | is hurting | 11:06 |
@wiking | for get_mean () :) | 11:07 |
micmn | how would you improve that? | 11:09 |
@wiking | linalg? | 11:09 |
micmn | I can do linalg::scale instead of the for | 11:10 |
micmn | but nothing more... | 11:10 |
@wiking | yeah | 11:11 |
@wiking | that's already good | 11:11 |
@wiking | as if you use either the eigen | 11:11 |
@wiking | backend | 11:12 |
@wiking | then if you compile it for ARM | 11:12 |
@wiking | then it'll use NEON | 11:12 |
@wiking | while the compiler might not get that | 11:12 |
@wiking | but that's not the point here | 11:12 |
@wiking | i wanna see why this error | 11:12 |
@wiking | micmn, this is like wtf for the time being :) | 11:57 |
@wiking | i'm trying to see the shogun_PYTHON.cxx | 11:57 |
micmn | good luck :D | 11:59 |
@wiking | yeah that's a pain :) | 12:00 |
micmn | wiking: mmm the difference with get_cov() is that get_mean() also has a static method with the same name (that in case of get_cov is compute_cov), I may try to rename it and see what happens | 12:08 |
micmn | wiking: http://swig.10945.n7.nabble.com/Static-methods-and-python-td4956.html second post, it's 2007 but... | 12:12 |
@wiking | yeye | 12:14 |
@wiking | but it's not static method :) | 12:14 |
@wiking | the only difference | 12:14 |
@wiking | between get_cov and get_mean | 12:14 |
@wiking | that get_mean has two function signature | 12:14 |
micmn | one is static | 12:15 |
@wiking | get_mean() and get_mean(DotFeatures*, DotFeatures*) | 12:15 |
micmn | static SGVector<float64_t> compute_mean(CDotFeatures* lhs, CDotFeatures* rhs); | 12:15 |
micmn | (renamed it) | 12:15 |
@wiking | and | 12:15 |
@wiking | then it works? :D | 12:15 |
@wiking | dont tell me that then it works | 12:15 |
micmn | compiling :P | 12:15 |
@wiking | lol | 12:15 |
micmn | in the meantime: modshogun.DotFeatures_get_mean(f,f) works | 12:19 |
@wiking | hoh | 12:20 |
@wiking | micmn, In [5]: sg.RealFeatures(np.random.randn(n,n)).get_mean() | 12:24 |
@wiking | Out[5]: | 12:24 |
@wiking | array([ 0.21471372, -0.39342012, 0.17837314, -0.772141 , 0.39367933, | 12:24 |
@wiking | 0.05230922, 0.10041175, -0.34108736, 0.00214895, 0.06972926]) | 12:24 |
@wiking | you won a beer :) | 12:24 |
@wiking | micmn, wanna send a patch plz | 12:24 |
@wiking | ? | 12:24 |
micmn | yep | 12:24 |
@wiking | thnx | 12:24 |
@wiking | got catch! | 12:24 |
micmn | :P | 12:24 |
@wiking | i meant good catch | 12:27 |
@sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/3907 opened by micmn | 12:32 |
@sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/3906 synchronized by MikeLing | 12:45 |
@sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/3907 synchronized by micmn | 12:59 |
@wiking | anybody here fluent in R? | 13:24 |
@sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/3907 merged by vigsterkr | 14:20 |
@sukey | [https://github.com/shogun-toolbox/shogun] New commit https://github.com/shogun-toolbox/shogun/commit/d5ab2f22025a9fb0102eb2df49a552f47ea0e082 by vigsterkr | 14:20 |
@wiking | micmn, could you help out with https://github.com/shogun-toolbox/shogun/issues/3886#issuecomment-313380225 | 14:25 |
@wiking | ? | 14:25 |
@wiking | check on the code and see if u find something odd | 14:25 |
micmn | wiking: checking | 14:52 |
@wiking | thnx | 14:52 |
@sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/3906 synchronized by MikeLing | 14:57 |
lisitsyn | wiking: do we need some smart anaconda detector? | 15:43 |
lisitsyn | in cmake | 15:43 |
@wiking | y? | 15:43 |
lisitsyn | tired of having all the parameters in cmake | 15:43 |
lisitsyn | I have anaconda why can't it detect | 15:43 |
@wiking | :> | 15:45 |
@wiking | i have never compiled directly with conda | 15:45 |
lisitsyn | I do all the time | 15:54 |
@wiking | :) | 15:55 |
@wiking | have fun | 15:55 |
lisitsyn | why? works | 15:56 |
@sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/3908 opened by micmn | 16:04 |
@iglesiasg | lisitsyn: what is this conda and cmake parameters thingy? :) | 16:16 |
lisitsyn | iglesiasg: cmake -DINTERFACE_PYTHON=ON -DPYTHON_SHEATZ= … | 16:17 |
@iglesiasg | lisitsyn: yeah... pain to deal with all the params. I use ccmake for that and normally have separate build_ dirs | 16:19 |
@iglesiasg | lisitsyn: how are you handling it? Some good stuff? | 16:19 |
lisitsyn | iglesiasg: I just thought of pointing it to anaconda somehow | 16:19 |
lisitsyn | then it would infer all the PYTHON_WHATEVER | 16:19 |
@iglesiasg | ah, I see | 16:20 |
lisitsyn | iglesiasg: actualmente distutils probablemente provide such stuff | 16:25 |
lisitsyn | :P | 16:25 |
@sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/3906 synchronized by MikeLing | 16:26 |
@iglesiasg | oh, qué bien | 16:32 |
@iglesiasg | lisitsyn: te gusta distutils, más o menos que conda? :D | 16:32 |
lisitsyn | iglesiasg:haha | 16:33 |
lisitsyn | iglesiasg: I see value in conda's setup for numpy and stuff | 16:33 |
lisitsyn | but everything else should be python-general | 16:33 |
@sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/3751 synchronized by micmn | 17:53 |
-!- mikeling [uid89706@gateway/web/irccloud.com/x-pyatdlfgiklkptwe] has quit [Quit: Connection closed for inactivity] | 21:55 | |
-!- sukey [~nodebot@ks312251.kimsufi.com] has quit [Remote host closed the connection] | 23:12 | |
-!- sukey [~nodebot@ks312251.kimsufi.com] has joined #shogun | 23:13 | |
-!- mode/#shogun [+o sukey] by ChanServ | 23:13 | |
--- Log closed Fri Jul 07 00:00:44 2017 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!