--- Log opened Wed Jun 21 00:00:22 2017 | ||
-!- TingMiao [uid229534@gateway/web/irccloud.com/x-ufgcvkdtqvyqbein] has quit [Quit: Connection closed for inactivity] | 00:16 | |
-!- CaBa [~Diu7saig@unaffiliated/caba] has joined #shogun | 00:17 | |
-!- CaBa_ [~Diu7saig@lounge.imp.fu-berlin.de] has quit [Remote host closed the connection] | 00:17 | |
-!- olinguyen [18303760@gateway/web/freenode/ip.24.48.55.96] has joined #shogun | 01:33 | |
@wiking | mikeling, hi | 05:00 |
---|---|---|
mikeling | wiking: Hi~ | 05:01 |
mikeling | Does the benchmark looks good to you? | 05:01 |
@wiking | mmm | 05:02 |
@wiking | i'm just checking | 05:02 |
@wiking | but yeah that's hat i had in mind | 05:02 |
mikeling | I add more random engines into the benchmark, will paste the result soon | 05:03 |
@wiking | mikeling, ok | 05:27 |
@wiking | mikeling, ok so i'm just wondering | 05:29 |
@wiking | based on this benchark | 05:29 |
@wiking | the existing random | 05:29 |
@wiking | in shogun | 05:29 |
@wiking | is actually much better right? | 05:29 |
mikeling | yep | 05:29 |
mikeling | actually, it's better than other engines | 05:29 |
@wiking | any other engines? :) | 05:30 |
@wiking | fuck | 05:30 |
mikeling | yes | 05:30 |
@wiking | i was hoping | 05:30 |
@wiking | that the difference is not so big :( | 05:30 |
@wiking | ok one more thing | 05:30 |
@wiking | mmm just forgot what i wanted | 05:31 |
@wiking | ;( | 05:31 |
@wiking | ah yeah | 05:31 |
@wiking | what is your compiler? | 05:31 |
@wiking | gcc? | 05:31 |
@wiking | if yes can you try the same thing with clang? | 05:31 |
@wiking | only compile the benchmark code with clang | 05:32 |
@wiking | as it'll use a different libstdc++ | 05:32 |
@wiking | olinguyen, around? | 05:32 |
mikeling | mmm, my local system is OSX and I'm using CLion to run the benchmark. So I guess my default compiler will be clang if I haven't do any specific configuration | 05:34 |
@wiking | oooooh | 05:36 |
@wiking | ok | 05:36 |
@wiking | lemme try this benchmark | 05:36 |
@wiking | on a linux machine | 05:36 |
@wiking | mikeling, what was the -O flag you used | 05:42 |
@wiking | for compiling benchmark.cc | 05:42 |
mikeling | no, I haven't use any flag. Just press the Run button of Clion and it will output result to its debug console | 05:43 |
@wiking | how did you build shogun? | 05:44 |
mikeling | yes, I already make install it. I use link_libraries(shogun) in my CMakeLists and use it then | 05:45 |
mikeling | oooh | 05:45 |
@wiking | yeah but how did you build it | 05:45 |
mikeling | sorry | 05:45 |
@wiking | did you specify CMAKE_BUILD_TYPE | 05:46 |
mikeling | cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_TESTING=ON -DBUILD_META_EXAMPLES=ON ../ | 05:46 |
@wiking | for shogun's cmake? | 05:46 |
@wiking | ooooh | 05:46 |
@wiking | ok even with Debug build | 05:46 |
@wiking | mmm | 05:46 |
@wiking | could you please redo on your end the benchmakring | 05:46 |
@wiking | but use a shogun that is | 05:46 |
@wiking | cmake -DCMAKE_BUILD_TYPE=Release | 05:46 |
mikeling | ok | 05:46 |
@wiking | i'm suspecting that the random might be even faster :( | 05:47 |
@wiking | hoho | 05:47 |
mikeling | BTW, do you want to look at the result I have now? with the Debug version | 05:47 |
@wiking | you mean you have newer ones? | 05:47 |
@wiking | because i've check the gist | 05:48 |
@wiking | you've sent me yesterday | 05:48 |
mikeling | I just add the other engines | 05:48 |
mikeling | I haven't update the gist, because most of them is copy and paste | 05:48 |
mikeling | I just test them locally | 05:48 |
mikeling | and get the result | 05:49 |
mikeling | wiking: https://gist.github.com/MikeLing/d258cf0c7e18d17639c577a695dbec41#gistcomment-2128534 | 05:49 |
mikeling | like this | 05:49 |
@wiking | ooohooo | 05:52 |
@wiking | ok | 05:52 |
@wiking | so in case | 05:52 |
@wiking | of minstd_rand | 05:52 |
@wiking | it's comparable | 05:52 |
@wiking | with what we have atm | 05:52 |
mikeling | wiking: mmm, yes. And it has same speed on normal_dis benchmark with shogun::random | 05:53 |
mikeling | * CRandom::normal_distrib | 05:54 |
@wiking | same/ | 05:54 |
@wiking | ? | 05:54 |
@wiking | based on the benchmark comment | 05:54 |
@wiking | BM_sg_random_normal_dis is a bit faster | 05:55 |
@wiking | 74 vs 123 | 05:55 |
mikeling | wiking: that's a mis tag. I just update it. the 74 vs 123 is the situation of int32 | 05:56 |
mikeling | not normal_distrib | 05:56 |
mikeling | I haven't paste that part of result for now | 05:56 |
mikeling | let me do it right now | 05:56 |
@wiking | kk | 05:56 |
@wiking | cool | 05:56 |
mikeling | And then I will try the release versio | 05:57 |
@wiking | cool | 05:57 |
mikeling | version | 05:57 |
@wiking | thnx | 05:57 |
mikeling | np | 05:57 |
@wiking | but ok | 05:57 |
@wiking | this is a good sign | 05:57 |
@wiking | what is weird tho | 05:58 |
@wiking | if i compare the screenshot | 05:58 |
@wiking | https://gist.github.com/MikeLing/d258cf0c7e18d17639c577a695dbec41#gistcomment-2128167 | 05:58 |
@wiking | here | 05:58 |
@wiking | BM_random_float64 = BM_mt19937_64_float64 | 05:58 |
@wiking | right? | 05:58 |
mikeling | yep | 05:59 |
@wiking | for some reason | 05:59 |
@wiking | there's quite a lot of diff | 05:59 |
@wiking | 71 vs 42 | 05:59 |
mikeling | yeah, I had notice that also. But I found the first benchmark been test will spend other time than others. Maybe it's because I run it on the IDE rather output it to an .out. If you look at the CPU time is 41 ns vs 51ns | 06:02 |
mikeling | And I also try to change the sequence of the benchmark. Even I out shogun::random to the first, it will be the fastest one | 06:03 |
mikeling | almost | 06:03 |
mikeling | * put shogun::random | 06:04 |
olinguyen | wiking: hey! | 06:07 |
@wiking | olinguyen, hihi | 06:08 |
@wiking | olinguyen, this is just a gentle reminder to keep your log (daily) updated. thnx! | 06:08 |
olinguyen | sure, will do! | 06:08 |
@wiking | thnx | 06:09 |
@wiking | mikeling, OOOOOOO | 06:11 |
@wiking | look at this :) | 06:13 |
@wiking | sent in private | 06:13 |
@wiking | mmm | 06:20 |
@wiking | so i'm now testing with Release :) | 06:20 |
-!- travis-ci [~travis-ci@ec2-54-196-109-91.compute-1.amazonaws.com] has joined #shogun | 06:22 | |
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/245205819 | 06:22 |
-!- travis-ci [~travis-ci@ec2-54-196-109-91.compute-1.amazonaws.com] has left #shogun [] | 06:22 | |
-!- travis-ci [~travis-ci@ec2-54-196-109-91.compute-1.amazonaws.com] has joined #shogun | 07:43 | |
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/245208167 | 07:43 |
-!- travis-ci [~travis-ci@ec2-54-196-109-91.compute-1.amazonaws.com] has left #shogun [] | 07:43 | |
-!- olinguyen [18303760@gateway/web/freenode/ip.24.48.55.96] has quit [Quit: Page closed] | 08:05 | |
-!- iglesiasg [~iglesiasg@217.119.234.214] has joined #shogun | 09:13 | |
-!- mode/#shogun [+o iglesiasg] by ChanServ | 09:13 | |
-!- geektoni [c1cdd253@gateway/web/freenode/ip.193.205.210.83] has joined #shogun | 09:31 | |
micmn | wiking: ping | 09:46 |
-!- TingMiao [uid229534@gateway/web/irccloud.com/x-lgghrupggtdqrypi] has joined #shogun | 10:08 | |
@wiking | micmn, pong | 11:02 |
@wiking | sorry | 11:02 |
@wiking | was away | 11:02 |
micmn | np, some weird things happening with benchmarking scripts + eigen I think | 11:03 |
micmn | I'll paste my journal update | 11:04 |
micmn | Benchmark script for (MC)LDA (just a trivial conversion from QDA’s script), but got stuck since Eigen hangs on a matrix product (has to do with multithreading, endless loop on this line: https://bitbucket.org/eigen/eigen/annotate/0cb43994733f413565eb6dbe1495d5ec2694436f/Eigen/src/Core/products/GeneralMatrixMatrix.h?at=default&fileviewer=file-view-default#GeneralMatrixMatrix.h-127). This happens with: python interface | 11:04 |
micmn | + second execution of MCLDA.train() (on two different instances). | 11:04 |
@wiking | lemme check | 11:14 |
@wiking | what's your benchmark script? | 11:14 |
micmn | https://gist.github.com/micmn/7d471341bf2ffd787930035bfcd1dd0c | 11:16 |
@wiking | micmn, is this gonna be part of mlpack's benchmarking fw? | 11:17 |
micmn | what do you mean? | 11:18 |
@wiking | micmn, whatever benchmarking you do | 11:18 |
@wiking | it doesn't make sense to make some custom solution | 11:18 |
@wiking | i'm fine if you wanna do something quick | 11:18 |
@wiking | but in the long run | 11:18 |
micmn | oh yes | 11:18 |
@wiking | anything related to benchmarking | 11:18 |
@wiking | would be great | 11:18 |
@wiking | that it becomes part of https://github.com/mlpack/benchmarks | 11:19 |
micmn | it's a mlpack script | 11:19 |
@wiking | cool | 11:19 |
@wiking | ok | 11:19 |
@wiking | so there's gonna be a PR for this in mlpack's benchmarking | 11:19 |
micmn | yep | 11:19 |
@wiking | k | 11:20 |
@wiking | mmm | 11:20 |
@wiking | so we have a race condition? | 11:20 |
micmn | not sure what's going on since we don't have multiple MCLDA instances in different threads | 11:21 |
micmn | but when the scripts calls MCLDA.train() for the second time eigen hangs on a matrix product | 11:22 |
@wiking | mmm | 11:22 |
@wiking | have you tried reaching out to eigen developers? | 11:22 |
@wiking | but i reckon until this is not fixed in eigen | 11:22 |
@wiking | we need to guard this from shogun ;P | 11:23 |
@wiking | we already have some such things in shogun | 11:23 |
@wiking | where based on eigen's version there are some weird workarounds within shogun | 11:23 |
micmn | I'll try to make a minimal example and reach to the developers | 11:24 |
@wiking | they are quite responsive | 11:24 |
@wiking | even on #eigen | 11:24 |
@wiking | they are all CET timezone | 11:24 |
micmn | good to know | 11:25 |
@wiking | but yeah here's an example | 11:25 |
@wiking | EIGEN_WITH_OPERATOR_BUG | 11:25 |
@wiking | or the other macro is | 11:25 |
@wiking | EIGEN_WITH_TRANSPOSITION_BUG | 11:25 |
@wiking | both defined in src/shogun/mathematics/eigen3.h | 11:25 |
@wiking | so there are workarounds for this already | 11:26 |
@wiking | if this is really a bug in eigen | 11:26 |
@wiking | then we need to make sure that it's gonna get fixed in eigen | 11:27 |
@wiking | but till then have a workaround in shogun for i | 11:27 |
@wiking | *it | 11:27 |
geektoni | ping wiking | 11:27 |
@wiking | pong | 11:28 |
@wiking | yes | 11:28 |
@wiking | you need merging | 11:28 |
@wiking | :) | 11:28 |
@wiking | lemme go through the prs | 11:28 |
geektoni | yeah exactly ;) | 11:28 |
@wiking | ok i can merge w/o problem the docker thingy | 11:28 |
@wiking | boom | 11:28 |
@wiking | heheh geektoni on the end of this story | 11:29 |
@wiking | you will own all the lines | 11:29 |
@wiking | in shogun | 11:29 |
@wiking | :D | 11:29 |
geektoni | if there will be an end ;) | 11:29 |
geektoni | wiking: mmh, Github updates are not sent here anymore? Were they too verbose? ;) | 11:31 |
@wiking | mmm | 11:32 |
@wiking | lemme dunno wtf happened | 11:32 |
@wiking | lemme check | 11:32 |
@wiking | i've upgraded sukey's system on the weekend | 11:32 |
-!- sukey [~nodebot@ks312251.kimsufi.com] has quit [Remote host closed the connection] | 11:33 | |
geektoni | ahah, I though it was done on purpose ;) | 11:33 |
@wiking | noup | 11:34 |
-!- sukey [~nodebot@ks312251.kimsufi.com] has joined #shogun | 11:37 | |
-!- mode/#shogun [+o sukey] by ChanServ | 11:38 | |
@wiking | mmm | 11:39 |
@wiking | sukey, flip | 11:39 |
@sukey | (ノಥ益ಥ)ノ ┻━┻ | 11:39 |
@wiking | sukey, flip | 11:39 |
@sukey | ┬─┬ ノ( ゜-゜ノ) | 11:39 |
@wiking | fuck | 11:39 |
-!- sukey [~nodebot@ks312251.kimsufi.com] has quit [Remote host closed the connection] | 11:40 | |
-!- sukey [~nodebot@ks312251.kimsufi.com] has joined #shogun | 11:41 | |
-!- mode/#shogun [+o sukey] by ChanServ | 11:41 | |
@wiking | sukey, flip | 11:41 |
@sukey | (/¯◡ ‿ ◡)/¯ ~ ┻━┻ | 11:41 |
@wiking | boom | 11:41 |
@wiking | no boom? :) | 11:41 |
geektoni | does it work? | 11:42 |
@wiking | geektoni, now it should | 11:42 |
geektoni | great :D | 11:42 |
@sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/3855 merged by vigsterkr | 11:43 |
@wiking | ok | 11:43 |
@wiking | :) | 11:43 |
@wiking | as you can see it works | 11:43 |
geektoni | \o/ | 11:44 |
@wiking | mmm | 11:46 |
@wiking | m_sigint_observable.connect(); | 11:46 |
@wiking | so you are thinking that in case of | 11:46 |
@wiking | any signal you connect to the observable | 11:47 |
@wiking | and that triggers the stopping? | 11:47 |
@wiking | or i mean i'm not so sure how do you use here the subscriber/observables | 11:47 |
geektoni | basically | 11:47 |
geektoni | there are two observable, one for SIGINT and one for SIGURG signal | 11:47 |
geektoni | an algorithm subscribe to each of them | 11:48 |
geektoni | and when, for instance, CTRL+C is pressed, the handler will call the connect() method on one of these observable to notify all algorithm about what to do. | 11:49 |
@wiking | yeah | 11:49 |
@wiking | i'm just wondering | 11:49 |
@wiking | that in case you use csignal | 11:49 |
@wiking | and get any of the signals... shouldn't it just do an onNext(signalType) on an observable | 11:49 |
@wiking | and the observer/subscriber would just receive it onNext | 11:50 |
@wiking | and that's all | 11:50 |
@wiking | so say | 11:50 |
@wiking | machine subscribes to both of the observables | 11:50 |
@wiking | or even it can be one | 11:51 |
@wiking | as you wish | 11:51 |
@wiking | and then when the event happens | 11:51 |
@wiking | it'll get the onNext(signalType) | 11:51 |
@wiking | see what i mean? | 11:52 |
geektoni | mmm | 11:53 |
geektoni | I'm trying to figure out the on_next method | 11:53 |
@wiking | well i mean | 11:53 |
@wiking | you know in case of observables | 11:53 |
@wiking | you have | 11:53 |
@wiking | onNext/onError/onComplete | 11:53 |
@wiking | you can name those different | 11:53 |
@wiking | but that's the logic | 11:53 |
geektoni | yeah, but they're methods which are called when the observable emits an item | 11:54 |
@wiking | yes | 11:54 |
geektoni | ok, so, if I understood correctly, we need a subject object instead of a pure observable | 11:55 |
geektoni | https://github.com/Reactive-Extensions/RxCpp/issues/265 | 11:55 |
geektoni | that if we want to implement what you said | 11:56 |
@wiking | mmm | 11:58 |
@wiking | well | 11:58 |
@wiking | yeah either that | 11:58 |
@wiking | the other option i had in mind | 11:58 |
@wiking | is rather stupid | 11:58 |
@wiking | ;) | 11:58 |
geektoni | well, what is? ;) | 11:59 |
@wiking | nothin | 12:00 |
@wiking | as it is a wasteful way to do this | 12:00 |
geektoni | kk | 12:01 |
geektoni | I think it's worth to switch to "subject" instead of pure observable. | 12:02 |
geektoni | it'll make the code more straightforward. | 12:02 |
@wiking | i mean i'm now thinking | 12:03 |
@wiking | that isn't it maybe an overkill | 12:04 |
@wiking | to use for this rx? | 12:04 |
geektoni | well | 12:04 |
geektoni | it's a bit an overkill | 12:04 |
geektoni | because | 12:04 |
geektoni | rxcpp is usually used for other purposes | 12:05 |
geektoni | but, on the other hand | 12:05 |
geektoni | it may come handy in the future | 12:05 |
geektoni | *become | 12:05 |
-!- geektoni [c1cdd253@gateway/web/freenode/ip.193.205.210.83] has quit [Quit: Page closed] | 12:06 | |
@wiking | lisitsyn, ping | 12:15 |
micmn | wiking: I have isolated the problem, check https://gist.github.com/micmn/0301a7fe8833842c5ad94a16c62ba33f | 12:17 |
@wiking | hohohoooooooooo | 12:17 |
@wiking | fucking python multiprocess | 12:17 |
@wiking | :) | 12:17 |
@wiking | have you tried the smae | 12:17 |
@wiking | with c++? | 12:17 |
micmn | no, I guess it's the next step :p | 12:18 |
@wiking | plz do | 12:18 |
@wiking | as python's multiprocess is loco | 12:18 |
-!- geektoni [~Mutter@62.18.94.171] has joined #shogun | 12:19 | |
micmn | it's what mlpack's benchmarks use :( | 12:19 |
geektoni | wiking: sorry, I will be mobile for a while | 12:19 |
@wiking | geektoni, that's fine | 12:19 |
@wiking | micmn, yeah in know :) plz just try the same thing | 12:20 |
@wiking | with c++ | 12:20 |
@wiking | and if it is still failing | 12:20 |
@wiking | then we can be sure | 12:20 |
@wiking | that it's not a python GIL story | 12:20 |
@wiking | if it fails | 12:20 |
@wiking | then we need a workaround for the python's GIL | 12:20 |
@wiking | :) | 12:20 |
@wiking | geektoni, so in case of connect observable | 12:22 |
@wiking | you just connect to the machine right? | 12:22 |
@wiking | in case there's a ping | 12:22 |
@wiking | i mean signal | 12:22 |
@wiking | and that triggers a change in the boolean? | 12:22 |
geektoni | The machine connects to the observable | 12:23 |
geektoni | And yes, when the signal arrives there is a change in the Boolean | 12:23 |
@wiking | mmm | 12:24 |
@wiking | you dont have this code | 12:24 |
@wiking | right in the pr | 12:24 |
geektoni | Nope | 12:24 |
geektoni | Because it will be another or | 12:24 |
geektoni | *Pr | 12:24 |
geektoni | But | 12:24 |
geektoni | I've already written the CMachine code | 12:25 |
@wiking | do you have it somewhere? :) | 12:25 |
geektoni | Let me link you the branch | 12:25 |
@wiking | ok | 12:25 |
geektoni | https://github.com/geektoni/shogun/commit/6fd340d48695531fd1be3844657e6597e60784d4 | 12:26 |
geektoni | The idea is that the machine has to be linked manually to the signal handler. That's permit to do much complex things without worrying about corner cases | 12:27 |
@wiking | m_cancel_computation | 12:28 |
@wiking | this is actually not the best naming | 12:28 |
@wiking | for a variable | 12:28 |
@wiking | that says that it should do premature stopping | 12:29 |
@wiking | because you dont actually cancel the computation | 12:29 |
@wiking | just prematurely stopping it | 12:29 |
@wiking | but on the other hand | 12:29 |
@wiking | lets talk abou tth ecase | 12:29 |
@wiking | of this | 12:29 |
@wiking | :) | 12:29 |
@wiking | so maybe we can figure out why we want to have still ex | 12:29 |
@wiking | *rx | 12:29 |
@wiking | let's say i wanna have an option | 12:29 |
@wiking | to pause computation | 12:29 |
@wiking | of a model | 12:30 |
@wiking | because i wanna do some other stuff :) | 12:30 |
@wiking | how would we do this | 12:30 |
@wiking | (and we add a new signal or whatever fuck to this to represent it) | 12:30 |
geektoni | Pause and the restart or just pause? :) | 12:31 |
geektoni | *then | 12:31 |
@wiking | well have a flag that is | 12:31 |
@wiking | pause | 12:31 |
@wiking | if it's true then you flip a mutex | 12:32 |
@wiking | or somethign | 12:32 |
@wiking | so that you dont burn cpu time with while(1) {} | 12:32 |
geektoni | Well | 12:32 |
geektoni | The code do this actually | 12:32 |
geektoni | Let me link you something | 12:33 |
@wiking | geektoni, and the other thing is m_cancel_computation should be atomic_flag | 12:33 |
@wiking | or at least std::atomic<bool> | 12:33 |
geektoni | https://gist.github.com/geektoni/1afd2daf69a813de64252a296997a8ea | 12:34 |
geektoni | Dou you mean something like this? ^ | 12:34 |
@wiking | loop = train_machine | 12:34 |
@wiking | right? | 12:34 |
geektoni | Yeah | 12:35 |
@wiking | cancel_computation => will just pop out of the train_machine loop | 12:35 |
@wiking | but what i wanted is | 12:35 |
@wiking | just to be able to say | 12:35 |
@wiking | stop calculation | 12:35 |
@wiking | i mean | 12:35 |
@wiking | pause | 12:35 |
@wiking | and be able to resume | 12:35 |
@wiking | of course this is hard | 12:35 |
@wiking | because you cannot have a flag for this | 12:35 |
geektoni | Mmmh | 12:36 |
geektoni | Pause and resume will be hard | 12:36 |
@wiking | yes | 12:36 |
@wiking | i mean we can still do it | 12:36 |
@wiking | have the framework for it | 12:36 |
@wiking | and tell to the algo develoepr | 12:36 |
@wiking | that he has to do the following things | 12:36 |
@wiking | in order to be able to support it | 12:36 |
@wiking | just as in case of cancel computation | 12:36 |
@wiking | the only difference is that it's a 'bit' harder | 12:36 |
@wiking | or not that straightforward | 12:37 |
@wiking | i would say | 12:37 |
@wiking | to add something like | 12:37 |
geektoni | Could you make an example of such a situation? :) | 12:38 |
geektoni | Just to be sure to have understood :P | 12:38 |
@wiking | if (m_pause_computation.load()) { while(m_pause_computation.load()); } | 12:39 |
@wiking | this is the very stupid version of it | 12:39 |
@wiking | and this you put as the first line | 12:39 |
@wiking | after | 12:39 |
@wiking | while(true && !cancel_computation()) | 12:39 |
@wiking | in your example | 12:39 |
@wiking | so basically until m_pause_computation true you dont do anything in the algo | 12:40 |
@wiking | i.e. hang the computation | 12:40 |
@wiking | this way you can observe the states of the algo | 12:40 |
@wiking | or even update some variables | 12:40 |
@wiking | and then do | 12:40 |
@wiking | m_pause_computation = false | 12:40 |
geektoni | Ahhn okay, got it | 12:40 |
@wiking | then the algo would resume | 12:40 |
@wiking | see what i mean? | 12:41 |
geektoni | but | 12:41 |
geektoni | we need to tell the developer to code like this to implement this behavior | 12:41 |
@wiking | yes | 12:41 |
@wiking | but the same is true | 12:41 |
@wiking | for | 12:41 |
@wiking | cancel_computation() | 12:41 |
@wiking | no? | 12:41 |
geektoni | yes yeas, it needs to be called to cancel the computation. | 12:42 |
@wiking | btw the very reason i wanted to introduce rxcpp in shogun is that CMachine would be an observable | 12:42 |
@wiking | and so all the parameters of a CMachine | 12:42 |
@wiking | could be observed | 12:42 |
@wiking | and they would be emitted | 12:42 |
@wiking | so an observer | 12:42 |
@wiking | geektoni, so somehow you can trace the evolution of the parameters | 12:42 |
@wiking | of a machine | 12:42 |
geektoni | I see | 12:43 |
micmn | wiking: same with fork :( https://gist.github.com/micmn/f1044ef5d828b6bd84ef35c6cb3dab75 | 12:44 |
@wiking | geektoni, yes it's true that the cancel computation implementation is much easier to add than the pause-resume | 12:44 |
@wiking | but still it's not an automatic feature of a new algo | 12:44 |
@wiking | an algo implementer has to take care of it | 12:44 |
@wiking | but of course one is easier than the other | 12:45 |
geektoni | Yeah sure. I'll think how to add that. | 12:45 |
@wiking | ok so but wait | 12:45 |
@wiking | so the reason i came up with this stupid idea | 12:45 |
@wiking | is to see | 12:45 |
@wiking | so adding a new functionality/sginal like this | 12:46 |
@wiking | would mean that we need to add a new observable | 12:46 |
@wiking | right? | 12:46 |
@wiking | and i'm just thiking | 12:46 |
@wiking | that if we keep extending | 12:46 |
@wiking | allt hese little shit | 12:46 |
@wiking | would that actually make a case for rxcpp | 12:47 |
@wiking | and one more thing owuld be good to see | 12:47 |
@wiking | how this would get affected | 12:47 |
@wiking | by trying to make the params of a CMachine observable | 12:47 |
@wiking | :) | 12:47 |
@wiking | micmn, ok | 12:47 |
-!- geektoni [~Mutter@62.18.94.171] has quit [Quit: Mutter: www.mutterirc.com] | 12:47 | |
@wiking | so it's eigne shit | 12:47 |
@wiking | lemme actually compile and run this code | 12:47 |
-!- geektoni [~geektoni@93-34-234-212.ip52.fastwebnet.it] has joined #shogun | 12:48 | |
@wiking | geektoni, mutter :) | 12:48 |
geektoni | No more mobile ;) | 12:48 |
geektoni | so | 12:48 |
geektoni | I think we won't need to add a new observable | 12:49 |
geektoni | because | 12:49 |
geektoni | depending on what the user select | 12:49 |
geektoni | we could add different action inside CSignal::handler | 12:49 |
@wiking | micmn, ever hanging right? | 12:49 |
micmn | yeah | 12:49 |
@wiking | lemme see | 12:50 |
@wiking | mmm but waitpid | 12:50 |
@wiking | i dont get wtf | 12:50 |
@wiking | do you see where is it hanging | 12:50 |
micmn | child's train() | 12:50 |
@wiking | whhyyyyyyyyyyy | 12:51 |
geektoni | wiking: I'll be afk for a few minutes | 12:51 |
geektoni | I need to eat LOL | 12:52 |
@wiking | geektoni, but i mean observable in CSignal | 12:52 |
micmn | it hangs on a matrix multiplication | 12:53 |
micmn | https://gist.github.com/micmn/6bc2304fb5ee7b6b628ff242449474b0 | 12:53 |
@wiking | lol | 12:53 |
@wiking | mmm | 12:55 |
@wiking | woaaaaah | 12:55 |
@wiking | funny | 12:55 |
@wiking | if you compile shogun with Debug mode | 12:55 |
@wiking | super slow everything | 12:55 |
@wiking | :) | 12:55 |
@wiking | i mean yeah expected | 12:55 |
@wiking | but not this much | 12:55 |
@wiking | geektoni, ping me when u r back | 12:57 |
@wiking | micmn, but only when you fork? | 12:58 |
@wiking | i.e. if you do 2 train sequentially? | 12:58 |
@wiking | w/o fork? | 12:58 |
micmn | that works | 12:58 |
micmn | the problem is 1) train 2) fork 3) train on child | 12:58 |
micmn | because mlpack does that | 12:59 |
@wiking | k | 13:00 |
@wiking | weird | 13:00 |
@wiking | i dont understand :O | 13:00 |
@wiking | let's go to #eigen | 13:00 |
micmn | yeah :| | 13:00 |
@wiking | micmn, seems ChriSopht is not around :( | 13:30 |
@wiking | micmn, mmm the best would be of course | 13:30 |
@wiking | to do this with eigen code :) | 13:30 |
@wiking | and the we could fire a bug | 13:30 |
@wiking | micmn, what's your eigen version? | 13:30 |
@wiking | ii libeigen3-dev 3.2.2-3 all lightweight C++ template library for linear algebra | 13:30 |
@wiking | this is mine where i've observed the hanging | 13:31 |
micmn | the one that is bundled with shogun | 13:31 |
@wiking | oh ok | 13:31 |
@wiking | could you just for the sanity check | 13:31 |
@wiking | change the eigen version in the bundling | 13:31 |
@wiking | to the latest stable | 13:31 |
micmn | but I tried with newer versions | 13:31 |
@wiking | 3.3.4 | 13:31 |
@wiking | oh ok | 13:31 |
@wiking | so any 3.3.x has the same | 13:31 |
@wiking | thing? | 13:31 |
micmn | it doesn't hangs on the same line but always on gemm | 13:32 |
@wiking | yep | 13:32 |
@wiking | but it's a 3.3.x that you've tried | 13:32 |
@wiking | or still a 3.2.x? | 13:32 |
micmn | yep | 13:32 |
micmn | 3.3 | 13:32 |
@wiking | ok cool | 13:33 |
@wiking | so i think it's still an existing problem :) | 13:33 |
micmn | 3.3.4 | 13:33 |
@wiking | but i wonder wtf | 13:33 |
@wiking | i mean there's 0 multithreading going on here | 13:33 |
@wiking | you just simply fork | 13:33 |
@wiking | another process | 13:33 |
micmn | yeah doesn't make sense | 13:33 |
@wiking | this is super weird | 13:33 |
@wiking | as i dont even see what could hold anything | 13:34 |
@wiking | that interferes with anything | 13:34 |
micmn | shared libs? | 13:34 |
@wiking | mmmm yeah but | 13:34 |
micmn | how can I disable openmp? | 13:38 |
@wiking | micmn, try OPENMP_NUM_THREADS=1 | 13:39 |
@wiking | is eigen using openmp? | 13:39 |
micmn | yes | 13:39 |
@wiking | LOL | 13:40 |
@wiking | wiking@hedonismbot:~/shogun/build$ OMP_NUM_THREADS=1 LD_LIBRARY_PATH=./src/shogun/ ./a.out | 13:40 |
@wiking | 3145: Training... | 13:40 |
@wiking | 3145: done. | 13:40 |
@wiking | 3145: Spawning process... | 13:40 |
@wiking | 3145: Joining ... | 13:40 |
@wiking | 3145: Training... | 13:40 |
@wiking | 3145: done. | 13:40 |
@wiking | 3145: done. | 13:40 |
@wiking | :) | 13:40 |
@wiking | micmn, ^ | 13:41 |
micmn | mmm why is it the same process | 13:41 |
@wiking | ah ok oh | 13:41 |
@wiking | ok | 13:41 |
@wiking | sorry | 13:41 |
@wiking | that's my bad | 13:41 |
@wiking | :D | 13:41 |
micmn | XD | 13:41 |
@wiking | good catch | 13:41 |
@wiking | was testing | 13:41 |
@wiking | what happens w/o fork | 13:42 |
@wiking | ok | 13:42 |
@wiking | still hangs for me | 13:42 |
micmn | yeah me too | 13:43 |
@wiking | still | 13:44 |
@wiking | this doesn't make sense | 13:44 |
@wiking | what would cause the hang ?:) | 13:44 |
@wiking | LOLFACE | 13:44 |
@wiking | wiking@hedonismbot:~/shogun/build$ OMP_THREAD_LIMIT=1 OMP_NUM_THREADS=1 LD_LIBRARY_PATH=./src/shogun/ ./a.out | 13:44 |
@wiking | 3293: Training... | 13:44 |
@wiking | 3293: done. | 13:44 |
@wiking | 3293: Spawning process... | 13:44 |
@wiking | 3293: Joining ... | 13:44 |
@wiking | 3294: Training... | 13:44 |
@wiking | 3294: done. | 13:44 |
@wiking | 3293: done. | 13:44 |
@wiking | micmn, ^ | 13:44 |
micmn | wow | 13:44 |
micmn | works indeed | 13:45 |
@wiking | the problem is | 13:52 |
@wiking | that even if we find out the root cause | 13:52 |
@wiking | i dont see how one could circumvent this | 13:53 |
@wiking | from shogun | 13:53 |
@iglesiasg | TingMiao: nice job with the blog post, let me know if any of the comments does not make sense :D | 13:59 |
TingMiao | Thanks! | 14:00 |
@wiking | where's the post | 14:09 |
@wiking | vafanculo | 14:09 |
geektoni | wiking: I'm back | 14:12 |
@wiking | geektoni, pong | 14:12 |
@wiking | what did u eat? | 14:13 |
geektoni | easy answer to this one ;) | 14:13 |
@wiking | ? | 14:13 |
geektoni | I'm italian | 14:14 |
geektoni | so | 14:14 |
@wiking | yeah but still | 14:14 |
@wiking | which pasta? | 14:14 |
@wiking | what type? | 14:14 |
@wiking | with what sauce? | 14:14 |
geektoni | ahahaha | 14:14 |
@wiking | comeone | 14:14 |
@wiking | *on | 14:14 |
geektoni | yeah, with meat sauce | 14:14 |
geektoni | standard one | 14:14 |
@wiking | good | 14:15 |
@wiking | with what? | 14:15 |
@wiking | penne? | 14:15 |
geektoni | yeah, penne ;) | 14:15 |
@wiking | good | 14:15 |
@wiking | ok so | 14:15 |
geektoni | We were talking about pausing algorithms | 14:17 |
@wiking | yeah | 14:18 |
@wiking | as well as monitoring | 14:18 |
@wiking | parameters | 14:19 |
@wiking | those are two different things | 14:19 |
@wiking | but in case of rx design | 14:19 |
@wiking | they might be relevant | 14:19 |
@wiking | geektoni, i mean one way or another | 14:19 |
@wiking | we gonna have a parameter map right? | 14:20 |
@wiking | oldschool way we have m_parameters | 14:20 |
@wiking | tags is another story | 14:20 |
@wiking | but in any ways | 14:20 |
@wiking | one thing that could be great is | 14:20 |
lisitsyn | oh wuck | 14:22 |
lisitsyn | messages everywhere | 14:22 |
geektoni | wiking: ok, so, I would say I'll focus on finishing premature stopping/pausing first | 14:26 |
geektoni | then I'll move on observable parameters if it'll be the case | 14:26 |
@wiking | geektoni, yeye | 14:30 |
@wiking | that i get | 14:30 |
@wiking | but | 14:30 |
@wiking | i'm now a bit scared | 14:31 |
@wiking | to just say | 14:31 |
@wiking | eyeyey fck it | 14:31 |
@wiking | go rx | 14:31 |
@wiking | whatever | 14:31 |
@wiking | :) | 14:31 |
geektoni | yes, I understood :P I mean, since it is now an hard requirement, it has to be useful. | 14:31 |
geektoni | buut, regarding observable parameters, as you said, shouldn't we wait until we have Tags in place? | 14:33 |
geektoni | because | 14:33 |
geektoni | the current Parameter | 14:33 |
geektoni | will be thrown away soon (I imagine) | 14:33 |
@wiking | yeye | 14:37 |
@wiking | nono | 14:37 |
@wiking | it's fine | 14:37 |
@wiking | we are just discussing here concepts | 14:37 |
@wiking | no matter what actual implementation you use | 14:37 |
@wiking | what you will have is | 14:37 |
@wiking | a map | 14:37 |
@wiking | where the params are set and stored | 14:37 |
@wiking | right? | 14:37 |
geektoni | yeah, sure | 14:38 |
@wiking | so what i mean | 14:38 |
@wiking | that in this case | 14:38 |
@wiking | say we do a simple trick that | 14:38 |
@wiking | you can subscribe to CMachine | 14:38 |
@wiking | parameters | 14:38 |
@wiking | and once eombody sets | 14:38 |
@wiking | 'somebody' = something | 14:38 |
@wiking | set's a parameter in the param map | 14:38 |
@wiking | you do an onNext | 14:38 |
@wiking | or? | 14:38 |
@wiking | i mean i'm just tyring to figure out what would be the nicest way | 14:39 |
@wiking | and to include rx here | 14:39 |
geektoni | mmh | 14:39 |
geektoni | ideally, we could make the map an observable, and every time somebody updates a value then we output the Tag/Parameter which was modified. Of course, the map observable will have to call the on_next()/on_completed() methods of the subscribers. | 14:42 |
micmn | wiking: second post https://software.intel.com/en-us/forums/intel-c-compiler/topic/540100 | 14:43 |
@wiking | When using fork, you must do so prior to issuing any OpenMP directives or omp_... library calls. | 14:47 |
micmn | https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58378 | 14:47 |
@wiking | micmn, eeh | 14:53 |
@wiking | micmn, imo then this is a feature :) | 15:07 |
micmn | yeah :D | 15:07 |
micmn | just wondering why it didn't come up before | 15:12 |
micmn | mclda it's not the only algorithm that both uses eigen and it's tested in that way | 15:12 |
@wiking | :) | 15:19 |
@wiking | geektoni, mmm but | 15:25 |
@wiking | would then actually | 15:25 |
@wiking | CMachine be an observable? | 15:25 |
@wiking | Observable<Any> | 15:25 |
@wiking | :) | 15:25 |
lisitsyn | whoa | 15:25 |
lisitsyn | observable! | 15:25 |
@wiking | lisitsyn, bearhunting | 15:25 |
lisitsyn | things unfold | 15:25 |
geektoni | wiking: what do you mean? | 15:27 |
@wiking | i mean | 15:27 |
@wiking | what i want is that i can subscribe to a machine | 15:28 |
@wiking | and that would emit | 15:28 |
@wiking | parameters | 15:28 |
@wiking | :) | 15:28 |
lisitsyn | parameters? | 15:28 |
@wiking | yes | 15:28 |
@wiking | parameters | 15:28 |
lisitsyn | changes of parameters? | 15:28 |
@wiking | all of them | 15:28 |
@wiking | yes | 15:28 |
lisitsyn | sounds good to me | 15:28 |
lisitsyn | :P | 15:28 |
@wiking | lisitsyn, :D | 15:28 |
@wiking | geektoni, so we would have | 15:28 |
@wiking | Chmachine::get_parameters_observable() ? | 15:28 |
@wiking | or what? | 15:29 |
geektoni | yeah, that could be an option | 15:29 |
geektoni | but | 15:29 |
@wiking | where CMachine would have a subject | 15:29 |
@wiking | that would be pushed from parameter changes | 15:29 |
@wiking | ? | 15:29 |
@wiking | or what? | 15:29 |
@wiking | :) | 15:29 |
@wiking | no BUT | 15:29 |
@wiking | :D | 15:29 |
geektoni | CMachine is not the observable | 15:29 |
@wiking | only solutions | 15:29 |
@wiking | geektoni, i know | 15:29 |
geektoni | kk | 15:29 |
@wiking | i'm just trying to come up with something | 15:29 |
@wiking | we can make it an observable | 15:29 |
@wiking | but we can just add a property | 15:30 |
@wiking | which is a subject | 15:30 |
@wiking | only question is | 15:30 |
@wiking | that how one could make this automatic | 15:30 |
@wiking | that CMachine's params | 15:30 |
@wiking | coudl be emitted | 15:30 |
@wiking | anyhow | 15:30 |
@wiking | i'm just high level talking about this | 15:30 |
@wiking | because currently | 15:30 |
@wiking | rxcpp is a bit of an overkill | 15:31 |
@wiking | imo | 15:31 |
geektoni | mmh | 15:31 |
geektoni | because, I was thinking about extending Tags such that every time sets() is called then the observable will send some signals. | 15:33 |
geektoni | but I don't know how to do it in the general case | 15:33 |
geektoni | I mean | 15:33 |
geektoni | let's say you have a variable called m_something, and you modify it inside the algorithm's code, then you should alert the observable that m_something has changed | 15:34 |
@wiking | `yes | 15:40 |
@wiking | and it's fine | 15:40 |
@wiking | that you only do that | 15:40 |
@wiking | when you do a parameter.set() | 15:40 |
@wiking | or of course | 15:41 |
@wiking | if we are super haxors | 15:41 |
@wiking | we'll wrap variables into classes | 15:41 |
@wiking | because you wanna do some autodiff YOLO shit | 15:42 |
@wiking | and in this case you could override operator= | 15:42 |
@wiking | :) | 15:42 |
@wiking | geektoni, see what i mean? | 15:42 |
@wiking | lisitsyn, ^ | 15:43 |
geektoni | yes, yes, I see. | 15:43 |
lisitsyn | uhm | 15:44 |
lisitsyn | wiking: sorry what exactly :) | 15:44 |
@wiking | lisitsyn, ok so | 15:45 |
@wiking | say we start having magical parameters | 15:45 |
@wiking | remember of | 15:46 |
lisitsyn | aha | 15:46 |
@wiking | DoubleWithInterval | 15:46 |
lisitsyn | oh super cool | 15:46 |
lisitsyn | yes | 15:46 |
@wiking | so what if we could override there | 15:46 |
@wiking | operator= | 15:46 |
@wiking | and then every of these fuckers | 15:46 |
@wiking | and they would be observable | 15:46 |
@wiking | and once you add it to a the tags | 15:46 |
@wiking | they would get subscribed | 15:47 |
lisitsyn | but operator= in swig? | 15:47 |
@wiking | to the changed observable | 15:47 |
@wiking | lisitsyn, mmm life is hsit :) | 15:47 |
@wiking | lisitsyn, set/get :) | 15:47 |
lisitsyn | ok | 15:47 |
lisitsyn | svm.set("C", Range())? | 15:47 |
@wiking | lisitsyn, http://www.swig.org/Doc3.0/SWIGPlus.html#SWIGPlus_nn28 | 15:48 |
lisitsyn | only python? | 15:48 |
@wiking | imo it's SWIG | 15:48 |
@wiking | i mean it doesnt's ay anywhere | 15:48 |
@wiking | that python only | 15:48 |
lisitsyn | no way to make it work in java I think | 15:48 |
@wiking | lisitsyn, yeah :) | 15:49 |
@wiking | lisitsyn, ok so | 15:50 |
@wiking | i mean then i'm just wondering | 15:50 |
@wiking | in long term again | 15:50 |
lisitsyn | aha | 15:50 |
@wiking | how would we be able to support | 15:50 |
@wiking | constrained parameters | 15:50 |
@wiking | ? | 15:51 |
@wiking | so for example that you can define an interval on which they are valid | 15:51 |
@wiking | + that it has a generator function | 15:51 |
@wiking | or just | 15:51 |
@wiking | isValid(value) | 15:51 |
lisitsyn | hmm | 15:52 |
lisitsyn | yes | 15:52 |
@wiking | so in this case | 15:52 |
@wiking | would we have some wrapper classes over primitive types? | 15:52 |
@wiking | and those would be passed to tags? | 15:52 |
lisitsyn | it's tough | 15:54 |
lisitsyn | no idea yeat | 15:54 |
lisitsyn | well | 15:54 |
lisitsyn | we should always treat parameters as something multiple | 15:54 |
@wiking | coz in that case | 15:55 |
@wiking | we could make the wrappers observable | 15:55 |
@wiking | and then those are to be subscribed | 15:55 |
@wiking | and merged into | 15:55 |
@wiking | a common observable | 15:55 |
@wiking | that later the user | 15:55 |
@wiking | can observe | 15:55 |
@wiking | i.e. have a full stream of parameter changes | 15:55 |
@wiking | while training | 15:55 |
@wiking | geektoni, anyhow | 15:57 |
@wiking | ok lets fucking d othis | 15:57 |
@wiking | we never finish anything otherwise | 15:57 |
@wiking | :) | 15:57 |
@wiking | what do i merge? :) | 15:57 |
lisitsyn | oh | 15:57 |
lisitsyn | ok I am too stupid to think that further | 15:58 |
@wiking | :) | 15:58 |
lisitsyn | I'd start with using tags yet | 15:58 |
@wiking | yeye | 15:58 |
@wiking | i mean tags is the way | 15:58 |
@wiking | and we can hook tehre | 15:58 |
@wiking | when it's .set() | 15:58 |
lisitsyn | yeah at least make everything use tags then we will see | 15:58 |
lisitsyn | yes | 15:58 |
geektoni | wiking: so, in my opinion, we could merge the two PRs as they are right now | 15:58 |
@wiking | geektoni, yeah lemme go through them again | 15:59 |
geektoni | after them I'll make a PR with the addtions to CMachine. | 16:00 |
geektoni | wiking: ah! One thing | 16:00 |
geektoni | OpenMP | 16:00 |
@wiking | who's thing | 16:00 |
@wiking | sukey, flip | 16:00 |
@sukey | (/¯◡ ‿ ◡)/¯ ~ ┻━┻ | 16:00 |
geektoni | lol | 16:00 |
geektoni | pretty accurate | 16:01 |
geektoni | It seems that it doesn't have a proper support for signal | 16:01 |
geektoni | but, it shouldn't be a problem | 16:01 |
geektoni | I mean POSIX signal in general | 16:02 |
@wiking | eh what do yo umean? | 16:02 |
geektoni | I mean | 16:02 |
geektoni | that if I'm running a for loop inside a #pragma, and I press CTRL+C, only one thread will be blocked | 16:02 |
geektoni | the others will continue happily | 16:03 |
geektoni | until the user decide what to do | 16:03 |
geektoni | but, as I said, it shouldn't be a problem | 16:03 |
@wiking | mmm | 16:03 |
@wiking | https://cdn.meme.am/cache/instances/folder193/400x/66401193.jpg | 16:04 |
-!- HeikoS [~heiko@host-92-0-178-129.as43234.net] has joined #shogun | 16:05 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 16:05 | |
geektoni | LOL | 16:05 |
@wiking | HeikoS san | 16:06 |
@wiking | aren't u sicko? | 16:06 |
@HeikoS | wiking: hello | 16:06 |
@HeikoS | yes I am | 16:06 |
@wiking | HeikoS, then sleep | 16:06 |
@HeikoS | but turned on computer | 16:06 |
@HeikoS | which had all the irc stuff on still ;) | 16:06 |
@wiking | geektoni, well i guess c'est la vie | 16:07 |
@wiking | we could play there with a semaphore :) | 16:07 |
@wiking | but yeah i mean | 16:07 |
@wiking | or we just kill them all? :) | 16:08 |
@wiking | kill it with fire! | 16:08 |
@wiking | laaaaaaaaaaaaalalallaa | 16:08 |
@wiking | sukey, flip | 16:08 |
@sukey | (ノ ゜Д゜)ノ ︵ ┻━┻ | 16:08 |
geektoni | wiking: this was a long day for you, wasn't it? ;) | 16:09 |
@wiking | geektoni, tell me about it :) | 16:09 |
geektoni | btw, if we use things like cancel_computation() or something similar, multi threaded programs are not a problem. | 16:10 |
geektoni | I mean | 16:13 |
geektoni | even if we are using multi threading | 16:14 |
geektoni | the signal handler will work and it will also stop the program as planned | 16:14 |
geektoni | for example | 16:14 |
geektoni | https://pastebin.com/V5FMVZLK | 16:14 |
geektoni | works perfectly even if it is multithreaded | 16:14 |
geektoni | wiking: ^ | 16:14 |
@wiking | mmmhmmm | 16:15 |
@wiking | so this is more like converging | 16:15 |
@wiking | to the story | 16:15 |
@wiking | of | 16:15 |
@wiking | pause-resume functionality | 16:16 |
@wiking | right? | 16:16 |
@wiking | because that'd be as well not part of the loop | 16:16 |
@wiking | but rather withing the loop | 16:16 |
@wiking | *within | 16:16 |
@wiking | anyhow | 16:16 |
@wiking | pr review time | 16:16 |
@wiking | mmm btw docker image should be ready | 16:16 |
@wiking | so i'll kick off a new build | 16:16 |
@wiking | see if that works | 16:16 |
@wiking | on travis | 16:16 |
geektoni | thanks! | 16:17 |
geektoni | it should :) | 16:17 |
@wiking | wtf | 16:18 |
@wiking | 16:18 | |
@wiking | 16:18 | |
@wiking | This job ran on our Trusty, sudo: required environment which will be updated on Wednesday, June 21st. Please add group: edge to your .travis.yml file to try the new images and check our blog for more details about this update. | 16:18 |
@wiking | :) | 16:18 |
@wiking | anybody knows something about this shit? | 16:18 |
geektoni | err nope :P | 16:20 |
@wiking | HeikoS, what's our name officially/ | 16:21 |
@wiking | in gsoc? | 16:21 |
@wiking | geektoni, running https://travis-ci.org/shogun-toolbox/shogun/jobs/244688885 | 16:31 |
geektoni | yeah, I saw it ;) | 16:33 |
CaBa | wiking: you pinged me a year ago or so? ;) | 16:34 |
@wiking | CaBa, yes | 16:34 |
@wiking | CaBa, have you used CommWordStringKernel? | 16:34 |
CaBa | pretty sure i have at some point, yes | 16:35 |
@wiking | ok so it's not strictly related | 16:35 |
@wiking | but do you know an easy way | 16:35 |
@wiking | a mapped stringfeature back to string space? | 16:36 |
@wiking | from uint16? | 16:36 |
@wiking | feats_train.obtain_from_char | 16:36 |
@wiking | that will convert stringfeatures | 16:36 |
@wiking | based on an alphabet | 16:36 |
@wiking | right? | 16:36 |
CaBa | hmmm... | 16:37 |
@wiking | no? | 16:37 |
@wiking | :) | 16:37 |
CaBa | let me boot that part of my brain :D | 16:38 |
CaBa | where is that snippet from? | 16:38 |
@wiking | examples/undocumented/python_modular/kernel_comm_word_string_modular.py | 16:38 |
@wiking | but i mean this is in a way unrelated to CommWordStringKernel | 16:39 |
@wiking | its' more about stringfeatures | 16:39 |
CaBa | yeah i know, just a sec | 16:39 |
@sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/3812 synchronized by MikeLing | 16:44 |
@wiking | mmmm | 16:44 |
CaBa | wiking: so i've never done it in the other direction. for a moment i wasn't sure whether it's actually possible, i thought the conversion might actually be lossy, but apparently it's not. should be possible to reverse, but i don't know if the code is there | 16:44 |
@wiking | travis is gone | 16:44 |
CaBa | should i run over there and yell? :P | 16:45 |
CaBa | actually works fine here | 16:45 |
@wiking | :) | 16:46 |
@wiking | https://www.nytimes.com/2017/06/21/technology/uber-ceo-travis-kalanick.html?_r=0 | 16:46 |
@wiking | i meant | 16:46 |
@wiking | :> | 16:46 |
CaBa | ah lol | 16:46 |
CaBa | well, big asshole afaiu... | 16:47 |
@wiking | :) | 16:47 |
@wiking | what a wonderful world :) | 16:48 |
@wiking | wtf | 17:05 |
@wiking | 17:05 | |
@wiking | 17:05 | |
@wiking | 17:05 | |
@wiking | 17:05 | |
@wiking | 17:05 | |
@wiking | 17:05 | |
@wiking | Running for 45 min 48 sec | 17:05 |
@wiking | :< | 17:05 |
@wiking | :)) | 17:05 |
-!- iglesiasg [~iglesiasg@217.119.234.214] has quit [Quit: leaving] | 17:10 | |
geektoni | wiking: wtf. Why did Travis die? | 17:13 |
@wiking | longruntime | 17:15 |
@wiking | ;) | 17:15 |
@wiking | The job exceeded the maximum time limit for jobs, and has been terminated. | 17:15 |
@wiking | :) | 17:15 |
geektoni | wtf | 17:17 |
geektoni | wiking: I don't understand why it takes so long. :/ | 17:31 |
@wiking | i guess | 17:31 |
@wiking | coz u include it into machine.h? | 17:31 |
@wiking | or no? | 17:32 |
@wiking | src/shogun/kernel/Kernel.h:#include <shogun/lib/Signal.h> | 17:32 |
@wiking | :) | 17:32 |
@wiking | i guess this is hurting a bit | 17:33 |
geektoni | mmh | 17:34 |
geektoni | I'll give a look | 17:34 |
@sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/3848 synchronized by geektoni | 17:46 |
-!- HeikoS [~heiko@host-92-0-178-129.as43234.net] has quit [Ping timeout: 240 seconds] | 17:54 | |
-!- HeikoS [~heiko@host-92-0-178-129.as43234.net] has joined #shogun | 18:02 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 18:02 | |
mikeling | HeikoS: ping | 18:47 |
@HeikoS | mikeling: sorry I am sick, just happen to have the computer open, will get back tomorrow or so | 18:51 |
mikeling | HeikoS: oh, I am sorry to hear that | 18:51 |
mikeling | we could talk about it later | 18:51 |
mikeling | just want to ask a review or merge for a pr, wiking had approve it | 18:52 |
-!- HeikoS [~heiko@host-92-0-178-129.as43234.net] has quit [Ping timeout: 255 seconds] | 18:59 | |
-!- geektoni [~geektoni@93-34-234-212.ip52.fastwebnet.it] has quit [Remote host closed the connection] | 19:05 | |
-!- mikeling [uid89706@gateway/web/irccloud.com/x-nwhagerlzhenkeyg] has quit [Quit: Connection closed for inactivity] | 21:21 | |
-!- HeikoS [~heiko@host-92-0-178-129.as43234.net] has joined #shogun | 22:28 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 22:28 | |
-!- HeikoS [~heiko@host-92-0-178-129.as43234.net] has quit [Ping timeout: 255 seconds] | 22:33 | |
-!- HeikoS [~heiko@host-92-0-178-129.as43234.net] has joined #shogun | 23:03 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 23:03 | |
-!- HeikoS [~heiko@host-92-0-178-129.as43234.net] has quit [Ping timeout: 240 seconds] | 23:13 | |
-!- TingMiao [uid229534@gateway/web/irccloud.com/x-lgghrupggtdqrypi] has quit [Quit: Connection closed for inactivity] | 23:47 | |
--- Log closed Thu Jun 22 00:00:23 2017 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!