IRC logs of #shogun for Tuesday, 2016-06-07

--- Log opened Tue Jun 07 00:00:29 2016
-!- OXPHOS [9d8b131c@gateway/web/freenode/ip.157.139.19.28] has quit [Quit: Page closed]01:34
shogun-buildbotbuild #1015 of nightly_none is complete: Failure [failed test]  Build details are at http://buildbot.shogun-toolbox.org/builders/nightly_none/builds/1015  blamelist: Esben Sorig <esben@sorig.eu>, Heiko Strathmann <heiko.strathmann@gmail.com>, Saurabh7 <saurabh.mahindre@gmail.com>03:04
shogun-buildbotbuild #13 of clang - thread analysis is complete: Failure [failed compile]  Build details are at http://buildbot.shogun-toolbox.org/builders/clang%20-%20thread%20analysis/builds/13  blamelist: Esben Sorig <esben@sorig.eu>, Heiko Strathmann <heiko.strathmann@gmail.com>, Saurabh7 <saurabh.mahindre@gmail.com>03:44
shogun-buildbotbuild #12 of clang - undefined behaviour analysis is complete: Failure [failed compile]  Build details are at http://buildbot.shogun-toolbox.org/builders/clang%20-%20undefined%20behaviour%20analysis/builds/12  blamelist: Esben Sorig <esben@sorig.eu>, Heiko Strathmann <heiko.strathmann@gmail.com>, Saurabh7 <saurabh.mahindre@gmail.com>03:48
shogun-buildbotbuild #13 of memleak - valgrind is complete: Failure [failed memory check]  Build details are at http://buildbot.shogun-toolbox.org/builders/memleak%20-%20valgrind/builds/13  blamelist: Esben Sorig <esben@sorig.eu>, Heiko Strathmann <heiko.strathmann@gmail.com>, Saurabh7 <saurabh.mahindre@gmail.com>05:36
-!- shogun-buildbot [~shogun-bu@7nn.de] has quit [Quit: buildmaster reconfigured: bot disconnecting]05:53
-!- shogun-buildbot [~shogun-bu@7nn.de] has joined #shogun05:53
@wikingSaurabh7: ping06:07
Saurabh7wiking: hi06:20
Saurabh7ah sent mail sry06:29
shogun-buildbotbuild #1145 of nightly_default is complete: Failure [failed test notebooks]  Build details are at http://buildbot.shogun-toolbox.org/builders/nightly_default/builds/1145  blamelist: Esben Sorig <esben@sorig.eu>, Heiko Strathmann <heiko.strathmann@gmail.com>, Saurabh7 <saurabh.mahindre@gmail.com>06:32
Saurabh7why does memcheck fail, works here on local06:33
@wikinglemme see06:33
Saurabh7oh it must be opemp thing06:33
@wikinghttp://buildbot.shogun-toolbox.org/memcheck/20160607-0111.html06:33
@wikingall the generated ones leak06:34
@wikingso that should be fixed... :P i guess it's because of Some<>06:34
Saurabh7oh yes06:34
Saurabh7i was looking at the crossvalidation one06:34
Saurabh7its potentail memmory leak shouldnt be shown failed actually06:35
@wikingmmm06:38
@wikingSaurabh7: what's your valgrind version?06:38
Saurabh73.10.106:38
Saurabh7wiking: i had sent a suppression for this06:39
@wikingvalgrind-3.10.006:39
Saurabh7https://github.com/shogun-toolbox/shogun/pull/3138/files06:39
@wikingah yeah you did06:39
@wikingmmm shall we merge it?06:39
@wikinglemme check it again06:39
@wiking:006:39
@wikingok lets' merge it :)06:40
@wikingboom06:40
@wikingnmmmm what's with our announcment bot06:40
Saurabh7dont thnk its wokring06:41
Saurabh7the bot06:41
@wikingmmm irker06:41
shogun-buildbotbuild #37 of xenial - libshogun is complete: Failure [failed compile]  Build details are at http://buildbot.shogun-toolbox.org/builders/xenial%20-%20libshogun/builds/37  blamelist: Viktor Gal <vigsterkr@gmail.com>, Saurabh7 <saurabh.mahindre@gmail.com>06:50
shogun-buildbotbuild #2899 of bsd1 - libshogun is complete: Failure [failed configure]  Build details are at http://buildbot.shogun-toolbox.org/builders/bsd1%20-%20libshogun/builds/2899  blamelist: Viktor Gal <vigsterkr@gmail.com>, Saurabh7 <saurabh.mahindre@gmail.com>06:50
@wikingoooh06:52
Saurabh7xenials not happy :)06:52
@wikingyeah but for a while now...06:52
Saurabh7fatal error: clapack.h: No such file or directory06:52
@wikingyeah just wondering wtf06:53
@wikingand why on xenial06:53
shogun-buildbotbuild #28 of FC23 - libshogun - aarch64 is complete: Failure [failed test]  Build details are at http://buildbot.shogun-toolbox.org/builders/FC23%20-%20libshogun%20-%20aarch64/builds/28  blamelist: Viktor Gal <vigsterkr@gmail.com>, Saurabh7 <saurabh.mahindre@gmail.com>07:28
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun09:27
shogun-notifier-shogun: Viktor Gal :develop * 0a829e0 / src/shogun/distributions/Gaussian.cpp,src/shogun/distributions/Gaussian.h: https://github.com/shogun-toolbox/shogun/commit/0a829e0f2080a621249eb62d516ea8e7f8983c5909:27
shogun-notifier-shogun: Move lapack.h include into implementation09:27
@wikingheheh cool irker came back09:27
@wiking\o/09:27
-!- lambday [6d9941c0@gateway/web/freenode/ip.109.153.65.192] has quit [Quit: Page closed]09:35
shogun-buildbotbuild #2900 of bsd1 - libshogun is complete: Failure [failed configure]  Build details are at http://buildbot.shogun-toolbox.org/builders/bsd1%20-%20libshogun/builds/2900  blamelist: Viktor Gal <viktor.gal@maeth.com>09:36
shogun-buildbotbuild #38 of xenial - libshogun is complete: Failure [failed test]  Build details are at http://buildbot.shogun-toolbox.org/builders/xenial%20-%20libshogun/builds/38  blamelist: Viktor Gal <viktor.gal@maeth.com>09:38
Saurabh7looks like somethings horribly worng with LARS09:50
@wikingwhy?09:50
Saurabh7wiking: https://gist.github.com/Saurabh7/b0dbd19e9ab7ae06108f9e9b37430f6909:50
Saurabh7look at mse at bottom09:50
@wikingyep09:51
@wikingjust saw it09:51
@wikingmm09:51
@wikingok but wait09:51
@wikingSaurabh7: isn't the dataformat of scikit learn the transpose of what shogun expects?09:52
@wikingso like feat_shogun = feat_scikit^T09:52
@wiking?09:52
Saurabh7yes09:52
@wikingah yeah09:52
@wikingi see09:52
@wikingyou transpose it09:52
Saurabh7I think i ran on develop, so its not me :)09:53
@wikingoh man09:54
@wikingthis is starting scary09:54
@wiking(checking the implementation)09:54
@wiking// transpose(X) is more convenient to work with since we care09:54
@wiking// about features here. After transpose, each row will be a data09:54
@wiking// point while each column corresponds to a feature09:54
@wikingand there's a nested for loop09:54
@wikingfor transposing a matrix09:54
@wiking:909:54
@wikingomfg09:54
@wikingSaurabh7: have you seen this? :)09:55
@wikingok and have you checked the same with your implementation?09:56
@wikingi mean mse09:56
Saurabh7sry lsot connection for a while09:56
Saurabh7no i havent09:56
@wikingcan u run the same on your own implementation09:57
@wiking?09:57
Saurabh7but I just replaced calss and polished a bit09:57
@wikingyep yep09:57
Saurabh7ok09:57
@wikingand this matrix transpose in the train_machine09:59
@wikingshould be replaced09:59
@wikingit's very inefficient09:59
@wikingespecially09:59
@wikingthat then you transpose it back09:59
@wiking:DDDD09:59
@wikinghttps://github.com/shogun-toolbox/shogun/pull/3243/files#diff-c0c82dce2edf38481495103b1ecc4174R15409:59
-!- sanuj [~sanuj@223.176.50.213] has joined #shogun09:59
@wikingsanuj: sent an email10:00
sanujwiking, yeah saw just now10:00
sanujmy internet is down10:00
Saurabh7hmm yeah dunno why its transposed in loops10:00
sanujusing phone's internet10:00
lisitsynwiking: well transpose in eigen3 doesn't transpose the matrix10:01
@wikinglisitsyn: even better :)10:01
@wikingbut pluskid just did10:01
@wikinga for () for() transpose of the matrix10:01
@wikingi.e. copy & transpose10:02
lisitsynwiking: I thought it was for a reason10:02
@wikingand then Saurabh7 now transposing that matrix10:02
@wikingso X^T^T10:02
@wikingyeah i guess it's a reason10:02
@wikingbut X^T^T = X10:02
@wikingso we should just not do it :)10:02
@wikingespecially not that way10:02
@wikingnested loop + copy10:03
lisitsynok ok10:03
@wikingi mean i dont see the point when you double transpose a matrix10:03
@wikingit's lik eNOP10:03
@wiking*like NOP10:03
@wikingor?10:03
lisitsyny all math code has to be that unreadable :(10:03
@wikingdunno10:03
@wikingSaurabh7: maybe first try without transposing :))))10:04
@wikingi mean put in the LARS the untransposed data10:04
@wikinglike for scikit10:04
@wikinghow's the mse then10:05
Saurabh7wiking: you mean in the Feature object?10:08
sanujwiking, sent you a mail10:09
Saurabh7that doesnt work numvec!=num_labels10:09
Saurabh7ok its the same thing in my implementation10:11
-!- HeikoS [~heiko@host-92-0-162-192.as43234.net] has joined #shogun10:17
-!- mode/#shogun [+o HeikoS] by ChanServ10:17
-!- HeikoS [~heiko@host-92-0-162-192.as43234.net] has quit [Client Quit]10:21
shogun-buildbotbuild #29 of FC23 - libshogun - aarch64 is complete: Failure [failed test]  Build details are at http://buildbot.shogun-toolbox.org/builders/FC23%20-%20libshogun%20-%20aarch64/builds/29  blamelist: Viktor Gal <viktor.gal@maeth.com>10:21
Saurabh7wiking: ha I think its a parameter issue10:34
Saurabh7our lambda is something else entirely10:35
Saurabh7sry :)10:35
-!- sanuj [~sanuj@223.176.50.213] has quit [Ping timeout: 240 seconds]10:46
-!- sanuj [~sanuj@223.176.50.213] has joined #shogun10:59
-!- HeikoS [~heiko@host-92-0-162-192.as43234.net] has joined #shogun11:06
-!- mode/#shogun [+o HeikoS] by ChanServ11:06
-!- sanuj [~sanuj@223.176.50.213] has quit [Read error: Connection reset by peer]11:13
-!- sanuj [~sanuj@117.204.255.148] has joined #shogun11:28
sanujwohoo, internet is working again11:28
sanujHeikoS, what's up11:28
@HeikoSsanuj: jo!11:30
@HeikoSsanuj: how are the cookbooks11:30
@HeikoSI fixed the ruby thing11:30
@HeikoSlua doesnt run cookbooks atm11:31
@HeikoSso travis should pass11:31
sanuji'm mailing you the code for neural net cookbook11:31
sanujHeikoS, ruby is still failing11:31
sanuji had rebased and updated the PR a few hrs ago11:31
@HeikoSmmh11:32
@HeikoSlink?11:32
@HeikoScan you maybe run it locally?11:32
sanujHeikoS, okay, let me confirm if i rebased correctly11:32
sanujyes i have rebased correctly11:33
sanujHeikoS, https://travis-ci.org/shogun-toolbox/shogun/jobs/13580508211:33
sanujit fails for java also11:33
@HeikoSsanuj: ok I have to do more fixes then11:34
@HeikoSsanuj: will do in a bit, have to finish something11:34
sanujsure11:34
Saurabh7HeikoS: hi!12:00
@HeikoSSaurabh7: hi!12:00
Saurabh7HeikoS: ok so I did some becnhmarks12:01
Saurabh7HeikoS:  turns out the paramters we use are really different12:01
Saurabh7HeikoS: https://gist.github.com/Saurabh7/b0dbd19e9ab7ae06108f9e9b37430f6912:02
Saurabh7this is done similar way to the framework12:02
@HeikoSin the benchmark of zoq, we compared against skits lasso right?12:04
@HeikoSehm12:04
Saurabh7there are two12:04
@HeikoSthe mse12:04
@HeikoSin the notebook12:04
Saurabh7HeikoS: yes12:04
@HeikoSseems weird12:04
Saurabh7its due to lambda112:04
Saurabh7early stopping12:04
Saurabh7when I disable everything12:04
@HeikoSdoesnt skit have this?12:04
Saurabh7N: 500 D: 200 shogun: 334.170427 , mse: 0.000000 | scikit: 2.653387 , mse: 10416.35284612:04
Saurabh7not in the interface12:05
@HeikoSwe need to compare in a way that both algos make the same number of iterations12:05
@HeikoS(roughly)12:05
@HeikoSSaurabh7: is lars in skit using the same method as in shogun?12:05
Saurabh7HeikoS: Lars yes12:05
Saurabh7thehy have lasso which can do diferently12:06
@HeikoSSaurabh7: lets focus on lars12:07
@HeikoSliblinear can do a lasso later, but for now lars12:07
Saurabh7HeikoS: ok then i will see what no of iters are12:08
@HeikoSSaurabh7: so LassoLars has alpha12:08
@HeikoSand sg has lambda12:08
@HeikoSdo they have the same parametrization?12:08
Saurabh7HeikoS: yes but its Lasso right ?12:08
Saurabh7no i dont think its same12:09
Saurabh7lars is this one http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Lars.html#sklearn.linear_model.Lars12:09
@HeikoSyou took care that normalization is the same?12:10
@HeikoSso important are12:10
@HeikoSeps12:10
@HeikoSfit_path12:10
@HeikoSprecompute12:11
@HeikoSand the regulariser interpretation12:11
@HeikoSgotta check that all is comparable12:11
@HeikoSand then compare the mse12:11
@HeikoSand only if this is very similar, the time comparison makes sense12:11
lisitsyncan one tl;dr me12:12
lisitsynwhat's happening with lars12:12
Saurabh7lisitsyn: just trying to make a fair comparison12:13
lisitsynok cool12:13
Saurabh7with sickit implementation12:13
lisitsynwhy patching it?12:13
lisitsynis it slow?12:13
Saurabh7upating with eigen12:14
Saurabh7lisitsyn: not sure, the comparison itself wasnt fair12:15
-!- lambday [8028b10a@gateway/web/freenode/ip.128.40.177.10] has joined #shogun12:19
-!- mode/#shogun [+o lambday] by ChanServ12:19
@HeikoSlisitsyn: 1.) make code cleaner (using eigen or linalg) 2.) benchmark against sklearn (need to be fair)12:24
@HeikoSlambday:  jo!12:24
lisitsynHeikoS: thanks12:24
@lambdayHeikoS: yo12:24
sanujlisitsyn, i'm writing doc for Any12:27
-!- shogun-notifier- [~irker@7nn.de] has quit [Quit: transmission timeout]12:27
lisitsynsanuj: ok12:27
lisitsyncool12:27
sanujshall i say how we are using it in shogun ?12:27
lisitsynneed help?12:27
lisitsynno not really12:27
sanujthis should be shogun independent right?12:27
sanujlisitsyn, and do i make Tag constructor explicit?12:27
lisitsynyes explicit is better12:28
lisitsynlet me explain why12:28
lisitsynwe could miss some implicit conversion12:28
lisitsynand it causes hashing12:28
sanujokay12:28
lisitsynso we can get some implicit hashing calls12:28
lisitsyn"invisible" for us12:29
sanuji got it12:29
sanujinline bool operator==(const BaseTag& first, const BaseTag& second)12:29
sanujlisitsyn, do i implement it as friend ^12:29
lisitsynsanuj: yes maybe12:30
lisitsynI have no strong opinion on that12:30
lisitsynbut lambday probably had some point ;)12:30
sanujlisitsyn, okay so follow lambday except the spacing thing :)12:30
@lambdayhaha spacing should be uniform.. I prefer to follow what's written there in the coding style..12:30
@lambdayin my personal repositories, I *always* use space between operators and operands :D12:31
sanujyeah12:31
sanujhaha12:31
lisitsynlambday: sanuj: let me ask you to avoid that for now12:32
lisitsynbecause I would get bloody eyes otherwise12:32
sanuj:D12:32
sanujeven i don't like x=y12:32
@lambdaylisitsyn: let's update the coding style doc then12:32
lisitsynlambday: yes pleasse12:32
lisitsynlets revise it12:32
lisitsynlambday: I'd suggest leaning towards google code style :D12:34
@lambdaylisitsyn: the reason I think it is preferred to use the == operator as a friend is because it allows to do something like 42==the_answer; as well as the_answer==another_answer;12:34
lisitsynisn't that we're looking to work in? hahah12:34
@lambday(for template <typename T> struct TheAnswer { TheAnswer(T_value) : value(_value) {} T value; }; )12:34
lisitsynlambday: ok cool12:35
lisitsynI hate 42 == something though12:35
lisitsyn:D12:35
@lambdaylisitsyn: no it's better.. :D12:35
@lambdayif you miss one =, it won't compile :D12:35
lisitsynit's compile job I believe12:35
lisitsyncompiler12:36
@lambdaywell, when writing a library we can't be sure about how the users are going to use it.. so better be flexible..12:36
lisitsynyes sure12:36
sanujlambday, oh, so with non friend implementation i can't do "42 == blah"12:37
sanujonly "blah == 42"12:38
@lambdaysanuj: compiler horror12:38
sanuji see12:38
@lambdaysanuj: yes12:38
@lambdayit is supposed to be commutative12:38
@lambdayso we should design it in such a way12:38
sanujlambday, good point12:39
sanujlambday, btw i got my passport :D12:39
@lambdaysanuj: congratulations :)12:39
sanujhaha12:39
@lambdaymithai khilao :P12:39
lisitsyndo you have two passports?12:40
sanujhaha12:40
lisitsynlike internal one and external one?12:40
lisitsynwe do12:40
sanujlambday, that's what the courier guy said12:40
@lambdaylisitsyn: how does THAT work?12:40
sanujlisitsyn, we have only 1 passport12:40
sanujthank god for that :P12:40
@lambdaysanuj: did you have to bribe somebody? :D12:40
lisitsynlambday: I use other one once I leave country12:40
@lambdaylisitsyn: but it's still Russian passport, right?12:41
lisitsynlambday: yes https://en.wikipedia.org/wiki/International_passport12:41
@lambdaylisitsyn: aha!12:41
sanujlambday, no :) but i had to spend useless hours in the passport office12:41
lisitsynlambday: they also put different name for me haha12:42
lisitsyndue to transliteration issues12:42
lisitsynwe kinda don't agree how my name looks like in latin12:42
lisitsyn:D12:42
@lambdaylisitsyn: neither do we :D12:42
sanujlisitsyn, you have latin on your passport?12:42
lisitsynsanuj: yes international one is in latin so others can read12:42
@lambdaysanuj: English IS latin12:42
@lambdayxD12:43
sanujXD12:43
lisitsynah that's what you mean12:43
lisitsynyes I mean latin letters12:43
lisitsynnot cyrillic ones12:43
sanujlambday, latin is the language of ancient rome :P12:43
@lambdaysanuj: haha yeah I know but he was talking about the alphabet I assume :D12:44
@lambdayjust like arabic numerals :D12:44
-!- HeikoS [~heiko@host-92-0-162-192.as43234.net] has quit [Quit: Leaving.]12:44
@lambdaynobody writes those in arabic12:44
sanujhaha12:44
sanujcorrect12:44
@lambdayI mean, some people do12:44
@lambday:/12:44
@lambdayarabs12:45
sanujlambday, how to do the afk thing :P12:45
sanuji know it has /away in it12:45
@lambdayslash me <your status>12:45
* lambday snores12:45
@lambdayno space between slash and me12:45
sanujokay12:45
* sanuj going to eat12:46
sanujcool!12:46
@lambdaysanuj: chai pohey?12:46
sanujlambday, fruits12:46
@lambdaygood habit12:47
sanuj:D12:47
* sanuj back13:02
@lambdaysanuj: BTW please add documentation for the PR.. it's really important :) this stuff is all new..13:26
sanujlambday, yes i'm doing that13:26
-!- HeikoS [~heiko@host-92-0-162-192.as43234.net] has joined #shogun13:33
-!- mode/#shogun [+o HeikoS] by ChanServ13:33
@wikinghey13:58
@wikingsanuj: i will check now13:58
sanujokay14:00
@wikingsanuj: ok so why do you expect python3 work with the interface compiled for python2?14:05
sanujwiking, because when i manually run them, they fail with python3 and run with python214:06
sanujwiking, and the examples that fail with python3 are also the ones that fail with "make test"14:06
@wikingbut helloooooooooooo14:08
@wikingwhy do you expect anything to work on python314:08
@wikingwhen you compile the interface for python2?14:08
@wikingit's not shogun's fault that python lacks any responsibility for compatibility14:08
@wiking(even amongst patches...)14:08
@wikingif you compile the modular interface for python214:09
@wikingyou should use python2 for testing14:09
@wikingif you compile it for python314:09
@wikingyou should use python3 (the very same interpreter, not any python3) for testing14:10
-!- HeikoS [~heiko@host-92-0-162-192.as43234.net] has quit [Quit: Leaving.]14:10
sanujwiking, i'm just doing "make test" after building shogun14:10
sanujwhy are they failing14:10
sanuji haven't configured anything for it to use python3 (if it is indeed using)14:10
sanujwiking, ?14:12
@wikingrun ctest14:12
@wikingsee what it does14:12
@wikingand if you type: python --version14:12
@wikingwhat's the output14:13
sanujwiking, i have tried that, it also fails the same test14:13
sanujoutput is python 2.7.614:13
-!- besser82 [~besser82@fedora/besser82] has joined #shogun14:15
-!- mode/#shogun [+o besser82] by ChanServ14:15
@wikingok so still i dont get where python3 comes into action here14:15
@wikingsanuj: can you pastebin this to me: ctest -R PeriodicKernelTest -VV14:15
@wiking(i mean the output)14:15
sanujokay14:15
-!- besser82_ [~besser82@fedora/besser82] has joined #shogun14:17
-!- mode/#shogun [+o besser82_] by ChanServ14:17
-!- besser82 [~besser82@fedora/besser82] has quit [Ping timeout: 260 seconds]14:19
sanujwiking, http://pastebin.com/kyLpUBca14:21
-!- besser82_ [~besser82@fedora/besser82] has quit [Ping timeout: 250 seconds]14:22
-!- sanuj [~sanuj@117.204.255.148] has quit [Quit: Leaving]14:27
-!- sanuj [~sanuj@117.204.255.148] has joined #shogun14:27
sanujwiking, what do you think?14:27
@wikingmmm moading14:30
@wiking*loading14:30
@wikingmmm14:33
@wikingsanuj: ok so now try a simple python modular test14:33
@wikingany is good14:33
@wikingwith -VV14:33
-!- besser82_ [~besser82@fedora/besser82] has joined #shogun14:36
-!- mode/#shogun [+o besser82_] by ChanServ14:36
sanujwiking, i tried a test which was failing14:37
sanujhttp://pastebin.com/Pvh4zRwN14:37
sanujmy PYTHONPATH=/home/sanuj/Projects/shogun_cb/buildpy/src/interfaces/python_modular14:38
sanujand LD_LIBRARY_PATH=/home/sanuj/Projects/shogun_cb/buildpy/src/shogun14:39
@wikingah ok14:39
@wikinghave you done make install14:39
@wikingto those paths14:39
@wikingbut yeah the thing is that in case of python modular14:39
@wikingi had to do make install14:40
sanuji have done make14:40
@wikingto be able to test14:40
@wikingunfortunatley14:40
@wikingcouldn't really hack the env vars in the right way14:40
sanujokay, let me try make install14:40
-!- besser82_ [~besser82@fedora/besser82] has quit [Ping timeout: 258 seconds]14:40
@wikingbut that'll install it to cmake_install_prefix14:40
@wikingthat usually by default is /usr/local14:40
sanujoh14:41
@wikingyou can change that though14:41
sanujbut the above paths contains what is required14:41
sanuj_modshogun.so14:41
sanujand libshogun.so14:42
sanujso it should work right?14:42
@wikingmmm14:42
@wikingagain as said14:42
sanujwiking, i had done "make install" in a separate build, used it's env variables14:43
@wikingi've tried that way14:43
sanujstill gives the same error14:43
@wikingbut for some reason couldn't do it14:43
sanujwiking, but "make install" also will not work :/14:44
sanujwiking, okay so i was wrong about python314:47
sanujonly those tests pass which have something like "try: from modshogun import bla"14:48
sanuji'll just let it be then :/14:48
@wikingyes14:48
sanujif "make install" is also not working then i don't see how else to make it work14:49
-!- shogun-buildbot [~shogun-bu@7nn.de] has quit [Quit: buildmaster reconfigured: bot disconnecting]14:50
-!- shogun-buildbot [~shogun-bu@7nn.de] has joined #shogun14:50
-!- besser82_ [~besser82@fedora/besser82] has joined #shogun14:53
-!- mode/#shogun [+o besser82_] by ChanServ14:53
-!- sanuj [~sanuj@117.204.255.148] has quit [Ping timeout: 264 seconds]15:09
-!- besser82_ [~besser82@fedora/besser82] has quit [Ping timeout: 258 seconds]15:09
-!- besser82 [~besser82@fedora/besser82] has joined #shogun15:36
-!- mode/#shogun [+o besser82] by ChanServ15:36
-!- sanuj [~sanuj@117.204.255.148] has joined #shogun15:39
-!- besser82 [~besser82@fedora/besser82] has quit [Ping timeout: 260 seconds]15:46
-!- HeikoS [~heiko@nat-162-194.internal.eduroam.ucl.ac.uk] has joined #shogun15:54
-!- mode/#shogun [+o HeikoS] by ChanServ15:54
-!- besser82 [~besser82@fedora/besser82] has joined #shogun15:58
-!- mode/#shogun [+o besser82] by ChanServ15:58
@HeikoSsanuj:  jo15:59
@HeikoSSaurabh7:  jo15:59
sanujhi16:00
Saurabh7HeikoS: o16:00
Saurabh7HeikoS: did you see the new results ?16:00
@HeikoSSaurabh7: no, where are they?16:00
@HeikoSsanuj: so I will check the meta example stuff now16:01
Saurabh7HeikoS: I posted here https://github.com/shogun-toolbox/shogun/pull/324316:01
sanujHeikoS, cool16:01
@HeikoShttps://gist.github.com/Saurabh7/b07c65df21a4fe498284a8086fe617b816:03
@HeikoSSaurabh7: ^ this one?16:04
Saurabh7HeikoS: yes16:04
@HeikoSok16:04
@HeikoSmmh16:04
@HeikoSyou know it is really hard to see patterns in this form of presenting in :)16:05
@HeikoSwhen does shogun loose?16:05
Saurabh7HeikoS: ok i will clean it up in a bit16:05
Saurabh7HeikoS:  the mse is much better for som reason16:05
@HeikoSSaurabh7: what is the number of relevant features?16:05
sanujlisitsyn, can you help me in documenting any by commenting in the PR16:05
@HeikoSSaurabh7: did you make sure the regularisation constant is the same?16:05
sanujnot sure what all to document in there16:06
@wikingSaurabh7: plz remove those transpose of a transpose16:06
sanujand i think you would be able to explain stuff in a better way16:06
@HeikoSSaurabh7: also, does it compute the whole regularisation path? or just one solution?16:06
Saurabh7HeikoS: I changed the epsilon adding new param16:06
@HeikoSSaurabh7: what makes me a bit suspicious is that the mse is not the same16:07
@HeikoSwhy would that be for same algorithm and same parameters?16:07
@HeikoSSaurabh7: wiking is right, you can just use eigen for that outer product16:08
@HeikoSSaurabh7: eigen transposes cost nothing16:08
@HeikoSSaurabh7: one more request, can you please in your weekly email say what cookbooks you will do next week in order to avoid conflicts with others?16:09
Saurabh7yes i dont understand the mse, but the iter are almost the same16:09
Saurabh7HeikoS: ok16:09
@HeikoSSaurabh7: sometimes people re-write the regularisation parameters16:09
@HeikoSlike n*lambda16:09
@HeikoS1/lambda16:09
@HeikoSn/lambda16:09
@HeikoSall common16:09
-!- OXPHOS [9d8b131c@gateway/web/freenode/ip.157.139.19.28] has joined #shogun16:16
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun16:18
shogun-notifier-shogun: Heiko Strathmann :develop * ae0e85a / examples/meta/generator/targets/ruby.json: https://github.com/shogun-toolbox/shogun/commit/ae0e85aef2c97c88c77453e80cfb0b3379c140e416:18
shogun-notifier-shogun: fix copy paste errors in ruby static calls16:18
@HeikoSsanuj: I just pushed16:18
sanujokay16:18
@HeikoSsanuj: made stupid errors before, copy paste, now it should work16:18
sanujHeikoS, did you see my mail regarding neural net cookbook?16:18
@HeikoSnot yet16:19
@HeikoSchecking16:19
sanujokay16:19
@HeikoSOXPHOS: hi16:19
@HeikoSOXPHOS: just pushed another change to meta examples and static calls16:19
@HeikoSruby should work now16:20
OXPHOSHeikoS: Hi thanks!16:20
sanujHeikoS, did you merge your PR?16:20
sanujor waiting for travis?16:20
@HeikoSsanuj: I pushed straight to develop16:21
@HeikoSso you can rebase16:21
@HeikoSworks locally16:21
sanujokay16:21
@HeikoSsanuj: ok16:22
@HeikoSso your listing16:22
sanujyes16:22
@HeikoSis not swig compatible16:22
@HeikoSthis is what I meant yesterday16:22
@HeikoSyou cannot directly access members in swig16:23
@HeikoSyou have to call methods16:23
@HeikoSi tranlsated the listing16:23
@HeikoSand the ruby version of it runs fine16:23
@HeikoSthe commented out stuff doesnt make sense16:23
@HeikoSsanuj: comments?16:24
sanujHeikoS, when you say listing, you are talking about adding layers to network?16:24
@HeikoS?16:24
@HeikoSlisting = the file you sent16:24
@HeikoS(as it is)16:24
@HeikoSsanuj: maybe lets start again16:24
@HeikoSsanuj: so I have the file, it works, what is the problem?16:24
sanujHeikoS, how is it working?16:25
@HeikoSsanuj: (should always describe what is wrong "doesnt work" is not useful)16:25
sanujthe translation is fine16:25
@HeikoSsanuj:  what doesnt work for you?16:25
sanuji tried running it in python because cpp did not build(for some reason)16:25
sanujit gives seg fault16:26
sanujwhen i run it in python16:26
@HeikoSthis doesnt make sense16:26
@HeikoSbut lets start with cpp16:26
@HeikoSwhats the problem there?16:26
shogun-buildbotbuild #2901 of bsd1 - libshogun is complete: Failure [failed configure]  Build details are at http://buildbot.shogun-toolbox.org/builders/bsd1%20-%20libshogun/builds/2901  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>16:26
sanujHeikoS, i was not able to build cpp so i only checked python16:26
@HeikoSdude, error message please !16:27
@HeikoS :)16:27
sanujbut when i had tried it last week, i was getting problems with cpp also which i don't remember16:27
shogun-buildbotbuild #39 of xenial - libshogun is complete: Failure [failed test]  Build details are at http://buildbot.shogun-toolbox.org/builders/xenial%20-%20libshogun/builds/39  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>16:27
@HeikoSnot sure how to get this across, but I can't help otherwise ;)16:27
OXPHOSlambday: hey thanks for the comments!16:27
sanujHeikoS, i got "Segmentation Fault" when i ran it in python16:27
@HeikoSno python please16:27
sanujHeikoS, can you try running it on your local?16:27
@HeikoSlets focus one thing after the other16:27
OXPHOSlambday: dunno where the indentation problems come from..I used tabs and they look just normal in Atom..16:28
-!- besser82 [~besser82@fedora/besser82] has quit [Ping timeout: 272 seconds]16:28
@HeikoSsanuj: so building cpp fails16:28
@HeikoSsanuj: let's check why16:29
sanujyeah16:29
@HeikoSsanuj: can you try that locally as well please?16:29
@HeikoSI want to show how to solve such problems16:29
sanuji ran this last week so i don't remember the exact error16:29
sanujyeah16:29
@HeikoSsanuj: compiler errors are the easiest to fix16:29
@HeikoSsanuj: run it now then16:29
@HeikoSand lets look at it together16:30
OXPHOSHeikoS: hey actually init_random() fails in java and r as well16:31
OXPHOSnot sure whether you saw my comments16:31
OXPHOShttps://github.com/shogun-toolbox/shogun/pull/318316:31
sanujHeikoS, i did "make build_cpp_meta_examples" but feedforward_net_classification.cpp was not built16:31
@HeikoSsanuj: what does that mean?16:32
@HeikoS"not build"16:32
@HeikoS?16:32
@HeikoSOXPHOS: will check in a sec16:32
sanujHeikoS, it mean i don't see an executable with name "feedforward_net_classification" alongside "feedforward_net_classification.cpp" in "buildpy/examples/meta/cpp"16:33
sanujmeans*16:33
@HeikoSsanuj: cmake tells which examples it builds16:34
sanujyes16:34
@HeikoSis it in there or not?16:34
sanujno it's not16:34
sanujit got translated but didn't compile16:34
sanuji'll share the output16:34
@HeikoSsanuj: nono16:34
@HeikoSre-run cmake16:34
sanujokay16:34
@HeikoSlook16:34
@HeikoSif cmake doesnt know it is there (for example you added the .sg listing after running cmake) then it will not attempt to build it (how could it)16:35
@HeikoSso that is not a random error16:35
sanujokay16:35
@HeikoSwhen running cmake, it scans for all available meta example listings and adds the make targets16:35
@HeikoSso you have to re-run after adding meta examples16:35
sanujalright, it's running16:36
sanujLinking CXX shared library libshogun.so16:36
@HeikoSOXPHOS: I pushed another fix just a moment ago16:36
@HeikoSOXPHOS: this will resolve the ruby fail16:36
@HeikoSOXPHOS: java will still fail (sigh), I have to put a fix for that (working on it atm)16:37
@HeikoSsanuj: and?16:37
sanujHeikoS, okay, it's build now :)16:37
@HeikoSreally?16:38
@HeikoSI get a compile error16:38
sanujyeah16:38
@HeikoSwith the  file you sent16:38
sanujoh, let me update my file16:38
OXPHOSHeikoS: thx! we're making progress ;)16:38
-!- arianepaola [~ariane@unaffiliated/arianepaola] has quit [Ping timeout: 258 seconds]16:39
sanujHeikoS, i'm also getting error16:39
@HeikoSsanuj: compile error?16:39
sanujHeikoS, yes, error: no match for ‘operator=’16:40
@HeikoSyes, so have a think what can cause that16:40
@HeikoSit is a mismatch between Some<X> and X16:40
@HeikoSlisitsyn: are you around?16:40
lisitsynyes16:41
-!- besser82 [~besser82@fedora/besser82] has joined #shogun16:41
-!- mode/#shogun [+o besser82] by ChanServ16:41
lisitsynwhats up16:41
@HeikoSlisitsyn: so with your some16:41
@HeikoSI cannot do this:16:41
@HeikoSauto layers = some<CNeuralLayers>();16:41
@HeikoSlayers = layers->input(num_feats);16:41
@HeikoSwhere layers->input() returns CNeuralLayers*16:41
lisitsynin C++?16:42
-!- arianepaola [~ariane@unaffiliated/arianepaola] has joined #shogun16:42
@HeikoSyep16:42
sanujoh i see16:42
OXPHOSlog: 6/6/16 cookbook - multiclass lr and multiclass linear machine - ready to merge. updated linalg benchmark. reloaded cereal save/load methods' names16:42
@HeikoSsince Some overloads the = operator16:42
lisitsynI thought should be possible?16:42
lisitsynlemme check16:42
@HeikoSerror: no match for ‘operator=’ (operand types are ‘shogun::Some<shogun::CNeuralLayers>’ and ‘shogun::CNeuralLayers*’)16:42
@HeikoS layers = layers->input(num_feats);16:42
@HeikoSOXPHOS: thanks ! :)16:42
lisitsynhmmm16:43
lisitsynshould implement that then16:43
@HeikoSlisitsyn: yep, it is overwriting the old one16:43
lisitsyncan add in a minute16:43
@HeikoSlhs is Some<X>, rhs is X*16:43
lisitsynyes I get it16:43
@HeikoScool16:43
lisitsynshould I add one?16:43
@HeikoSlisitsyn: please do16:44
sanujHeikoS, we should make this work too => network.l2_coefficient = 0.116:44
@HeikoSsanuj: you see, we digged a bit, found the error, and a solution is easy to add16:44
@HeikoSjust requires a bit of care16:44
sanujyeah16:44
sanujokay, i'll record the error properly from next time16:45
@HeikoSsanuj: please try to do exactly this kind of approach when you have problems, just stating something doesnt work really doenst help16:45
@HeikoScool16:45
@HeikoSsanuj: I am sure mostly you can fix things yourself (or ask for help in fixing them)16:45
@HeikoSespecially compiler errors16:45
@HeikoSare really easy16:45
@HeikoSas it exactly tells you what is wrong16:45
@HeikoSOXPHOS: ^ this is also interesting for you16:45
sanujHeikoS, alright :)16:45
@HeikoSsanuj: ok now for the other thing16:45
@HeikoSthese commeted out lines16:46
@HeikoSnetwork.l2_coefficient = 0.116:46
@HeikoSas I said, this doesnt work from any swig interface16:46
OXPHOSI see16:46
@HeikoS(or does it)16:46
sanujHeikoS, what do you mean by swig interface?16:47
@HeikoSsanuj: shogun has two way it can be used in16:47
sanujit works in target languages like python16:47
@HeikoSsanuj: 1. directly interface with c++ classes16:47
@HeikoS2.) interface from the modular targets (python,octave,etc)16:47
@HeikoS2. = swig interface16:48
@HeikoSswig interface = everything defined under "interfaces/modular/*.i"16:48
@HeikoSin particular, 1!=216:48
sanujyeah i know that16:48
@HeikoSso the meta examples work on swig interface16:48
@HeikoSapart from cpp obviously16:48
lisitsynmehh needs unittest16:49
@HeikoSsanuj: so in swig interface, you cannot directly access member variables16:49
@HeikoSso calls like network.l2_coefficient = 0.116:49
@HeikoSare not possible16:49
@HeikoSyou can only do that in c16:49
@HeikoSc++16:49
sanujnot even public member variables16:49
@HeikoSsanuj: so it doesnt make sense to have this in the meta example16:49
lisitsynwell swig can generate some stuff for that16:49
sanujthen we need functions to do it16:50
@HeikoSlisitsyn: do we have that?16:50
lisitsynnot sure16:50
lisitsynprobably disabled16:50
@HeikoSlisitsyn: we shouldn't anyways16:50
lisitsynyes16:50
@HeikoSsanuj: did you find any modular example that does this?16:50
sanujHeikoS, i don't think so16:50
sanujcan i add set/get for these variables in the code then?16:51
@HeikoSsanuj: how are things done in the modular example and the notebook?16:51
@HeikoSlisitsyn: let me know once you pushed16:51
@HeikoSsanuj: because that is something you can orient yourself at16:52
lisitsynHeikoS: yeah finishing unit test16:52
@HeikoSsanuj: they are already using the swig interface16:52
@HeikoSsanuj: so should be translatable 1 to 1 to meta example16:52
sanujHeikoS, https://github.com/shogun-toolbox/shogun/blob/develop/doc/ipython-notebooks/neuralnets/neuralnets_digits.ipynb16:53
sanujit has stuff like "net_no_reg.epsilon = 1e-6"16:53
@HeikoSsanuj: aha, so we *do* have this in the python examples16:54
@HeikoSlisitsyn: ^ interesting isn't it?16:54
@HeikoSsanuj: ok, this is why you used it, right?16:55
lisitsynHeikoS: yes so it works16:55
lisitsyn:D16:55
@HeikoSok then, it seems our swig configuration actually generates this16:55
lisitsynyes16:55
@HeikoSlisitsyn: but it shouldn't really16:55
@HeikoSlisitsyn:  or do you think it should?16:55
@HeikoSwhy are these things public anyways?16:56
lisitsynHeikoS: mistake16:56
@lambdayOXPHOS: heya16:56
@HeikoSlisitsyn: ok16:56
@lambdayOXPHOS: what's wrong with tabs :P16:56
@HeikoSsanuj: ok, so you stumbled over something that shouldnt be like this16:56
@HeikoSNeuralNetwork.h has its member variables set to public16:57
OXPHOSlambday: hey! no idea but they're just messed up :(16:57
@HeikoSsanuj: I suggest you create an issue "Make NeuralNetwork member varialbes private and fix notebook"16:57
@HeikoSsanuj: and then we need setters16:57
@HeikoSsanuj: should only take a few minutes to send a PR for this16:57
@HeikoSsanuj: but it needs to be separate from the meta example ok?16:58
sanujalright16:58
sanujyeah16:58
@HeikoSsanuj: this will all be a thing of the past with your tags btw ;)16:58
@HeikoSsoo16:58
@HeikoSbut for now we will just add setters16:58
OXPHOSlambday: should we do sg_linalg->set_cpubackend init.cpp? or can we?16:59
@lambdayOXPHOS: this should already be done in the constructor of SGLinalg itself16:59
@HeikoSsanuj: btw, the reason why the meta examples dont translate here is that writing to member variables is not in the meta language grammar16:59
@lambdayCPU backend should **always** be there16:59
@HeikoSsanuj: so it doesnt parse the .sg listing if you do that17:00
OXPHOSlambday: sure17:00
@HeikoSsanuj: the PR will: 1.) make the members private 2.) add setters for all of them 3.) adjust all unit tests/examples/notebooks to use the setters rather than direct access.17:00
@HeikoSsanuj: mostly copy paste and grep17:00
@HeikoSsanuj: ping me and I can merge it17:01
@HeikoSplease check all NN notebooks for this so that we dont introduce more errors in the notebook build17:01
sanujHeikoS, we just do it for NeuralNets right?17:02
sanujnot any other class?17:02
lisitsynsanuj: well for any class with public members17:03
@HeikoSsanuj: do it for everything you need in the meta examples17:03
lisitsynbut neural nets is one we know about17:03
shogun-buildbotbuild #30 of FC23 - libshogun - aarch64 is complete: Failure [failed test]  Build details are at http://buildbot.shogun-toolbox.org/builders/FC23%20-%20libshogun%20-%20aarch64/builds/30  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>17:03
@HeikoSlisitsyn, sanuj I think NeuralNet is fine for now17:03
@HeikoSif you find more (and need them) do them on the fly17:03
sanujokay17:04
@HeikoSotherwise it is not worth the work now as tags are incoming17:04
lisitsynwe don't have many of these17:04
lisitsynit happens when people ignore rules :D17:04
@HeikoSlisitsyn: I wonder who merged that class  :D:D17:04
lisitsynyes17:04
lisitsyndouble fault17:04
lisitsynit seems I was like ohh ok lets merge it now or never17:05
@HeikoSyeah17:05
@HeikoSwhich is good17:05
@HeikoSsince otherwise it would not be there17:05
lisitsynyeah tags are coming :D17:05
@HeikoSok fixing java meta examples now17:05
lisitsynI am checking tests now17:05
lisitsynfor =17:05
@HeikoSsanuj: can you do the PR now?17:05
@HeikoSthen we can merge and proceed fast17:05
sanujlisitsyn, can you help with writing doc for any by commenting in my PR17:05
lisitsynyes17:06
sanujlisitsyn, you would be able to explain better17:06
sanujthanks17:06
@HeikoSsanuj: and make sure to start a new branch for it, so that the PR is nice and clean, makes everything go faster17:06
sanujHeikoS, i'll do it before sleeping17:06
sanujneed to have dinner now17:07
@HeikoSsanuj: great!17:07
@HeikoSok enjoy your dinner17:07
sanujyeah17:07
sanujbye17:07
-!- sanuj [~sanuj@117.204.255.148] has quit [Ping timeout: 258 seconds]17:11
@wikinghmmmz17:14
@wikingHeikoS: pingzoooo17:15
shogun-notifier-shogun: Sergey Lisitsyn :develop * ed0cc9e / src/shogun/base/some.h,tests/unit/base/Some_unittest.cc: https://github.com/shogun-toolbox/shogun/commit/ed0cc9ecd8f3bd26581227827ff57526d34edef817:15
shogun-notifier-shogun: Support assignment in Some17:15
lisitsynHeikoS: here you go ^17:15
@HeikoSlisitsyn: thanks!17:15
@wikingbtw lisitsyn any ideas about the leakage of Some?17:15
@HeikoSwiking: jo17:15
lisitsynwiking: they can't leak!17:15
lisitsyn:D17:15
lisitsynookkk let me check while I am here17:16
@wikinglisitsyn: yeah i know but still17:16
@wikingjust teach valgrind to ignore it then17:16
lisitsynnonono17:16
lisitsynvalgrind is right17:16
@wikingHeikoS: so seems we have 2 new errors on aarch6417:16
@wikingintegration_meta_cpp-classifier-quadratic_discriminant_analysis17:16
@HeikoSwiking: ay17:16
@wikingintegration_meta_cpp-regression-support_vector_regression17:16
@wikingi'm gonna see wtf17:17
@wikingin QDA do we use eigne?17:17
@HeikoSdont kno17:17
@HeikoSlemme check17:17
@HeikoSwiking: I mean this is good17:17
@HeikoSsince now we catch the error ;)17:17
@HeikoSit was there before but just unnoticed17:17
@HeikoSmeta example massively increase coverage17:17
@HeikoSwiking: checked, it is heavy eigen317:18
lisitsynwiking: can you point me to valgrind log please17:19
@wikinglisitsyn:17:20
@wikinghttp://buildbot.shogun-toolbox.org/memcheck/20160607-0111.html17:20
lisitsynthanks a lot17:20
@wikingnw17:20
@wikingHeikoS: ok so integration_meta_cpp-regression-support_vector_regression returns 117:20
@wikinglemme see the cookbook17:20
lisitsynwiking: looks like not all objects are leaked..17:21
lisitsynintersting17:21
@HeikoSwiking: this is when produced output of cpp meta example doesnt match reference17:21
@HeikoSas in de-serialize reference and run equals()17:21
@HeikoSwiking: might be accuracy in equals17:21
@wikingok i'll gdb it17:22
shogun-buildbotbuild #2902 of bsd1 - libshogun is complete: Failure [failed configure]  Build details are at http://buildbot.shogun-toolbox.org/builders/bsd1%20-%20libshogun/builds/2902  blamelist: Sergey Lisitsyn <lisitsyn.s.o@gmail.com>17:23
shogun-buildbotbuild #40 of xenial - libshogun is complete: Failure [failed test]  Build details are at http://buildbot.shogun-toolbox.org/builders/xenial%20-%20libshogun/builds/40  blamelist: Sergey Lisitsyn <lisitsyn.s.o@gmail.com>17:24
@wikingbtw you know what we should clean up a bit HeikoS & lisitsyn17:29
@wikinglines like these CDenseFeatures< float64_t >* rf = (CDenseFeatures< float64_t >*) m_features;17:29
lisitsynmeh17:29
@wikingi mean why do we care if it's like CDenseFeatures< float64_t > or CDenseFeatures< float32_t >17:30
@wiking?17:30
lisitsynyes17:30
lisitsynwiking: I believe17:30
lisitsynit should be Features17:30
lisitsynthat's it17:30
@wikingyes17:30
@wikingbecause like this17:30
@wikingour api allows CFeatures*17:31
@wikingbut then actually a lot of preprocessors17:31
@wikingand models17:31
@wikingwill only work with CDenseFeatures< float64_t >17:31
@wikingspecifically17:31
@wikingnot even allowing single precision17:31
@wikingwhich is like wtf?17:31
@wikingHeikoS: ?17:31
@HeikoSsorry17:31
@HeikoSwas fixing stuff17:31
@HeikoSyeah17:32
@HeikoSagreed17:32
@HeikoSclean up needed17:32
@HeikoSand proper desin17:32
@HeikoSsame with const actually17:32
@HeikoSpreprocessors and const features17:32
@HeikoSwe need readonly views on features17:32
@HeikoSthat are thread safe17:32
@HeikoSand slicable17:32
@HeikoSin all directions17:32
@HeikoSand then preprocessors need to be readonly (or not)17:33
@wikingyeah but lets not mix that17:33
@HeikoSbut currently its all a mix17:33
@HeikoSsure17:33
@wikingi just checked quickly17:33
@wikingthere are 59 implementations (classes)17:34
@wikingthat use this explicit class17:34
@wiking*cast17:35
@HeikoSwiking: I think we need to think of a proper way to do this17:35
@HeikoSnot sure why we use float64_t explicitly everywhere17:36
@HeikoSshould be T17:36
@HeikoSbut then say eigen17:36
@HeikoSrequires MatrixXd or MatrixXf17:36
@wikingyeah but that can be template tested -> generated17:36
@wiking:)17:36
@wikingugly but works17:36
@wikingand would be better than now... i mean i really dont see the rational17:37
@wikingbut many people followed this17:37
@wikingcast it to directly float64_t dense and bye bye17:38
@HeikoSyep17:38
@HeikoSI do that in my prototype code due to the lack of a principled way to solve this problem17:38
@wikingk17:39
@HeikoStemplating eigen3 is a good idea17:39
@wikingso lets principalize it17:39
@wiking:D17:39
@HeikoSagreed!17:39
@HeikoShow?17:39
@wikingmmm just checking which pr could be the guinea pig for this17:40
@wikinghah perfecto!17:40
@wikinghttps://github.com/Saurabh7/shogun/blob/89343af72b5bbc8308d9430c1fbcd379398e037a/src/shogun/regression/LeastAngleRegression.cpp#L11817:40
@wikinglARS17:40
lisitsyni hate this boileplate checks17:41
@HeikoSlisitsyn: ?17:41
@wikingi guess he means this https://github.com/Saurabh7/shogun/blob/89343af72b5bbc8308d9430c1fbcd379398e037a/src/shogun/regression/LeastAngleRegression.cpp#L112-L11517:41
@wikingand the rest aboe17:41
lisitsynGOSHH17:41
@wiking*above17:41
@HeikoShaha17:42
@HeikoSok so lets clean up lars17:42
@HeikoSit is being touched already anyways17:42
@wikingmmm btw17:42
@HeikoSthough focus of Saurabh7 is performance17:42
@wikingheheh yeah but still17:42
@wikingthere are lot of shit there17:42
@HeikoSnot sure whether we should distract too much  from original goal17:42
@HeikoSyeah I know17:43
@wikingokok let him finish with the fixes17:43
@HeikoSwiking: yeah definitely two step17:43
@HeikoSfirst: use eigen17:43
@wikingi'm just wondering if let say we could do this with this code17:43
@HeikoSmake readable17:43
@HeikoSmake fast17:43
@wikingas a guinea pig17:43
@HeikoSand then17:43
@HeikoSwe can have macros for eigen types17:43
@HeikoSthat are derived from T17:43
@wikingbtw lars17:43
@wikingyou could calculate the lars of an int32_T or int64_t no?17:44
@wikingi mean yeah you might need int32_t -> float17:44
@wikingbut still17:44
@HeikoSfor the features, yes17:44
@HeikoSnot output17:44
@HeikoSw17:44
@HeikoSis float17:44
@HeikoSbut then17:44
@HeikoSfeatures have to be zero mean and unit std-dev17:45
@HeikoSso it doesnt really make sense on non floating point17:45
@HeikoSfurthermore17:45
@HeikoSit is not really mem intense17:45
@wikingsay if you wanna save memory :P17:45
@HeikoSmuch earlier the time is out of controll17:45
@HeikoSso 64 bit is fine in fact17:45
@HeikoSkernel algorithms would be better17:45
@HeikoSlike nystrom PR17:45
@HeikoSbut not sure17:46
@wikingi mean17:46
@wikingthis is more in general17:46
@HeikoSyeah17:46
@wikingwe could do many many things on integer features17:46
@HeikoSso this should allow for 32 bit at least17:46
@HeikoSi agree17:46
@HeikoSso we can use this as a case17:46
@HeikoSeven though it doesnt need int17:46
@wikingyeah17:46
@wikingi mean just to allow it17:46
@wikingof course this is not the best usecase17:46
@wikingjust that here we could start setting an example17:47
@wikingand later using the same thing17:47
@wikingeliminate the rest in shogun17:47
@wikingas there's really no need for this limitation in many cases17:47
@wiking(i.e. only dense float64_t features17:47
OXPHOSlambday: there? I have a question17:47
@wiking)17:47
@HeikoSwiking: absolutely17:49
OXPHOSwiking HeikoS: or any of you is free? you seem to be in the middle of something17:50
@HeikoSwiking: at least it should be easy to switch between 64 and 32 bit17:50
@HeikoSOXPHOS: sure17:50
@HeikoSOXPHOS: just submitted a PR for you java problem17:50
@wikingwazaaaaaaaaaaaa17:50
OXPHOSHeikoS: what to pull?17:50
@HeikoSOXPHOS: not yet, I need to run this through travis first17:51
@HeikoSwiking: we also should do proper out of source builds17:51
@HeikoSthis class list drives me mad17:51
OXPHOSHeikoS: ohh you meant you submitted. sry17:51
OXPHOSwiking HeikoS: so I have a method in Linalg, taking CPUbackend instance from outside and set the linalg.cpubackend17:51
OXPHOSvoid Linalg::set_cpu_backend(const CPUBackend* cpubackend)  { m_cpubackend = const_cast<CPUBackend*>(cpubackend); }17:52
OXPHOSwiking HeikoS: is this the appropriate way to use const?17:52
OXPHOSI dont feel good about const_cast actually17:52
@wikingwhy did you want it to be a const?17:52
lisitsynI realize this thing I wrote in some.h is absolute on-brainer17:52
lisitsyn:D17:52
lisitsynno-brainer17:52
@wikingbut then again if you want it17:52
OXPHOSwiking: because it should not be changed17:53
@wikingbut which shouldn't be changed? :)17:53
@HeikoSlisitsyn: ?17:53
OXPHOSthe cpubackend instance?17:53
@wikingbut if you const cast it17:53
lisitsynHeikoS: going to fix now17:53
@wikingthen i dont get it...17:53
lisitsynabsolutely wrong17:53
@wikinglisitsyn: miju17:54
@HeikoSlisitsyn: ping sanuj when you pushed it, it will make his nn meta example easier17:54
lisitsynhok17:54
shogun-notifier-shogun-data: OXPHOS :master * fdf7e4f / testsuite/meta/classifier/multiclass_linearmachine.dat: https://github.com/shogun-toolbox/shogun-data/commit/fdf7e4f7ad9304b1c46a54b1ae3a33b5c0fd0ee017:54
shogun-notifier-shogun-data: dataset17:54
shogun-notifier-shogun-data: Heiko Strathmann :master * 6cee872 / testsuite/meta/classifier/multiclass_linearmachine.dat: https://github.com/shogun-toolbox/shogun-data/commit/6cee872ceeca2882fd7e7a13570630371c80238d17:54
shogun-notifier-shogun-data: Merge pull request #97 from OXPHOS/mclm17:54
shogun-notifier-shogun-data:17:54
@wikingOXPHOS: i mean i guess you have Linalg17:54
shogun-notifier-shogun-data: integration dataset for multiclass linearmachine17:54
OXPHOSwiking: so adding a pointer to one instance is also defined "change"?17:54
@wikingwhich has a m_cpubackend17:54
@wikingthat you want it to be changeable right?17:55
OXPHOSyes17:55
-!- c4goldsw [5da420e6@gateway/web/cgi-irc/kiwiirc.com/ip.93.164.32.230] has joined #shogun17:55
shogun-notifier-shogun-data: OXPHOS :master * 14ade7e / testsuite/meta/classifier/multiclass_logisticregression.dat: https://github.com/shogun-toolbox/shogun-data/commit/14ade7e9c7e09b21308d938df69f1638da3e6b9017:55
shogun-notifier-shogun-data: dataset17:55
shogun-notifier-shogun-data: Heiko Strathmann :master * 7d80262 / testsuite/meta/classifier/multiclass_logisticregression.dat: https://github.com/shogun-toolbox/shogun-data/commit/7d802620d7267d45d6db77f96e6dd5dcc3d5d32017:55
shogun-notifier-shogun-data: Merge pull request #95 from OXPHOS/mclr17:55
shogun-notifier-shogun-data:17:55
shogun-notifier-shogun-data: integration test dataset for multiclass logistic regression17:55
c4goldswHello17:55
@HeikoSc4goldsw: hi there17:55
OXPHOSc4goldsw hi17:55
@HeikoSsorry I havent given feedback yet, still fighting with the weekend of emails (and necessary fixes for the gsoc guys)17:56
c4goldswHeikoS It's fine, I just thought I'd pop on.  Just spent the day finishing off a project.17:56
c4goldswOXPHOS Hey17:56
OXPHOSwiking: the *cpubackend in param list should be something independent of linalg, maybe just a cpu algebra lib other than eigen317:57
@HeikoSc4goldsw: cool17:57
@HeikoSc4goldsw: btw, we might have another nice task to start with getting involved in shogun17:57
@HeikoSwiking: maybe c4goldsw can have  a look at this casting thing17:57
c4goldswCool!17:57
@wikingHeikoS: heheh :)17:58
@HeikoSc4goldsw: there is a conversation between wiking and me about explicit numerical types and that we dont really want that17:58
@wikingOXPHOS: i mean i wouldn't do this const casting17:58
@HeikoSmaybe read it and see whether you understand what we want17:58
@wikingjust pass on the cpu backend and that's all17:58
c4goldswLike having to specify types all the time such as float64_t?17:58
-!- sanuj [~sanuj@117.204.255.148] has joined #shogun17:59
OXPHOSwiking: then it gave error:  assigning to 'shogun::CPUBackend *' from incompatible type       'const shogun::CPUBackend *'     m_cpubackend = cpubackend;17:59
@wikingc4goldsw: do a git grep "(CDenseFeatures<float64_t>*)"|cut -d':' -f1|uniq17:59
@wikingin src/shogun17:59
@wikingi meant18:00
@wikingremove the const from the function arg as well18:00
@wikingso you have set_cpubackend(shogun::CPUBackend * backend) { m_cpubackend = cpubackend; }18:00
c4goldswwiking I'm on Windows, I have to boot into Unix first to get to the source files.18:01
c4goldswUbuntu*18:01
c4goldswbrb18:01
-!- c4goldsw [5da420e6@gateway/web/cgi-irc/kiwiirc.com/ip.93.164.32.230] has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]18:01
OXPHOSwiking: okay then. thanks!18:01
-!- c4goldsw [5da420e6@gateway/web/cgi-irc/kiwiirc.com/ip.93.164.32.230] has joined #shogun18:02
c4goldswwiking back, could you paste that command again please?18:02
OXPHOSHeikoS: thx for the merge! there's also R error caused by init_random() actually..18:02
@wikingc4goldsw: if you use bash it shoudl be18:03
@wikinggit grep "(CDenseFeatures<float64_t>*)"|cut -d':' -f1|uniq18:03
@wikingin src/shogun18:03
c4goldswI do, typing it in.18:04
@wikingcopypqste18:04
@wiking:>18:04
@wikingif it doesn't work18:04
c4goldsw(I meant that)18:04
@wikingespace the *18:04
@wikingso git grep "(CDenseFeatures<float64_t>\*)"|cut -d':' -f1|uniq18:04
c4goldswI got a list of .cpp files18:04
@wikingyeah18:04
@wikingso here if you check the src18:05
@wikingyou'll find similar lines like18:05
OXPHOSHeikoS: Error: unexpected '$' in "Math$$" Execution halted (R)18:05
@wikingSGMatrix<float64_t> feature_matrix = ((CDenseFeatures<float64_t>*)features)->get_feature_matrix();18:05
@wikingor just like18:05
@wikingCDenseFeatures<float64_t>* lhs = (CDenseFeatures<float64_t>*)features18:05
@wikingso the problem with this18:06
@wikingthat even though int he api of the function we claim it supports CFeatures* features18:06
@wikingthat given class will only work with dense double features18:06
@wikingso not even dense float (single precision) features will work18:07
@wikingfor no reason18:07
c4goldswso only float64, right?18:07
@wikingyeah18:07
@wikingwhereas whatever that supports float64_t18:07
@wikingshould be able to be supported with float32_t18:07
@wikingand more18:07
c4goldswAlright, that sounds like a reasonable task.18:08
shogun-buildbotbuild #31 of FC23 - libshogun - aarch64 is complete: Failure [failed test]  Build details are at http://buildbot.shogun-toolbox.org/builders/FC23%20-%20libshogun%20-%20aarch64/builds/31  blamelist: Sergey Lisitsyn <lisitsyn.s.o@gmail.com>18:08
@wikingand of course18:08
@wikingeven densefeatures<int**> would make sense18:08
@wikingsometimes18:08
c4goldswIn what cases?   I was actually wondering when integers would be useful in ML.18:09
@HeikoSOXPHOS: solved the R problem18:09
@wikingand it should be checked whether really the same thing couldn't be done for sparse features?18:09
@wikingc4goldsw: from memory/speed point of view yes18:09
@HeikoSOXPHOS: pushing, just a sec18:09
@wikinginteger arithmetic is faster than float18:09
@lambdayOXPHOS: heya18:09
c4goldswMakes sense - could there be imprecision though?18:09
c4goldswwiking ^18:09
OXPHOSHeikoS: thanks. no rush. just letting u know18:09
@wikingyeah18:10
c4goldswprecision loss*18:10
@HeikoSOXPHOS: I want to get these out of the way asap, so that you guys are not blocked18:10
@wikingbut the user should be aware of that18:10
@wikingwhen he dfineds the feature to be18:10
@wikingint based18:10
c4goldswAlright.   And another question18:10
c4goldswDid you meant int * or int ** ?18:11
@wikingi meant18:11
@wikingint8_t, int16_t, int32_t, uint8_t etc18:11
@wiking:)18:11
c4goldswhaha okay, makes sense.18:11
@wikingbut of course as HeikoS mentioned18:12
@wikingsometimes it's tricky18:12
OXPHOSlambday: hey. im tryting the BaseVector<int32_t> const * const stuff18:12
c4goldswwiking for what reasons?18:13
@wikingbecause we use eigne18:13
OXPHOSlambday: seems as linalg.dot takes non-const pointer, i cannot pass const stuff to it18:13
@wikingand there you have different name for the floating precision for example18:13
-!- besser82 [~besser82@fedora/besser82] has quit [Ping timeout: 260 seconds]18:14
c4goldswwiking: ah, ok.  Is this also an issue with the other linalg libraries (e.g. lapack)?18:14
@wikingyeah18:14
@wikingbut this should be templated18:14
@wikinghopefully18:14
c4goldswSo that developers won't have to worry about the library being used, correct?18:15
@wikingwell the thing is that currently this behaviour18:15
@wikingstarted from somwhere18:15
@wikingand it got copied to many places18:15
@wikingi.e. explicit casting to dense double features18:15
@wikingthe idea is to change this18:16
@wikingat least support single precision floats18:16
@wikingbut possibly other features18:16
@wikingwoudl even make sense in some cases that to make it work with sparse features18:16
c4goldswwiking: What do you mean by sparse features?18:17
@HeikoSwiking: yeah sparse +1, though this usually requires totally different algos18:17
c4goldswas opposed to dense vectors?18:17
@wikingso we have spare features and dense features18:18
@wikingand even thouh say18:18
@wikingshogun/preprocessor/KernelPCA.cpp18:18
@wikingapi claims18:18
@wikingthat it do the kernel pca on any type of feature18:19
@wikingdue to the explicit cast a line 13218:19
@wikingCDenseFeatures<float64_t>* simple_features = (CDenseFeatures<float64_t>*)features;18:19
@wikingit will only do it with CDenseFeatures<float64_t> features18:19
@wikingit wont work with CDenseFeatures<float32_t>18:19
@wikingnor with CSpareFeatures<float64_t>18:20
@wikingalthough based on the api18:20
@wikingit should work18:20
c4goldswThat makes sense - I just wanted to clarify18:20
@wikingmmm no18:20
@wikingactually i just told something bs18:20
@wiking(but for GMM it is true)18:21
@wikingso in case of18:21
@wikingkernelPCA18:21
@wikingit is inherited from CDimensionReductionPreprocessor18:21
@wikingwhich is actually a CDensePreprocessor<float64_t>18:21
@wikingstill i dont see the reason18:21
@wikingwhy a CDimensionReductionPreprocessor can only work on CDensePreprocessor<float64_t>18:21
@HeikoSlisitsyn: still there?18:21
@wikingand why couldn't it work at least on CDensePreprocessor<float32_t>18:21
lisitsynHeikoS: yeah fixing that stuff :D18:22
@HeikoSlisitsyn: multiclass logistic regression, is that based on using a std logistic regression solver and then doing OvO using shogun?18:22
@HeikoSlisitsyn: or how does it work?18:22
lisitsynuhmmm I think its OvR18:22
@HeikoSlisitsyn: ok18:22
@HeikoSbut the slep solver doesnt do that right?18:23
@HeikoSbut you do manually18:23
@wikingc4goldsw: same for shogun/preprocessor/SumOne.cpp18:23
c4goldswwiking: Ok, this makes sense.  With sparse features, I just wanted to clarify that you're suggesting that other less memory demanding data types (like int) are preferable because of the size of sparse vectors / matricies18:23
lisitsynHeikoS: it is regularized to be 'true multiclass'18:23
lisitsynlike L1 over L218:24
lisitsynIIRC18:24
@wikingc4goldsw: or like CChi2Kernel18:24
@wikingthat one is as well tailored to be working only with CDenseFeatures<float64_t>18:24
@wikingc4goldsw: i meant that in many cases even though the api suggest that the method could work on any feature type18:25
@wikingdense or sparse18:25
@wikingit will only work with CDenseFeatures<float64_t>18:25
@wikingnot even with a CSparseFeatures<float64_t> feature18:25
@wikingnot of course that possibly the sparse version willr require a different implementation fo the method18:25
@wikingbus still it should be implemented -- one day18:26
c4goldswYes, that's clear - I just wanted justification as to why we would want use other datatypes in the case of sparse structures :)18:26
@wikingah yeah well because we have those18:26
@wikingand maybe somebody some day would like to use those18:26
@lambdayOXPHOS: do we ever modify the vector inside dot?18:26
@wikingand then he will hit the wall for no reason18:26
@wikingapart from that method being implemented in a shitty way18:27
@lambdayOXPHOS: I think that should be const as well18:27
lisitsynHeikoS: I've checked18:27
lisitsynit is L1 over L2s18:27
@HeikoSdo you have a reference18:27
@lambdaybut for now, for the benchmark, add what works18:27
lisitsynhttps://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/lib/slep/slep_mc_plain_lr.cpp18:27
@lambdayOXPHOS: ^18:27
c4goldswwiking Okay, this all makes sense now.18:27
lisitsynHeikoS: ^ I rewrote something from SLEP18:27
@HeikoSlisitsyn: as in a document18:27
@HeikoSwith math18:27
@HeikoSor wiki18:28
@HeikoSwhatever18:28
@HeikoSlisitsyn: just need something for OXPHOS for the cookbook18:28
lisitsynoh ok18:28
lisitsynhttp://yelab.net/software/SLEP/manual.pdf18:28
c4goldswwiking: So, what's the desired timeline for getting this done?  I'm going to be on holiday for three weeks between late June and mid-July, which will delay me a bit.   I then resume school in September.18:28
@wikinglisitsyn: some or none? :)18:28
lisitsynwiking: I rewrote it without std::shared_ptr18:28
OXPHOSlambday: sure18:29
lisitsynbut apparently STILL get memory leak :D18:29
@HeikoSlisitsyn:  equation 17?18:29
@wikingc4goldsw: since it's opensource18:29
@wiking:)18:29
@wikingif anybody can spend time on this and doit it's great!18:29
lisitsynHeikoS: you're fcking fast!18:29
lisitsynyes18:29
lisitsyn1718:29
lisitsynhas anybody tried that?18:29
lisitsyn:D18:29
c4goldswwiking fair enough!  Where would you suggest starting then?18:30
@HeikoSlisitsyn: I havea time machine18:30
lisitsynHeikoS: good catch in unknown document :D18:30
@HeikoSlisitsyn: wiking what do you guys think about this:18:31
@wikingc4goldsw: any class from those grep :18:31
@wiking:)18:31
c4goldswHeikoS I'm sure you'd be a pretty popular person amongst Bitcoin miners ;)18:31
@HeikoSevery class @brief gets some unified description, including objective functions, etc.18:31
c4goldswWith that machine.18:31
@HeikoSand then in cookbooks, we somehow include that18:31
@HeikoSrather than re-writing everything18:31
@wiking++18:32
lisitsynHeikoS: yes every method should have18:32
@HeikoSand then all implementation specific details in the class docs go somewhere else18:32
lisitsynfloat objective()18:32
@HeikoSlike "you can overload this to do that"18:32
@HeikoScurrently, we are kind of re-writing all the stuff in cookbooks, which I dont really like18:32
@HeikoSbut I did not realise before18:32
@HeikoSquestion is: how to do that ;)18:32
@HeikoSlisitsyn: can we use sphinx for that somehow?18:32
lisitsynnot sure18:33
lisitsynwell we'd need some code I guess18:33
@HeikoSlisitsyn: writing cookbooks then could involve updating the @brief class docs18:34
@HeikoSlisitsyn: but it is a nightmare with references and stuff18:34
@HeikoSlisitsyn: as we currently use bibtex18:34
@HeikoSbut if we had something like18:34
lisitsynit could slow down pretty much18:35
@HeikoS@bla   <--- tag to be extracted for cookbook18:35
@HeikoSand @bla always contains objective function18:35
@HeikoSand the basic math18:35
@HeikoSlisitsyn: it is *so* hard to keep the discipline to always ensure good cookbook math/test18:36
@HeikoSand same for the class docs in @brief18:36
@HeikoSso I wonder whether that would help removing redundant efforts18:36
@HeikoSbut yeah not quite sure *how* exactly to do it18:36
@HeikoSwiking: any ideas?18:36
@HeikoSSaurabh7:  around?18:39
OXPHOSlambday: BENCHMARK_P cannot have template<>18:45
OXPHOSlambday: but if Data is template, I need pass BENCHMARK_P(CPUVector, dot_eigen3, 10, 1000, (BaseVector<T> *A, BaseVector<T> *B))18:46
@lambdayOXPHOS: no.. you'll create the data with Data<float32_t> data; and then pass just as before18:48
@lambdayOXPHOS: the point here is, when you need to change the data type, you just need to change one line in the code18:49
@lambdayit's easier for you :P18:49
OXPHOSlambday: but I have to specify the datatype in BENCHMARK_P param list?18:49
@lambdayOXPHOS: if you're using Data<float32_t>, just pass basevector<float32_t>18:50
@lambdaybetter, have a typedef18:50
@lambdaythen it's truly just 1 line change18:50
OXPHOSlambday: actually for the typedef18:51
OXPHOSthere's one ViennaCL stuff used in both Data and benchmark test18:51
@lambdayOXPHOS: what do you mean?18:51
@lambdayOXPHOS: you can create your own typedef, no?18:51
OXPHOSso i currently have it outside, like: typedef viennacl::vector_base<int32_t, std::size_t, std::ptrdiff_t> VCLVectorBase;18:51
OXPHOSthere's a T in it actually18:52
@lambdayOXPHOS: so you wonder what this might look like if int32_t is changed to, say, float32_t?18:52
c4goldswwiking So, I'm interested.  I've had a long day, so I'll start looking at this again tomorrow (I'll probably have a lot of question too).  Take care.18:52
@lambdayOXPHOS: you just typedef this using T18:53
OXPHOSyes..how can we use template here?18:53
-!- c4goldsw [5da420e6@gateway/web/cgi-irc/kiwiirc.com/ip.93.164.32.230] has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]18:53
@lambdayOXPHOS: something like18:53
@lambdaytypedef viennacl::vector_base<typename value_type, std::size_t, std::ptrdiff_t> VCLVectorBase;18:53
@lambdaywhere value_type is your typedef18:53
@lambdayOXPHOS: get it?18:53
OXPHOScool...but no...what is value_type?18:54
@lambdayOXPHOS: wait18:54
-!- c4goldsw [5da420e6@gateway/web/cgi-irc/kiwiirc.com/ip.93.164.32.230] has joined #shogun18:55
@lambdayOXPHOS: https://gist.github.com/lambday/e6067cc05e736bb300f8386d877156dc18:55
@lambdaywait I didn't say what I meant by having your typedef18:56
OXPHOSlambday: oh i was saying this typedef is outside struct Data{}..18:56
OXPHOScan i do template<T> typedef ...18:57
OXPHOS?18:57
OXPHOSclass T18:57
@lambdayOXPHOS: no but you can do that with the using keyword in c++1118:57
@lambdaybut you won't need that18:57
@lambdayOXPHOS: check now18:57
@lambdayOXPHOS: it should be something similar to this18:58
OXPHOSlambday: i see! thx!18:58
@lambdayOXPHOS: nw18:59
OXPHOSlambday: and for the const - i tried in linalg.cpp - linalg.dot(const CPUVec *a, const CPUVec *b)18:59
OXPHOSthe method calls a->onGPU()19:00
OXPHOSand then there's error: onGPU() is not const19:00
@lambdayOXPHOS: onGPU should be const then.. it's just a read only operation19:00
c4goldswwiking: Before I go: to summarze the task in a single line, it will involve templating all of the .cpp files that use CDenseFeatures<float64_t> to use CDenseFeatures<T> instead?19:00
@lambdayOXPHOS: but we'll worry about that later19:01
OXPHOSso I added const in CPUVector, const bool onGPU()19:01
@lambdayOXPHOS: what I wanted is to check the benchmark with ptrs :)19:01
OXPHOSstill didnt work19:01
OXPHOSokay19:01
@lambdayOXPHOS: no.. the method should be const..19:01
@lambdaybool onGPU() const..19:01
OXPHOSohhh19:01
@lambdayso that it can be called on a const obj19:01
@lambdayref19:01
OXPHOSwhen i read the book it spent so much words talking about const and pointer/ref19:02
OXPHOSi was wondering who need this stuff19:02
@lambdayOXPHOS: haha yeah19:02
@lambdayOXPHOS: which book did you read?19:02
OXPHOSc++ primer19:02
@lambday:( I never read any books19:03
OXPHOSit's hard to learn from reading..19:03
@lambdaywell, a bit of alexanrescu19:03
@lambdayargh I f'kd up the name19:03
@lambdayOXPHOS: yeah..19:03
@lambdayOXPHOS: anyway, make sure it works..19:03
OXPHOShaha some fancy book19:04
OXPHOSsure i just need to add instance to those .cpp to allow float3219:04
@lambdayOXPHOS: https://www.amazon.co.uk/Modern-Design-Generic-Programming-Patterns/dp/020170431519:04
@lambdaygood one19:04
@lambdayOXPHOS: yeah.. since your GPU ain't happy wiht double, float32_t would have to do19:05
OXPHOSbookmarked19:05
lisitsynhahah BEGINNERS GUIDE TO C++19:07
lisitsynby alexandrescu19:07
-!- c4goldsw [5da420e6@gateway/web/cgi-irc/kiwiirc.com/ip.93.164.32.230] has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]19:07
@lambdaylisitsyn: _/\_19:08
shogun-notifier-shogun: Sergey Lisitsyn :develop * 2dbcaa6 / src/shogun/base/some.h: https://github.com/shogun-toolbox/shogun/commit/2dbcaa612b917cec77c9347bacf2a18d4091ba1a19:12
shogun-notifier-shogun: Rework Some19:12
shogun-notifier-shogun:19:12
shogun-notifier-shogun: - Stop using std::shared_ptr at all19:12
shogun-notifier-shogun: - Don't reference raw pointers - this leads to memory leaks19:12
shogun-notifier-shogun: - Tabs to spaces19:12
@lambdaylisitsyn: whoa! dropped std::shared_ptr?19:12
@lambdayfrom some?19:12
lisitsynHeikoS: wiking: ^ no more leaks I believe19:12
lisitsynyes19:13
@lambdayso we have our own shared_ptr now?19:13
lisitsynit wasn't really used anyway19:13
lisitsynwell kind of19:13
@lambdayI mean, some19:13
@lambdaywell then please add these19:13
@lambdayshogun::make_some<T>(...)19:13
lisitsynalready19:13
@lambdayxD19:13
lisitsynsome<T>19:13
lisitsyncheck generated meta cpp examples19:13
lisitsynthey are already using that19:13
@lambdayokay.. what about adding existing raw pts?19:14
shogun-buildbotbuild #697 of trusty - libshogun - viennacl is complete: Failure [failed test]  Build details are at http://buildbot.shogun-toolbox.org/builders/trusty%20-%20libshogun%20-%20viennacl/builds/697  blamelist: Sergey Lisitsyn <lisitsyn.s.o@gmail.com>19:14
lisitsynwhat do you mean?19:14
lisitsynsegfault??19:14
shogun-buildbotbuild #3775 of deb1 - libshogun is complete: Failure [failed test]  Build details are at http://buildbot.shogun-toolbox.org/builders/deb1%20-%20libshogun/builds/3775  blamelist: Sergey Lisitsyn <lisitsyn.s.o@gmail.com>19:14
@lambdaylisitsyn: T* nkd_ptr = new T(); ... auto ptr = some<T>(nkd_ptr);19:14
lisitsynhahah ok I broke it19:15
lisitsynlet me fix19:15
lisitsynlambday: you can do that19:15
lisitsynit refs it19:15
lisitsynit refs the pointer I mean19:15
@lambdaylisitsyn: we gotta do that via ctor or there is a method for it?19:16
lisitsynno function yet19:16
@lambdayhm19:16
lisitsynyou can do that using ctor19:16
@lambdayI see19:16
@lambdaythat's good enough then19:16
@HeikoSwiking: about aws19:17
@HeikoSwiking: would it make sense to move travis builds to aws? (or is that even possible)19:17
lisitsynlambday: there is an ambiguity19:17
@HeikoSI am annoyed by the waiting time atm19:18
lisitsynsome<T>(...)19:18
lisitsynin "…" you get ctor parameters19:18
-!- sanuj [~sanuj@117.204.255.148] has quit [Ping timeout: 260 seconds]19:18
@HeikoSso if we had our own, maybe we could always start PR builds straight away?19:18
lisitsynso it is not really clear what you do when you call some<T>(naked_ptr)19:18
@lambdaylisitsyn: true that19:18
shogun-notifier-shogun: Sergey Lisitsyn :develop * d6407a5 / tests/unit/base/Some_unittest.cc: https://github.com/shogun-toolbox/shogun/commit/d6407a5598f7ec34dda75f605d1b7c6d468cd66319:20
shogun-notifier-shogun: Reference raw pointers in Some unit-tests19:20
shogun-notifier-shogun:19:20
shogun-notifier-shogun: This resolves segfaults that were introduced19:20
shogun-notifier-shogun: by API changes in 2dbcaa6.19:20
lisitsynSORRY :D19:20
-!- lisitsyn [~lisitsyn@37.139.2.75] has left #shogun []19:20
-!- lisitsyn [~lisitsyn@37.139.2.75] has joined #shogun19:20
@HeikoSlisitsyn: go away!19:21
@HeikoSlisitsyn: btw!19:21
@HeikoSlisitsyn: !!!19:21
@HeikoSwhen are you coming to London?19:21
shogun-buildbotbuild #698 of trusty - libshogun - viennacl is complete: Success [build successful]  Build details are at http://buildbot.shogun-toolbox.org/builders/trusty%20-%20libshogun%20-%20viennacl/builds/69819:21
lisitsynHeikoS: never!19:21
lisitsyn:D19:21
shogun-buildbotbuild #3776 of deb1 - libshogun is complete: Success [build successful]  Build details are at http://buildbot.shogun-toolbox.org/builders/deb1%20-%20libshogun/builds/377619:21
lisitsynI FIXED IT!19:22
lisitsynok lets see memory leaks19:22
lisitsynHeikoS: do you remember we have range?19:23
lisitsynif you see for loops with integers19:23
lisitsyncould you please enforce using range19:23
@HeikoSlisitsyn: never? :(19:23
@HeikoSlisitsyn: I in fact forgot that19:23
@HeikoSsyntax?19:23
lisitsynfor (auto i : range(0, 10))19:23
lisitsynfor (auto i : range(10))19:24
lisitsynboth works19:24
@HeikoSlisitsyn: lovely19:25
@HeikoSwill use it19:25
lisitsynHeikoS: I want to also enforce using other thing19:25
lisitsynfor (auto iteration : iterations(100))19:25
lisitsynto replace SG_ITER thing19:26
lisitsyn(or how was it called?)19:26
lisitsynI haven't implemented it yet19:27
lisitsynbut should be easy19:27
@HeikoSSG_PROGRESS19:27
lisitsynyes yes19:27
lisitsynSG_PROGRESS19:27
@HeikoSdo we want that in every loop?19:27
@HeikoSlisitsyn: oh i have a question around that19:27
@HeikoSCSignal19:27
@HeikoSdoes that work19:27
shogun-buildbotbuild #2903 of bsd1 - libshogun is complete: Failure [failed configure]  Build details are at http://buildbot.shogun-toolbox.org/builders/bsd1%20-%20libshogun/builds/2903  blamelist: Sergey Lisitsyn <lisitsyn.s.o@gmail.com>19:27
@HeikoSwith openmp?19:28
lisitsynI am not sure19:28
shogun-buildbotbuild #41 of xenial - libshogun is complete: Failure [failed test]  Build details are at http://buildbot.shogun-toolbox.org/builders/xenial%20-%20libshogun/builds/41  blamelist: Sergey Lisitsyn <lisitsyn.s.o@gmail.com>19:28
@HeikoSsonney2k_ sonne|work ^19:29
@HeikoSlisitsyn: I realised that we really need to be able to break loops19:29
@HeikoSotherwise have to restart interpreters all the time when using swig interface19:29
@HeikoSlisitsyn: SG_PROGRESS everywhere?19:31
@HeikoScan you give me a tldr for it?19:31
@HeikoSI never used it19:31
lisitsynHeikoS: what do you mean everywhere?19:31
@HeikoSall loops?19:32
lisitsynno19:32
lisitsynjust the outer loop19:32
OXPHOSlambday: updated benchmark and linalg19:32
lisitsynin iteration-based methods19:32
@HeikoSlisitsyn: ok so the big one19:32
@HeikoSlisitsyn: how to use it?19:32
@lambdayOXPHOS: what's the result?19:32
lisitsynwell you tell it what's the current iteration19:32
lisitsynand how many in total you need19:33
@lambdayOXPHOS: can you share the results for a sample run?19:33
lisitsynit outputs a progress bar for you19:33
lisitsynWE NEED IT FOR IPYTHON!!!!19:33
OXPHOSlambday: on it19:33
@HeikoSlisitsyn: how to activate?19:33
lisitsynactivate what?19:33
@HeikoSlisitsyn: the progress bar19:33
@HeikoSis it MSG_INFO?19:33
lisitsynsg_progress or so19:34
lisitsynjust a sec19:34
@HeikoSlambday: ^19:34
@HeikoSwould be good to have that for mmd stuff19:34
OXPHOSlambday: https://gist.github.com/OXPHOS/b1085451731f85f1aef27ae4a74fab0019:34
OXPHOSlemme run a larger vector19:34
lisitsynenable_progress19:34
lisitsynHeikoS: ^19:34
lisitsynobject->io->enable_progress();19:34
@HeikoSlisitsyn: thanks!19:35
@HeikoSthat is good!19:35
@HeikoSlisitsyn:19:35
lisitsynHeikoS: but I want to replace it with pretty loop19:35
@HeikoScan we put that in range loop?19:35
lisitsynyes19:35
@HeikoSlisitsyn: yes better19:35
lisitsyneasy peasy19:35
@HeikoSso lets not do it by hand then19:35
@HeikoSbut use your loop19:35
lisitsynI have to get back to work for a moment now :D19:36
@HeikoSlisitsyn: thats outrageous ! :)19:36
lisitsynHeikoS: have you seen C5.0's code?19:36
@HeikoSlisitsyn:  nope19:37
@HeikoSwhy?19:37
OXPHOSlambday: nooooo it is not getting close at all19:37
lisitsynit is the most beautiful thing I've ever seen19:37
@HeikoSlisitsyn: link!19:37
lisitsynhttps://www.rulequest.com/GPL/C50.tgz19:38
lisitsynHeikoS: ^19:38
lisitsyncheck it19:38
lisitsynit is the most readable machine learning code I've ever seen19:38
lisitsynif it wasn't C and wouldn't bother with some memory19:38
@HeikoS  intv;19:39
@HeikoS    CaseNoi, j, Kp, Bp, Ap, Missing, SplitI;19:39
@HeikoS    CaseCountw, LEErrs, GTErrs, KnownCases, SE;19:39
@HeikoS    ClassNoRealClass;19:39
@HeikoS    AttributeAtt;19:39
@HeikoS    BooleanPrevUnitWeights;19:39
@HeikoS    doubleFactor;19:39
@HeikoS    /*  Stop when get to a leaf  */19:39
@HeikoS    if ( ! T->NodeType ) return;19:39
@HeikoS    Kp = Group(0, Fp, Lp, T) + 1;19:39
@HeikoS    Missing = Kp - Fp;19:39
@HeikoS    Att = T->Tested;19:39
@HeikoS    KnownCases = CountCases(19:39
@HeikoSah niceness19:39
@lambdayOXPHOS: lemme check19:39
lisitsynI want to cry when I see that19:39
lisitsynif it was C++ it could be even better19:39
@lambdayOXPHOS: interesting19:41
@lambdayOXPHOS: what was the size of the vector?19:41
OXPHOS10 and 1e6, i wrote them in title19:42
OXPHOSseems like it is copying some stuff19:42
@lambdayOXPHOS: I wonder why eigen is so slow19:42
@lambdayOXPHOS: anyway.. please push your commits19:43
@lambdayOXPHOS: we'll see what's wrong19:43
OXPHOSlambday: it was much faster without static_cast from base to cpuvec19:43
lisitsynshogun-buildbot:19:43
lisitsynshogun-buildbot: help19:43
shogun-buildbotGet help on what? (try 'help <foo>', 'help <foo> <bar>, or 'commands' for a command list)19:43
@HeikoSlisitsyn:19:43
OXPHOSpushed: benchmark: https://github.com/shogun-toolbox/shogun/pull/324719:43
@HeikoSfor ( i = 0 ; i < 3 ; i++ )19:43
@HeikoS{19:43
@HeikoS    Sum[i] += Result[f][i];19:43
@HeikoS    SumSq[i] += Result[f][i] * Result[f][i];19:43
@HeikoS}19:43
@HeikoShahaha19:44
lisitsynshogun-buildbot: commands19:44
shogun-buildbotbuildbot commands: commands, dance, destroy, force, hello, help, last, list, mute, notify, shutdown, source, status, stop, unmute, version, watch19:44
lisitsynshogun-buildbot: force "memleak - valgrind"19:44
shogun-buildbottry 'force build [--branch=BRANCH] [--revision=REVISION] [--props=PROP1=VAL1,PROP2=VAL2...]  <WHICH> <REASON>'19:44
@lambdayOXPHOS: I'll be online in a while19:44
@lambdayOXPHOS: going home :P19:44
@HeikoSlisitsyn: i recently reviewed a submission for jmlr mloss19:44
lisitsynshogun-buildbot: force build memleak - valgrind because reasons19:44
shogun-buildbotno such builder 'memleak'19:44
OXPHOSlambday: linalg: https://github.com/shogun-toolbox/shogun/pull/323019:44
@HeikoSlisitsyn: that looked exactly the same19:44
OXPHOSlambday: i'll go get lunch :)19:44
@lambdayOXPHOS: see you in an hour or so19:44
@lambdaybye19:44
lisitsynshogun-buildbot: force build "memleak - valgrind" "because reasons"19:44
shogun-buildbotSomething bad happened (see logs)19:44
-!- lambday [8028b10a@gateway/web/freenode/ip.128.40.177.10] has quit []19:44
lisitsynwhat is wrong?19:45
lisitsynshogun-buildbot: force build "memleak - valgrind"19:45
shogun-buildbotThe build has been queued, I'll give a shout when it starts19:45
lisitsynoh19:45
lisitsynHeikoS: I started to like UpperCase things19:45
lisitsynthey look better for some reason19:45
-!- HeikoS [~heiko@nat-162-194.internal.eduroam.ucl.ac.uk] has quit [Quit: Leaving.]19:54
shogun-buildbotbuild #14 forced19:58
shogun-buildbotI'll give a shout when the build finishes19:58
shogun-buildbotbuild #32 of FC23 - libshogun - aarch64 is complete: Failure [failed test]  Build details are at http://buildbot.shogun-toolbox.org/builders/FC23%20-%20libshogun%20-%20aarch64/builds/32  blamelist: Sergey Lisitsyn <lisitsyn.s.o@gmail.com>20:11
-!- travis-ci [~travis-ci@ec2-54-160-241-98.compute-1.amazonaws.com] has joined #shogun22:05
travis-ciit's Sergey Lisitsyn'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/13592960122:05
-!- travis-ci [~travis-ci@ec2-54-160-241-98.compute-1.amazonaws.com] has left #shogun []22:05
-!- lambday [6d9941c0@gateway/web/freenode/ip.109.153.65.192] has joined #shogun22:12
-!- mode/#shogun [+o lambday] by ChanServ22:12
@lambdaylisitsyn: why did you start liking upper-case naming?22:14
@lambdaylower case is std:: ish :D22:14
lisitsynlambday: std::ugly_thing22:14
@lambdayOXPHOS: hola22:14
@lambdaylisitsyn: you like CamelCase then?22:14
lisitsynlambday: well yandex's code style (just like google one) is22:14
lisitsynUpperCaseFunctions22:14
@lambdayeven for variable naming?22:14
lisitsynno22:14
lisitsynMembers22:14
lisitsynvariable22:15
lisitsynbut TClass22:15
@lambdaylisitsyn: you don't like std:: :'(22:15
OXPHOSlambday: hey22:15
lisitsynunderscores are unnatural in texts22:16
@lambdayeven for variable naming?22:16
lisitsynminuses are better but we can't use them22:16
@lambdayOXPHOS: let me find out your gist22:16
@lambdaylisitsyn: I don't know, maybe I started disliking CamelCase because of java..22:17
OXPHOSlambday: https://gist.github.com/OXPHOS/b1085451731f85f1aef27ae4a74fab0022:17
@lambdayand started liking underscore because of std::22:17
lisitsynit is more compact and in java they use quite long things22:17
lisitsynAbstractFactoryFactory22:17
lisitsynabstract_factory_factory22:17
lisitsynit gets longer and longer when you compose more words22:17
@lambdaywell, when it's too many words, maybe we're not doing it right :D22:18
lisitsynI can't agree22:18
lisitsynit depends on what you're doing22:18
@lambdaylisitsyn: I don't know, maybe I started disliking CamelCase because of java..22:18
lisitsynsometimes you can't name it in other words22:18
@lambdaylisitsyn: actually, I have a class whose name is WithinBlockPermutationBatch.. so I kinda see your point22:19
lisitsynyou don't have any other name for some RemoteWorkflowDispatcher22:19
lisitsynyou can name it Kawabazinga but it won't help others and you to comprehend what's going on22:19
lisitsyn:D22:19
-!- shogun-notifier- [~irker@7nn.de] has quit [Quit: transmission timeout]22:20
@lambdayxD22:20
@lambdayumm dunno.. I started to kinda root for Kawabazinga22:20
@lambdayOXPHOS: so what's the story?22:20
@lambdaylinalg slow as hell?22:20
OXPHOSlambday: I would say it is proportional to vector length.22:21
@lambdayOXPHOS: what do you mean?22:21
@lambdaylarger the vector, slower sg_linalg gets?22:22
@lambdaylinalg slow as hell?22:22
lisitsynlambday: is it you sending some messages twice22:22
lisitsynor me receiving me twice?22:22
lisitsynreceiving them*22:23
OXPHOSlambday: wait maybe not.. actually it is the same as my previous result. in last version, for the explicit Eigen3, I passed whole sgvector to benchmark22:23
OXPHOSnot ref22:23
OXPHOSand it takes about 400ms for a vector of 1e622:24
@lambdayOXPHOS: yeah.. very important that we ensure that there is no copying going on22:24
@lambdayOXPHOS: let me check your benchmark patch and comment22:24
@lambdayI wonder why GPUBackend is so much slower22:25
OXPHOSYeah if I do BENCHMARK(SGVector &), the speed is independent of vector size22:25
OXPHOShowever, BENCHMARK(SGVector vec) is proportional to vector size22:25
@lambdayOXPHOS: oh one important thing.. The objects CPUVectors and GPUVectors are on stack..22:27
@lambdayOXPHOS: Make sure you use pointers.. that would be the use-case22:27
@lambdayremember that we'll use them as22:27
@lambdayBaseVector<T>* v = sg_linalg->get_factory()->get_gpu_type(SGVector<T> vec);22:28
@lambdayand then sg_linalg->dot(v, v1)..22:28
@lambdayOXPHOS: the code looks so much nicer :)22:29
@lambdayclean.. nice to read :)22:29
@lambdayOXPHOS: your benchmark code I mean22:29
OXPHOSlambday: thx! but for the CPUVector in benchmark, i dont need pointer right?22:30
lisitsynI see pointers again22:31
lisitsynthis is pointer police this is your last warning call22:31
@lambdaylisitsyn: we'll use auto v22:32
lisitsyn:P22:32
@lambdayand get_cpu_type(...) will return a some<BaseVector<T>>22:32
@lambdaylisitsyn: happy now? :D22:32
OXPHOSlisitsyn: there's a weird anime called Sushi Police22:33
lisitsynlambday: yes22:33
lisitsynOXPHOS: sushi pointer police!22:33
@lambdayOXPHOS: yo22:34
@lambdayOXPHOS: just added two minor comments22:34
@lambdayOXPHOS: can you please change those and check?22:34
@lambdayOXPHOS: oh and use std::unique_ptr<BaseVector<value_type> > for those vectors :P22:34
@lambday(sorry :P)22:34
lisitsynlambday: OXPHOS: let me remind you just like I reminded HeikoS today22:34
lisitsynif you have some for loops22:34
lisitsynplease start using range22:35
lisitsynnot in linalg for sure22:35
lisitsynto avoid any overhead22:35
@lambdaylisitsyn: range(1, 10) = [1,...,10] ?22:35
lisitsyn1 to 922:35
@lambdayok22:35
lisitsyn#include <shogun/base/range.h>22:35
@lambdaylisitsyn: what's the overhead for range?22:35
lisitsynfor (auto i : range(10))22:35
OXPHOSwhaaaat22:36
lisitsynI believe negligible22:36
@lambdayit does create a list for those numbers, right?22:36
lisitsynno22:36
lisitsynjust iterator22:36
@lambdaylisitsyn: I see.. cool then22:36
lisitsynwith -O3 it should be maybe a few instructions more on start22:36
lisitsynI actually checked some code22:36
lisitsynand didn't find range22:36
lisitsynwhen used O322:36
@lambdayawesome!22:37
lisitsynso it is mostly optimized out22:37
@lambdaylisitsyn: BTW is our version of shared ptr thread safe?22:37
lisitsynbut you like to benchmark things22:37
lisitsynmaybe you could check22:37
lisitsynlambday: uhmm no22:37
OXPHOSlambday: so we keep SGVector the same? and it won't cause any similar trouble as GPUVector is now?22:37
lisitsynlambday: ahh maybe yes22:38
lisitsyn:D22:38
lisitsynit depends22:38
@lambdaylisitsyn: we gotta check that actually..22:38
@lambdayOXPHOS: just allocate those objects on heap.. that's all I mean22:38
@lambdaySGVector is supposed to be on stack22:38
lisitsynlambday: SG_REF is atomic22:38
lisitsynso it should be atomic as well22:38
@lambdaylisitsyn: aha22:38
OXPHOSokay22:38
lisitsynI would need to check if there is some happens-before discrepancy22:38
lisitsynI think it should be quite sane22:39
@lambdaylisitsyn: actually this is why I was in favor of using std::shared_ptr.. we can of course write our own.. but std:: things are already tested22:39
lisitsynlambday: the thing is that it was actually wrong to rely on shared_ptr22:39
lisitsynbecause what I did from the beginning22:40
lisitsynwas to unref in Deleter22:40
@lambdaylisitsyn: why was that wrong?22:40
@lambdaylisitsyn: I was more worried about the get() method.. does SG_REF every time22:40
@lambdayIIRC22:40
lisitsynbecause deleter is called once ref count is 022:41
lisitsynlambday: yes that was wrong too22:41
lisitsynlambday: we can switch to shared ptr22:41
lisitsynbut we have to get rid of sg_ref first22:41
@lambdaylisitsyn: I see22:41
lisitsynI mean drop all SG_REF and SG_UNREF from all the code22:41
lisitsynother than some.h22:41
lisitsynthat's the only thing that is allowed to have SG_REF22:42
lisitsyn:)22:42
@lambdayyeah22:42
lisitsynthen we can change to std::shared_ptr22:42
lisitsynor boost::shared_ptr or whatever_shared_ptr22:42
@lambdaylisitsyn: what should the API would look like? methods should always take naked ptr/return naked ptr?22:42
@lambdayand for storage, we rely on the shared ptrs?22:43
lisitsynno always some22:43
@lambdaylisitsyn: typemap?22:43
@lambdaydoes it work by implicit typecast to T* ?22:43
lisitsynCLibSVM(some<CKernel>);22:43
lisitsynit should work iirc22:43
@lambdaylisitsyn: okay.. maybe we should check swig22:44
lisitsynyes we should check22:44
@lambdayif that works, awesome!22:44
lisitsynlambday: I have some idea how22:44
lisitsyngoing to try that soon22:44
@lambdaytill now, I have only been using shared_ptr in my code like the way I mentioned.. use only for storage.. pass as naked ptr22:44
@lambdaybut it's risky22:45
lisitsynlambday: it is ok to pass them in internal methods22:45
@lambdaybee are bee22:45
* lambday goes for dinner22:45
lisitsynbut I wouldn't like to see them in public API22:45
@lambdaylisitsyn: me neither.. we need to make sure that it works from python22:46
@lambdayokay now really going for dinner22:46
* lambday brb22:46
shogun-buildbotbuild #14 of memleak - valgrind is complete: Failure [failed memory check]  Build details are at http://buildbot.shogun-toolbox.org/builders/memleak%20-%20valgrind/builds/1423:07
OXPHOSnot getting any faster with unique_ptr23:12
OXPHOSand I have to move the ptr around.. :(23:12
OXPHOSlisitsyn: do we have to use smart pointer everywhere? like in SGVector there's a member T* vector23:16
OXPHOSwill it be turned into smart pointer?23:16
* lambday re23:29
@lambdayOXPHOS: well the idea was to make the benchmark with actual use-case23:29
@lambdayunique_ptr was just for making it easier.23:29
@lambdayOXPHOS: did you push your code?23:29
@lambdayas in, data on heap?23:29
OXPHOSlambday: yes23:30
* lambday re23:30
@lambdayOXPHOS: superb! let me check23:30
OXPHOShttps://github.com/shogun-toolbox/shogun/pull/324723:31
@lambdayOXPHOS: err.. why did you have to move? just pass the underlying raw ptr to these methods..23:31
OXPHOSlambday: thought we were not allowed to..23:32
@lambdayhaha &&23:32
OXPHOSlambday: but no diff in running time23:32
OXPHOSI tried23:32
@lambdayhmm..23:32
@lambdayOXPHOS: can you just make those methods take BaseVector<T>* instead? just pass Ac.get() etc..23:33
@lambdayOXPHOS: we can merge it then23:33
@lambdayOXPHOS: also, let me have a look at the dot patch23:33
OXPHOSsure. the same for gpu vector right?23:33
@lambdayOXPHOS: yes.. don't move the ownership.. let it be there with struct Data23:34
@lambdayOXPHOS: did you update the gist with the latest run-time as well?23:35
OXPHOSyou mean this pointer? no. the time is 27s vs 21s (slower) i can update if necessary23:35
@lambdayOXPHOS: direct eigen3 call : Average time: 1.696 us, sg_linalg Eigen3 backend call : Average time: 21.982 us23:36
@lambdaythat doesn't sound right :(23:36
@lambdayoh wait this is the small vector23:36
OXPHOSlarger is worse23:36
OXPHOSdirect eigen3 call just stays the same23:37
OXPHOSless than 2us for a 1e6 size vector23:37
@lambdayOXPHOS: for 1e6, direct eigen3 :  Average time: 1.533 us, sg_linalg : Average time: 422745.336 us23:37
OXPHOSYES23:37
@lambdaywtf! :D23:37
OXPHOSI can try remove part in CPUVec-linalg and see23:37
@lambdaymaybe something funny is going on23:38
OXPHOSthe most suspicious part is static cast, because nothing else looks suspicous23:38
@lambdayOXPHOS: could you please change the raw ptr thing and update the results?23:39
OXPHOSlambday: on it23:39
@lambdaywe should profile about which part takes up all this time23:40
OXPHOSI swear I tried with * and it worked..23:45
OXPHOSnow Im getting error: unterminated function-like macro  invocation BENCHMARK_P_INSTANCE(CPUVector, dot_eigen3, (data.Ac.get(), data.Bc.get());23:45
OXPHOSlambday ^23:46
lisitsynlambday: no! we don't need shared_ptrs in sgvector I believe23:46
lisitsynbut we don't need pointers in say multiclass logistic whatever23:46
@lambdayOXPHOS: you missed one closing paranthesis23:46
@lambdaylisitsyn: yeah SGVector's T* should stay the same23:47
OXPHOSlambday ..ur right23:47
OXPHOSwhy can't it speak english?!23:48
@lambdayOXPHOS: trust me, that's what we're trying to build here ;)23:48
@lambdayanyway, works now?23:48
OXPHOSlambday: yes23:49
OXPHOSso i'll push and update output?23:49
@lambdayOXPHOS: yo23:50
* lambday brb23:50
OXPHOSdone. u want to checkout one more time? I can fix indentation and squash then..23:53
--- Log closed Wed Jun 08 00:00:30 2016

Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!