IRC logs of #shogun for Friday, 2018-06-15

--- 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 #shogun03:12
-shogun-buildbot:#shogun- Build nightly stretch deb #130 is complete: Success [build successful] - http://buildbot.shogun-toolbox.org:8080/#builders/38/builds/13005:03
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4294 synchronized by FaroukY09:34
-!- Farouk [9cc42279@gateway/web/freenode/ip.156.196.34.121] has joined #shogun10:02
Faroukwiking: hi10:52
@wikingFarouk, helo11:12
Faroukwiking hey11:16
Faroukis upstream/develop currently stable?11:16
@wikingmmm lemme check11:16
@wikingshould be11:16
@wikingbut you can check it here11:16
@wikinghttp://buildbot.shogun-toolbox.org:808011:16
FaroukHmm, 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 #shogun11:37
-!- mode/#shogun [+o wiking] by ChanServ11:37
-!- HeikoS [~heiko@host81-157-196-115.range81-157.btcentralplus.com] has joined #shogun11:46
-!- mode/#shogun [+o HeikoS] by ChanServ11:46
-!- Farouk [33267174@gateway/web/freenode/ip.51.38.113.116] has joined #shogun12:53
Faroukwiking: are we having a call now?13:00
@wikingFarouk, should13:03
@wikingbut i didn't realise that it's overlapping13:03
@wikinghow's your +1 hour from now on13:03
@wikingi. mean i can chat/type but not really in person yet13:03
FaroukHmm, Egypt plays in 1 hour for the worldcup so I was going out to see that :)13:04
Faroukwe can chat if you'd like13:04
@wikingahhaha13:04
@wikingok13:04
@wikinghow about after the match?13:04
FaroukYea sure that works for me :))13:05
@wikingcool13:05
@wikinglets talk then13:05
@wikingand sorry13:05
Faroukalright, will ping u in irc13:05
Faroukno worries13:05
@wikingkk13:05
@wikingyallah :)13:05
FaroukHahahaha 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 shubham80814:27
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4335 synchronized by shubham80815: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 #shogun18:17
-!- mode/#shogun [+o HeikoS] by ChanServ18: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 #shogun19:09
Faroukwiking: hi19:09
@wikingFarouk, helo19:30
@wikingwhatsup19:30
Faroukwiking: hey, I'm back, up for a quick chat?19:30
@wikingi'm just checking now the new commits19:30
Faroukwiking: alright then, let me know once you're done, we can discuss on GHangout19:32
-!- Farouk_ [33267174@gateway/web/freenode/ip.51.38.113.116] has joined #shogun19:36
-!- Farouk [33267174@gateway/web/freenode/ip.51.38.113.116] has quit [Ping timeout: 260 seconds]19:38
Farouk_wiking: now19:43
Farouk_?19:43
@wikingok19:48
@wikingso19:48
@wikingi'm jsut wondering about these updates19:48
@wikingone is19:48
@wikingas fernando says' there's a problem with having references as member vars19:49
@wikingbut then again19:49
@wikingidk atm19:49
@wikingwhether this whole cost function story should be exposed to swig i.e. python19:49
@wikingbut i guess yes19:49
Farouk_Well I read that using reference members can act as aggregation instead of composition19:49
Farouk_cause I feel the lifetime of the parameters don't depend on the lifetime of the cost function19:50
@wikingyep19:50
@wikingthat's for sure19:50
@wikingok19:50
@wikingso about the unit test19:50
@wikingi guess now that works nicely?19:51
@wikingyou had the question of linalg::scale gpu19:51
@wikingthe thing is that if you wanna do gpu19:51
@wikingthat means you cannot use Stan :)19:51
Farouk_yes and also wanna discuss the thread safe thingie19:51
@wikingbecause stan doesn't work with gpu19:51
@wikinghttp://discourse.mc-stan.org/t/stan-on-the-gpu/32619:52
@wikinghttps://github.com/stan-dev/math/pull/65519: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 stan19:52
@wikingyeah i men19:53
@wikingif you wanna do that19:53
@wikingthat means19:53
@wikingthat you need to first trigger of moving the SGVector to gpu19:53
@wikingto_gpu19:53
@wikingof linalg19:53
@wikingand then if you call linalg::scale19:53
@wikingit'll automatically do the right thing19:54
@wikingbut to be able to test it19:54
@wikingmake 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 #shogun19:56
Faroukwiking: Sorry got disconnected19:56
@wikingno worries19:56
@wikinghave you seen the messages?19:56
@wikingor should i copy-paste?19:56
Faroukcopy paste19:56
@wiking<Farouk_> so it should support linalg no?19:57
@wiking[19:52]  <Farouk_> its not stan19:57
@wiking[19:52]  <wiking> yeah i men19:57
@wiking[19:52]  <wiking> if you wanna do that19:57
@wiking[19:52]  <wiking> that means19:57
@wiking[19:52]  <wiking> that you need to first trigger of moving the SGVector to gpu19:57
@wiking[19:53]  <wiking> to_gpu19:57
@wiking[19:53]  <wiking> of linalg19:57
@wiking[19:53]  <wiking> and then if you call linalg::scale19:57
@wiking[19:53]  <wiking> it'll automatically do the right thing19:57
@wiking[19:53]  <wiking> but to be able to test it19: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
FaroukHmmm19:57
@wiking you can check19:57
@wikingtests/unit/mathematics/linalg/operations/Viennacl_operations_unittest.cc19:57
@wikingthat has a lot of tests19:58
Faroukdo you think there is overhead? Like just moving the parameters on gpu to scale?19:58
Faroukor its worth it?19:58
@wikingmmmm19:58
@wikingit's quite a lot of overhead19:58
@wikingto copy back and forth19:58
@wikingmemory19:58
@wikingbut i mean you can test it19:58
@wikingand see how it works19:58
FaroukAlright then19:59
@wikingyou can even use this https://github.com/shogun-toolbox/shogun/blob/develop/doc/readme/DEVELOPING.md#benchmark19:59
@wikingthere's couple of examples how to do this19:59
@wiking(benchmarking)19:59
@wikingthat way you can have a correct understanding19:59
@wikingwhen it 'starts' to be worth to move things to gpu19:59
@wikingbasically the thing is that depending on the size of the data19:59
@wikingit's worth or not to move things to gpu20:00
FaroukYep, alright I'll give benchmarking a try20:00
@wikingafter a certain threshold if your data is that big20:00
@wikingthe copying will be insignificant20:00
@wikingcompared to scaling20:00
Faroukalright (y), is there a linalg operation for adding too?20:01
Farouktwo SGVectors20:01
Faroukif so I can replace the += in the loop with that operation20:01
@wikingyes20:02
@wikinglinalg::add20:02
@wikingchec20:02
@wikingk20:02
@wikingLinalgNamespace.h20:02
@wikingit has a nice doxygen doc for each operation20:02
@wikingadd(const SGVector<T>& a, const SGVector<T>& b, SGVector<T>& result,20:03
@wiking    T alpha = 1, T beta = 1)20:03
@wikingwhat it does is20:03
@wiking* Performs the operation result = alpha * a + beta * b on vectors.20:03
FaroukAlright, I'll give linalg a try tomorrow.20:03
Farouktry to replace as many operations as possible with it and compare it20:04
FaroukAlso, I wanna talk about the thread safe thingie.20:04
@wikingyeah it's best to use benchmark20:04
@wikingframework to do that20:04
@wikingnote that basically whatever you do in the unit test20:04
@wikingthat should be sufficient to benchmark things20:04
@wiking:)20:04
@wikingok so what about threadsafety20:04
FaroukAlright :)20:04
@wikingand where exactly/?20:04
Farouksafe pr line 10120:05
Farouksame*20:05
@wikingleme check20:05
@wikingah20:06
@wikingyeah you mean the story of updating a param20:06
@wikingand then calling get_gradient20:06
@wikingp20:07
@wikingok20:07
@wikingso i wondering20:07
Faroukyea20:07
@wiking*wonder20:07
@wikingwhy it isn't a function param20:07
@wikingof get_gradient(index)20:07
FaroukBecause 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 go20:08
Faroukor putting like a default argument as index=-120:08
Faroukand use m_index_of_sample if its -1, or index if it is given20:08
Faroukbut felt its not very clean20:08
@wikingmmm20:08
@wikingis get_average_gradient20:09
@wikinga virtual method?20:09
Faroukyea20:09
@wikingmmmm20:09
@wikingi mean20:09
@wikinghere in20:09
@wikingStanFirstOrderSAGCostFunction::get_average_gradient20:10
@wikingyou call get_gradient() on yourself?20:10
@wikingright?20:10
@wikingwhat you could do is that you simply add a method20:10
@wikingthat is get_gradient(index)20:10
@wikingwhich is a private fucntion20:10
@wikingso that's only accessible from within StanFirstOrderSAGCostFunction20:10
@wikingand then you dont need to do the trick of20:11
FaroukI see, and route get_gradient() to get_gradient(m_index_of_sample)20:11
@wikingauto old_index_sample = m_index_of_sample;20:11
@wikingi though rather20:11
@wikingthat you dont use m_index_of_sample20:11
@wikingto iterate thorugh the samples20:11
@wikingbut rather just do a for(i...)20:12
@wikingand then call get_gradient()20:12
@wikingget_gradient(i)20:12
@wikingand then you dont touch at all m_index_of_sample20:12
FaroukI see, yea that makes sense20:12
@wikingas that one you anyways just stash20:12
@wikingand then restore once you computed the avg gradient20:12
@wikingand basically the get_gradient() virtual method20:12
@wikingis actually as you said nothing else20:13
@wikingbut just a call get_gradient(m_index_of_sample)20:13
Faroukyea that makes more sense now20:13
@wikingcool20:13
@wikingFarouk, how's the blog post going?20:13
@wikingdo you need me to review it20:13
@wikingplz send me a version asap20:13
FaroukWell it's public now but I still want to add more "explanations to it" as I jumped lots of things20:14
Faroukthe second blog post that is20:14
@wikingcool20:14
@wikingcna you give me alink plz20:14
Faroukalso I wrote a new example and cookbook for a meta example: LeastSquareRegression20:14
@wikinggreaat have u pushed the pr?20:15
Faroukbut I haven't sent a pr because I tried rebasing with upstream/develop and its failing the make20:15
@wikingmmmm20:15
Faroukthat's why I asked u today wheather upstream/dev was stable20:15
@wikingmmm20:15
@wikingit shoudl be20:15
@wikingbut paste your error20:15
@wikingin pastebin20:15
FaroukI reset hard to upstream/develop20:15
@wikingmaybe i can help20:15
FaroukYea sure, but I am on windows now, once I login to the Ubuntu I'll paste it20:16
@wikingkk20:17
Farouklink is here for blog post, I also updated it in the NumFocus spread sheet:20:17
Faroukhttps://medium.com/@eyfmharb/how-to-build-a-neural-network-framework-like-tensorflow-in-c-part-1-56f54c67285220:17
@wikingperfect20:18
@wikingi'll go through it20:18
@wikinglemme know about your error20:18
@wikingi'll be here for a while20:18
Faroukyea will do20:18
Faroukwiking: Do you have any comments on my pace for the last two days?20:25
@wikingyeah regarding the cookbook20:25
@wikingit's fine to send it in20:26
@wikingeven if it fails :)20:26
FaroukAlright, I'll push it now with ci skip, is that okay?20:26
@wikingwe'll go though it and help and Heiko will have the time to look at it as well20:26
@wikingyep20:26
@wikingthat's perfect20:26
@wiking:)20:26
FaroukAlright I'll turn on ubuntu and push it now20:26
@wikingFarouk, other than that just keep up the pace20:26
FaroukAlright thanks20:27
@wikingnw20:27
@wikingsorry about the 1pm meeting20:27
@wikingand about the match :(20:27
FaroukYess :( 1 goal in the 89th minute20:27
Farouka slap to the face :320:27
@wikingyeah20:27
@wikingwho's next ?20:28
FaroukNext is SaudiArabia I think20:28
Faroukshould be okay ;)20:28
@wikingah there's hope then :))020:28
@wiking:>20:28
Farouk:))20:28
FaroukAlright, I'll close now cause I'll restart to Ubuntu20:28
@wikingkk20:29
@wikingttyl20: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 FaroukY20:41
-!- Farouk [9cc42279@gateway/web/freenode/ip.156.196.34.121] has joined #shogun20:41
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4337 synchronized by FaroukY20: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 #shogun21: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!