| --- Log opened Fri Jun 15 00:00:50 2018 | ||
| -!- shogun-buildbot [~shogun-bu@7nn.de] has quit [Ping timeout: 265 seconds] | 03:07 | |
| -!- shogun-buildbot [~shogun-bu@7nn.de] has joined #shogun | 03:12 | |
| -shogun-buildbot:#shogun- Build nightly stretch deb #130 is complete: Success [build successful] - http://buildbot.shogun-toolbox.org:8080/#builders/38/builds/130 | 05:03 | |
| @sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4294 synchronized by FaroukY | 09:34 | 
|---|---|---|
| -!- Farouk [9cc42279@gateway/web/freenode/ip.156.196.34.121] has joined #shogun | 10:02 | |
| Farouk | wiking: hi | 10:52 | 
| @wiking | Farouk, helo | 11:12 | 
| Farouk | wiking hey | 11:16 | 
| Farouk | is upstream/develop currently stable? | 11:16 | 
| @wiking | mmm lemme check | 11:16 | 
| @wiking | should be | 11:16 | 
| @wiking | but you can check it here | 11:16 | 
| @wiking | http://buildbot.shogun-toolbox.org:8080 | 11:16 | 
| Farouk | Hmm, maybe I did sth wrong in the rebase, nevermind then, Thanks! | 11:18 | 
| -!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: ZNC 1.7.0 - https://znc.in] | 11:20 | |
| -!- Farouk [9cc42279@gateway/web/freenode/ip.156.196.34.121] has quit [Ping timeout: 260 seconds] | 11:34 | |
| -!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 11:37 | |
| -!- mode/#shogun [+o wiking] by ChanServ | 11:37 | |
| -!- HeikoS [~heiko@host81-157-196-115.range81-157.btcentralplus.com] has joined #shogun | 11:46 | |
| -!- mode/#shogun [+o HeikoS] by ChanServ | 11:46 | |
| -!- Farouk [33267174@gateway/web/freenode/ip.51.38.113.116] has joined #shogun | 12:53 | |
| Farouk | wiking: are we having a call now? | 13:00 | 
| @wiking | Farouk, should | 13:03 | 
| @wiking | but i didn't realise that it's overlapping | 13:03 | 
| @wiking | how's your +1 hour from now on | 13:03 | 
| @wiking | i. mean i can chat/type but not really in person yet | 13:03 | 
| Farouk | Hmm, Egypt plays in 1 hour for the worldcup so I was going out to see that :) | 13:04 | 
| Farouk | we can chat if you'd like | 13:04 | 
| @wiking | ahhaha | 13:04 | 
| @wiking | ok | 13:04 | 
| @wiking | how about after the match? | 13:04 | 
| Farouk | Yea sure that works for me :)) | 13:05 | 
| @wiking | cool | 13:05 | 
| @wiking | lets talk then | 13:05 | 
| @wiking | and sorry | 13:05 | 
| Farouk | alright, will ping u in irc | 13:05 | 
| Farouk | no worries | 13:05 | 
| @wiking | kk | 13:05 | 
| @wiking | yallah :) | 13:05 | 
| Farouk | Hahahaha just saw this, yallah :)) | 13:09 | 
| @sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4335 synchronized by shubham808 | 14:27 | 
| @sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4335 synchronized by shubham808 | 15:53 | 
| -!- Farouk [33267174@gateway/web/freenode/ip.51.38.113.116] has quit [Ping timeout: 260 seconds] | 16:35 | |
| -!- HeikoS [~heiko@host81-157-196-115.range81-157.btcentralplus.com] has quit [Read error: No route to host] | 18:17 | |
| -!- HeikoS [~heiko@host81-157-196-115.range81-157.btcentralplus.com] has joined #shogun | 18:17 | |
| -!- mode/#shogun [+o HeikoS] by ChanServ | 18:18 | |
| -!- HeikoS [~heiko@host81-157-196-115.range81-157.btcentralplus.com] has quit [Quit: Leaving.] | 18:34 | |
| -!- Farouk [33267174@gateway/web/freenode/ip.51.38.113.116] has joined #shogun | 19:09 | |
| Farouk | wiking: hi | 19:09 | 
| @wiking | Farouk, helo | 19:30 | 
| @wiking | whatsup | 19:30 | 
| Farouk | wiking: hey, I'm back, up for a quick chat? | 19:30 | 
| @wiking | i'm just checking now the new commits | 19:30 | 
| Farouk | wiking: alright then, let me know once you're done, we can discuss on GHangout | 19:32 | 
| -!- Farouk_ [33267174@gateway/web/freenode/ip.51.38.113.116] has joined #shogun | 19:36 | |
| -!- Farouk [33267174@gateway/web/freenode/ip.51.38.113.116] has quit [Ping timeout: 260 seconds] | 19:38 | |
| Farouk_ | wiking: now | 19:43 | 
| Farouk_ | ? | 19:43 | 
| @wiking | ok | 19:48 | 
| @wiking | so | 19:48 | 
| @wiking | i'm jsut wondering about these updates | 19:48 | 
| @wiking | one is | 19:48 | 
| @wiking | as fernando says' there's a problem with having references as member vars | 19:49 | 
| @wiking | but then again | 19:49 | 
| @wiking | idk atm | 19:49 | 
| @wiking | whether this whole cost function story should be exposed to swig i.e. python | 19:49 | 
| @wiking | but i guess yes | 19:49 | 
| Farouk_ | Well I read that using reference members can act as aggregation instead of composition | 19:49 | 
| Farouk_ | cause I feel the lifetime of the parameters don't depend on the lifetime of the cost function | 19:50 | 
| @wiking | yep | 19:50 | 
| @wiking | that's for sure | 19:50 | 
| @wiking | ok | 19:50 | 
| @wiking | so about the unit test | 19:50 | 
| @wiking | i guess now that works nicely? | 19:51 | 
| @wiking | you had the question of linalg::scale gpu | 19:51 | 
| @wiking | the thing is that if you wanna do gpu | 19:51 | 
| @wiking | that means you cannot use Stan :) | 19:51 | 
| Farouk_ | yes and also wanna discuss the thread safe thingie | 19:51 | 
| @wiking | because stan doesn't work with gpu | 19:51 | 
| @wiking | http://discourse.mc-stan.org/t/stan-on-the-gpu/326 | 19:52 | 
| @wiking | https://github.com/stan-dev/math/pull/655 | 19:52 | 
| @wiking | :) | 19:52 | 
| Farouk_ | but average_gradients is SGVector<float64_t> | 19:52 | 
| Farouk_ | so it should support linalg no? | 19:52 | 
| Farouk_ | its not stan | 19:52 | 
| @wiking | yeah i men | 19:53 | 
| @wiking | if you wanna do that | 19:53 | 
| @wiking | that means | 19:53 | 
| @wiking | that you need to first trigger of moving the SGVector to gpu | 19:53 | 
| @wiking | to_gpu | 19:53 | 
| @wiking | of linalg | 19:53 | 
| @wiking | and then if you call linalg::scale | 19:53 | 
| @wiking | it'll automatically do the right thing | 19:54 | 
| @wiking | but to be able to test it | 19:54 | 
| @wiking | make sure that a) you have a gpu b) that you have viennacl :) | 19:54 | 
| -!- Farouk [33267174@gateway/web/freenode/ip.51.38.113.116] has joined #shogun | 19:56 | |
| Farouk | wiking: Sorry got disconnected | 19:56 | 
| @wiking | no worries | 19:56 | 
| @wiking | have you seen the messages? | 19:56 | 
| @wiking | or should i copy-paste? | 19:56 | 
| Farouk | copy paste | 19:56 | 
| @wiking | <Farouk_> so it should support linalg no? | 19:57 | 
| @wiking | [19:52] <Farouk_> its not stan | 19:57 | 
| @wiking | [19:52] <wiking> yeah i men | 19:57 | 
| @wiking | [19:52] <wiking> if you wanna do that | 19:57 | 
| @wiking | [19:52] <wiking> that means | 19:57 | 
| @wiking | [19:52] <wiking> that you need to first trigger of moving the SGVector to gpu | 19:57 | 
| @wiking | [19:53] <wiking> to_gpu | 19:57 | 
| @wiking | [19:53] <wiking> of linalg | 19:57 | 
| @wiking | [19:53] <wiking> and then if you call linalg::scale | 19:57 | 
| @wiking | [19:53] <wiking> it'll automatically do the right thing | 19:57 | 
| @wiking | [19:53] <wiking> but to be able to test it | 19:57 | 
| @wiking | [19:54] <wiking> make sure that a) you have a gpu b) that you have viennacl :) | 19:57 | 
| -!- Farouk_ [33267174@gateway/web/freenode/ip.51.38.113.116] has quit [Ping timeout: 260 seconds] | 19:57 | |
| Farouk | Hmmm | 19:57 | 
| @wiking | you can check | 19:57 | 
| @wiking | tests/unit/mathematics/linalg/operations/Viennacl_operations_unittest.cc | 19:57 | 
| @wiking | that has a lot of tests | 19:58 | 
| Farouk | do you think there is overhead? Like just moving the parameters on gpu to scale? | 19:58 | 
| Farouk | or its worth it? | 19:58 | 
| @wiking | mmmm | 19:58 | 
| @wiking | it's quite a lot of overhead | 19:58 | 
| @wiking | to copy back and forth | 19:58 | 
| @wiking | memory | 19:58 | 
| @wiking | but i mean you can test it | 19:58 | 
| @wiking | and see how it works | 19:58 | 
| Farouk | Alright then | 19:59 | 
| @wiking | you can even use this https://github.com/shogun-toolbox/shogun/blob/develop/doc/readme/DEVELOPING.md#benchmark | 19:59 | 
| @wiking | there's couple of examples how to do this | 19:59 | 
| @wiking | (benchmarking) | 19:59 | 
| @wiking | that way you can have a correct understanding | 19:59 | 
| @wiking | when it 'starts' to be worth to move things to gpu | 19:59 | 
| @wiking | basically the thing is that depending on the size of the data | 19:59 | 
| @wiking | it's worth or not to move things to gpu | 20:00 | 
| Farouk | Yep, alright I'll give benchmarking a try | 20:00 | 
| @wiking | after a certain threshold if your data is that big | 20:00 | 
| @wiking | the copying will be insignificant | 20:00 | 
| @wiking | compared to scaling | 20:00 | 
| Farouk | alright (y), is there a linalg operation for adding too? | 20:01 | 
| Farouk | two SGVectors | 20:01 | 
| Farouk | if so I can replace the += in the loop with that operation | 20:01 | 
| @wiking | yes | 20:02 | 
| @wiking | linalg::add | 20:02 | 
| @wiking | chec | 20:02 | 
| @wiking | k | 20:02 | 
| @wiking | LinalgNamespace.h | 20:02 | 
| @wiking | it has a nice doxygen doc for each operation | 20:02 | 
| @wiking | add(const SGVector<T>& a, const SGVector<T>& b, SGVector<T>& result, | 20:03 | 
| @wiking | T alpha = 1, T beta = 1) | 20:03 | 
| @wiking | what it does is | 20:03 | 
| @wiking | * Performs the operation result = alpha * a + beta * b on vectors. | 20:03 | 
| Farouk | Alright, I'll give linalg a try tomorrow. | 20:03 | 
| Farouk | try to replace as many operations as possible with it and compare it | 20:04 | 
| Farouk | Also, I wanna talk about the thread safe thingie. | 20:04 | 
| @wiking | yeah it's best to use benchmark | 20:04 | 
| @wiking | framework to do that | 20:04 | 
| @wiking | note that basically whatever you do in the unit test | 20:04 | 
| @wiking | that should be sufficient to benchmark things | 20:04 | 
| @wiking | :) | 20:04 | 
| @wiking | ok so what about threadsafety | 20:04 | 
| Farouk | Alright :) | 20:04 | 
| @wiking | and where exactly/? | 20:04 | 
| Farouk | safe pr line 101 | 20:05 | 
| Farouk | same* | 20:05 | 
| @wiking | leme check | 20:05 | 
| @wiking | ah | 20:06 | 
| @wiking | yeah you mean the story of updating a param | 20:06 | 
| @wiking | and then calling get_gradient | 20:06 | 
| @wiking | p | 20:07 | 
| @wiking | ok | 20:07 | 
| @wiking | so i wondering | 20:07 | 
| Farouk | yea | 20:07 | 
| @wiking | *wonder | 20:07 | 
| @wiking | why it isn't a function param | 20:07 | 
| @wiking | of get_gradient(index) | 20:07 | 
| Farouk | Because there were other classes that expected the interface to be get_gradient() with no args, I thought about overriding but not sure if that's the way to go | 20:08 | 
| Farouk | or putting like a default argument as index=-1 | 20:08 | 
| Farouk | and use m_index_of_sample if its -1, or index if it is given | 20:08 | 
| Farouk | but felt its not very clean | 20:08 | 
| @wiking | mmm | 20:08 | 
| @wiking | is get_average_gradient | 20:09 | 
| @wiking | a virtual method? | 20:09 | 
| Farouk | yea | 20:09 | 
| @wiking | mmmm | 20:09 | 
| @wiking | i mean | 20:09 | 
| @wiking | here in | 20:09 | 
| @wiking | StanFirstOrderSAGCostFunction::get_average_gradient | 20:10 | 
| @wiking | you call get_gradient() on yourself? | 20:10 | 
| @wiking | right? | 20:10 | 
| @wiking | what you could do is that you simply add a method | 20:10 | 
| @wiking | that is get_gradient(index) | 20:10 | 
| @wiking | which is a private fucntion | 20:10 | 
| @wiking | so that's only accessible from within StanFirstOrderSAGCostFunction | 20:10 | 
| @wiking | and then you dont need to do the trick of | 20:11 | 
| Farouk | I see, and route get_gradient() to get_gradient(m_index_of_sample) | 20:11 | 
| @wiking | auto old_index_sample = m_index_of_sample; | 20:11 | 
| @wiking | i though rather | 20:11 | 
| @wiking | that you dont use m_index_of_sample | 20:11 | 
| @wiking | to iterate thorugh the samples | 20:11 | 
| @wiking | but rather just do a for(i...) | 20:12 | 
| @wiking | and then call get_gradient() | 20:12 | 
| @wiking | get_gradient(i) | 20:12 | 
| @wiking | and then you dont touch at all m_index_of_sample | 20:12 | 
| Farouk | I see, yea that makes sense | 20:12 | 
| @wiking | as that one you anyways just stash | 20:12 | 
| @wiking | and then restore once you computed the avg gradient | 20:12 | 
| @wiking | and basically the get_gradient() virtual method | 20:12 | 
| @wiking | is actually as you said nothing else | 20:13 | 
| @wiking | but just a call get_gradient(m_index_of_sample) | 20:13 | 
| Farouk | yea that makes more sense now | 20:13 | 
| @wiking | cool | 20:13 | 
| @wiking | Farouk, how's the blog post going? | 20:13 | 
| @wiking | do you need me to review it | 20:13 | 
| @wiking | plz send me a version asap | 20:13 | 
| Farouk | Well it's public now but I still want to add more "explanations to it" as I jumped lots of things | 20:14 | 
| Farouk | the second blog post that is | 20:14 | 
| @wiking | cool | 20:14 | 
| @wiking | cna you give me alink plz | 20:14 | 
| Farouk | also I wrote a new example and cookbook for a meta example: LeastSquareRegression | 20:14 | 
| @wiking | greaat have u pushed the pr? | 20:15 | 
| Farouk | but I haven't sent a pr because I tried rebasing with upstream/develop and its failing the make | 20:15 | 
| @wiking | mmmm | 20:15 | 
| Farouk | that's why I asked u today wheather upstream/dev was stable | 20:15 | 
| @wiking | mmm | 20:15 | 
| @wiking | it shoudl be | 20:15 | 
| @wiking | but paste your error | 20:15 | 
| @wiking | in pastebin | 20:15 | 
| Farouk | I reset hard to upstream/develop | 20:15 | 
| @wiking | maybe i can help | 20:15 | 
| Farouk | Yea sure, but I am on windows now, once I login to the Ubuntu I'll paste it | 20:16 | 
| @wiking | kk | 20:17 | 
| Farouk | link is here for blog post, I also updated it in the NumFocus spread sheet: | 20:17 | 
| Farouk | https://medium.com/@eyfmharb/how-to-build-a-neural-network-framework-like-tensorflow-in-c-part-1-56f54c672852 | 20:17 | 
| @wiking | perfect | 20:18 | 
| @wiking | i'll go through it | 20:18 | 
| @wiking | lemme know about your error | 20:18 | 
| @wiking | i'll be here for a while | 20:18 | 
| Farouk | yea will do | 20:18 | 
| Farouk | wiking: Do you have any comments on my pace for the last two days? | 20:25 | 
| @wiking | yeah regarding the cookbook | 20:25 | 
| @wiking | it's fine to send it in | 20:26 | 
| @wiking | even if it fails :) | 20:26 | 
| Farouk | Alright, I'll push it now with ci skip, is that okay? | 20:26 | 
| @wiking | we'll go though it and help and Heiko will have the time to look at it as well | 20:26 | 
| @wiking | yep | 20:26 | 
| @wiking | that's perfect | 20:26 | 
| @wiking | :) | 20:26 | 
| Farouk | Alright I'll turn on ubuntu and push it now | 20:26 | 
| @wiking | Farouk, other than that just keep up the pace | 20:26 | 
| Farouk | Alright thanks | 20:27 | 
| @wiking | nw | 20:27 | 
| @wiking | sorry about the 1pm meeting | 20:27 | 
| @wiking | and about the match :( | 20:27 | 
| Farouk | Yess :( 1 goal in the 89th minute | 20:27 | 
| Farouk | a slap to the face :3 | 20:27 | 
| @wiking | yeah | 20:27 | 
| @wiking | who's next ? | 20:28 | 
| Farouk | Next is SaudiArabia I think | 20:28 | 
| Farouk | should be okay ;) | 20:28 | 
| @wiking | ah there's hope then :))0 | 20:28 | 
| @wiking | :> | 20:28 | 
| Farouk | :)) | 20:28 | 
| Farouk | Alright, I'll close now cause I'll restart to Ubuntu | 20:28 | 
| @wiking | kk | 20:29 | 
| @wiking | ttyl | 20:29 | 
| -!- Farouk [33267174@gateway/web/freenode/ip.51.38.113.116] has quit [Ping timeout: 260 seconds] | 20:33 | |
| @sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4337 opened by FaroukY | 20:41 | 
| -!- Farouk [9cc42279@gateway/web/freenode/ip.156.196.34.121] has joined #shogun | 20:41 | |
| @sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4337 synchronized by FaroukY | 20:43 | 
| -!- Farouk [9cc42279@gateway/web/freenode/ip.156.196.34.121] has quit [Ping timeout: 260 seconds] | 20:50 | |
| -!- witness_ [uid10044@gateway/web/irccloud.com/x-xnffkzlqadgordek] has joined #shogun | 21:59 | |
| --- Log closed Sat Jun 16 00:00:52 2018 | ||
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!