IRC logs of #shogun for Monday, 2016-06-13

--- Log opened Mon Jun 13 00:00:37 2016
-!- GandalfTheWizard [~Eva@112.10.170.90] has joined #shogun02:58
shogun-buildbotbuild #1019 of nightly_none is complete: Failure [failed test]  Build details are at http://buildbot.shogun-toolbox.org/builders/nightly_none/builds/1019  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>, Saurabh7 <saurabh.mahindre@gmail.com>, Sergey Lisitsyn <lisitsyn.s.o@gmail.com>03:04
shogun-buildbotbuild #17 of clang - thread analysis is complete: Failure [failed compile]  Build details are at http://buildbot.shogun-toolbox.org/builders/clang%20-%20thread%20analysis/builds/17  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>, Saurabh7 <saurabh.mahindre@gmail.com>, Sergey Lisitsyn <lisitsyn.s.o@gmail.com>03:44
shogun-buildbotbuild #16 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/16  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>, Saurabh7 <saurabh.mahindre@gmail.com>, Sergey Lisitsyn <lisitsyn.s.o@gmail.com>03:48
shogun-buildbotbuild #18 of memleak - valgrind is complete: Failure [failed memory check]  Build details are at http://buildbot.shogun-toolbox.org/builders/memleak%20-%20valgrind/builds/18  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>, Saurabh7 <saurabh.mahindre@gmail.com>, Sergey Lisitsyn <lisitsyn.s.o@gmail.com>05:29
shogun-buildbotbuild #1149 of nightly_default is complete: Failure [failed test notebooks]  Build details are at http://buildbot.shogun-toolbox.org/builders/nightly_default/builds/1149  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>, Saurabh7 <saurabh.mahindre@gmail.com>, Sergey Lisitsyn <lisitsyn.s.o@gmail.com>06:08
@wikingSaurabh7: helloo hello07:44
-!- sonne|work [~sonnenbu@88.134.176.135] has quit [Quit: Leaving.]09:35
-!- besser82 [~besser82@fedora/besser82] has joined #shogun10:02
-!- mode/#shogun [+o besser82] by ChanServ10:02
-!- besser82 [~besser82@fedora/besser82] has quit [Ping timeout: 260 seconds]10:12
-!- sanuj [~sanuj@117.204.250.149] has joined #shogun10:41
-!- besser82 [~besser82@fedora/besser82] has joined #shogun11:13
-!- mode/#shogun [+o besser82] by ChanServ11:13
sanujlisitsyn, hey11:22
-!- besser82 [~besser82@fedora/besser82] has quit [Ping timeout: 252 seconds]11:29
@wikingSaurabh7: sanuj it's about half monday gone.... no standup lines11:30
@wikingtime to put it in11:30
@wikingalong with the weekly report11:30
-!- besser82 [~besser82@fedora/besser82] has joined #shogun11:33
-!- mode/#shogun [+o besser82] by ChanServ11:33
sanujwiking, today i have been working on macros in swig for tags and related functions11:38
sanujlast week i did only 1 cookbook11:39
sanujcurrently there are 3 cookbook PRs which are yet to be merged11:39
sanujso i think it is better to merge them before starting a new cookbook11:39
sanujwill send my monday report soon11:40
@wikingthnx11:40
@wikinganything that you'd need help with?11:40
sanujwiking, this is a list of all base classes in shogun https://gist.github.com/sanuj/56f03cd242473137fad851e68fa0f2c111:41
sanujlisitsyn has told me to instantiate templates for each in swig11:41
@wikingmmm yeah i'm just wondeirng CEigenSolver and such but ok11:42
sanujbut template instantiation won't work for base classes11:42
sanujbecause of pure virtual functions11:42
@wiking?11:42
@wikingi mean you can have swig type for abstract methods11:42
@wiking(hence the whole story for director classes)11:43
sanuj%template(set ## name) CSGObject::set<type, void>;11:43
sanuji think this makes a new object using "new"11:43
sanujfor abstract classes11:43
sanujso it errors11:44
sanujname and type are macro arguments in ^^ line of code11:44
sanujthis line is to enable things like ==> gauss_kernel.setInt("width", 20)11:45
lisitsynhmm ok11:45
lisitsynsanuj: what is the error you get11:45
lisitsynit looks like we have to employ some pointers for that11:46
lisitsynor even some 'some' pointers :)11:46
-!- lambday [0551433c@gateway/web/freenode/ip.5.81.67.60] has joined #shogun11:47
-!- mode/#shogun [+o lambday] by ChanServ11:47
sanujlisitsyn, heyyy11:48
sanujerror is really long11:48
sanujbut important line is11:48
sanujmodshogunPYTHON_wrap.cxx:23311:11: error: cannot declare variable ‘result’ to be of abstract type ‘shogun::CKernel’11:48
lisitsynok we need pointers11:49
sanujlisitsyn, need more information11:49
lisitsynsanuj: I think we need to stop fulfilling this list11:49
sanujokay11:49
lisitsynbut make it to work with SGObject11:49
sanujlisitsyn, don't fully understand11:50
sanujmake what work with SGObject?11:50
lisitsyntry implementing Some<CSGObject> get<CSGObject>(...)11:50
sanujokay11:51
lisitsynsanuj: other words - try to use Some<T>11:51
sanujlisitsyn, btw i'm using this macro http://pastebin.com/CBKMXRCN11:51
lisitsynfro all types inherited CSGObject (including)11:51
sanujlisitsyn, okay11:51
sanujlisitsyn, and do i need to expose sgvector?11:52
lisitsynsanuj: yes11:52
sanujlisitsyn, and what all primitive types11:52
sanujright now i have int, string, bool, float11:52
lisitsynnot sure, lets change that later11:53
sanujlisitsyn, not sure about macro?11:53
lisitsynsanuj: no, primitive types11:53
sanujokay11:53
sanujlisitsyn, i don't think there is any need to expose "any" via swig11:56
lisitsynsanuj: not sure11:57
sanujasInt, asFloat11:57
-!- HeikoS [~heiko@host-92-0-162-192.as43234.net] has joined #shogun12:02
-!- mode/#shogun [+o HeikoS] by ChanServ12:02
sanujlisitsyn, when i do %include <shogun/base/some.h>12:09
sanujsome.h:29: Error: Syntax error in input(3).12:10
sanujline 29 is Some() = delete;12:10
lisitsynsanuj: looks like swig doesn't get C++11 syntax12:11
sanujlisitsyn, http://www.swig.org/Doc3.0/CPlusPlus11.html12:11
lisitsynSWIG handles explicitly defaulted functions, that is, = default12:12
lisitsynis it possible that you have a bit old swig?12:12
sanuji have swig2.012:12
lisitsynyeah I guess you have to update12:13
sanujokay12:13
sanujlet me update12:13
sanujlisitsyn, do i need to check for mem leak for the nn PR in python?12:25
Saurabh7wiking: hihi, finished updating LARS to better state, removed loops now using eigen matrices and blocks to access intersting columns12:37
Saurabh7this lead to problems when dropping variables tho, i fixed it now12:38
Saurabh7jsut finishing a cookbook now12:38
Saurabh7HeikoS: hi12:38
@wikingSaurabh7: awesome12:39
@wiking!12:39
Saurabh7wiking: i pushed it here https://github.com/shogun-toolbox/shogun/pull/324312:40
@HeikoSSaurabh7: hi12:44
@HeikoSnice one12:44
@HeikoSSaurabh7: and the times changed when you did this?12:45
Saurabh7yes12:45
Saurabh7quite better12:45
@HeikoSshare :)12:46
Saurabh7I tired to do this for inactive columns too using mat.swap when an variable is added12:46
Saurabh7but had to cahnge lot other things and the results were changing so dropped it fo rnow12:46
@HeikoSSaurabh7: sure12:47
Saurabh7HeikoS: i put the times in there12:47
@HeikoSah ok checking12:47
Saurabh7https://github.com/shogun-toolbox/shogun/pull/3243 athe bottom12:47
@wikingSaurabh7: some comments are in again12:52
@wiking:)12:52
@HeikoSSaurabh7: about the active12:53
@HeikoSX_active12:53
@HeikoSSaurabh7: any reason why you allocate it with malloc?12:53
Saurabh7wiking: yessry didnt replace teh map12:53
Saurabh7HeikoS: no12:53
@HeikoSSaurabh7: better use SGVector12:54
Saurabh7I think i can use sgmatrix too if tis good12:54
@HeikoSor SGMatrix12:54
Saurabh7ok ill replace12:54
@HeikoSyou eigen3 maps can still only cover parts of the memory12:54
@HeikoSbut then you dont have to free later12:54
@HeikoSsave a line of code and a potential leak12:54
@HeikoSand confusion when others read it :)12:54
Saurabh7yes yes good idea12:55
@HeikoSSaurabh7: any reason why you use vector?12:56
@HeikoSand make_vector?12:56
Saurabh7HeikoS: it was there form before12:57
Saurabh7I tried to replace some12:57
@HeikoSSaurabh7: are these growing and shrinking?12:57
Saurabh7one is12:57
@HeikoSSaurabh7: ah ok12:57
Saurabh7beta path12:57
@HeikoSthen it is ok12:57
Saurabh7where we append a beta12:57
Saurabh7so in shogun we ahve to use dynamic array ?12:58
@HeikoSyes12:58
@HeikoSyou can12:58
@HeikoSbut you dont have to12:58
@wikingwhat is growing dynamicaally?12:58
@HeikoSas vector is in stdlib12:58
@HeikoSand if you only use it in the .cpp it is ok12:58
Saurabh7vector of vector12:58
Saurabh7is growing12:58
@HeikoSSaurabh7: your results look pretty good btw, I mean the times12:59
Saurabh7HeikoS: for many relevant variables its good12:59
@HeikoSSaurabh7: I dont get why SG is sometimes faster with same number of iterations though13:00
@HeikoSslower soory13:00
Saurabh7if the relevant features are less it becomes a bit lower13:00
@HeikoSSaurabh7: yes seeing that13:00
@HeikoSideas where that comes from?13:00
Saurabh7so basically when num acitve variables is low13:01
Saurabh7we calcualte the correlations from scratch in every iter13:01
Saurabh7that might be the reason i thought of13:01
@wikingcould we cache taht?13:01
@wikingmakes sense to cache it?13:01
Saurabh7instead of that updating them is a way13:01
@wikingor updating it?13:02
Saurabh7i tried doing that with inactive variables and swap as i siad13:02
@HeikoSSaurabh7: it gets messy right?13:02
@HeikoSSaurabh7: can I suggest: we fix this up, merge it. And then you can start a new PR to investigate this?13:03
Saurabh7wiking: like the updating the ones already calcuated13:03
@HeikoSSaurabh7: because it will probably help13:03
Saurabh7HeikoS: yes its a bit mmessy I couldnt see why the results were changing , so its something algo related13:03
@HeikoSSaurabh7: yeah, lets do in a second step ok?13:04
@HeikoSSaurabh7: if you can address all the comments we made13:04
@HeikoSand polish, squash13:04
@HeikoSthen we can merge and go for next iteration13:04
@HeikoSthat should be feasible today no?13:04
Saurabh7yes ok13:04
Saurabh7also about the impl class13:05
Saurabh7sec brb13:05
@HeikoSok13:05
Saurabh7HeikoS: the impl class rigt now has only one method , is it fine ?13:06
Saurabh7only other we can add are the cholesky delet and the rotation stuff13:06
@HeikoSSaurabh7: yes no point in having a class for a single static method13:09
@HeikoSif you have 3, then it might be better13:10
@HeikoSbut you can also just hide them from SWIG and leave them in the main class13:10
@HeikoSyou can unit test it via creating a mock class13:10
@HeikoSsimplest way: overload it in unit test and define the method public, wrap the protected method13:11
@HeikoSSaurabh7: good?13:11
@HeikoSSaurabh7: btw, the benchmark in zoq is still wrong, or?13:11
Saurabh7HeikoS: yes I will remove the class13:11
@HeikoSit compares against a different algo?13:11
Saurabh7HeikoS: yes its wrong13:11
@HeikoSor is that fixed?13:11
@HeikoSgood idea to also get that cleaned up soon13:12
Saurabh7so they have 2 benchmarks13:12
Saurabh7one is lars and lasso13:12
@HeikoSyeah, we want lars13:12
Saurabh7lars uses larslasso13:12
Saurabh7and lasso uses lasso :)13:12
@HeikoSthe other one, we can check later, but should not be in there13:12
Saurabh7so none is actually using scikits lars class13:12
@HeikoSSaurabh7: ah13:12
@HeikoSno good13:12
@HeikoSdoesnt Lassoolars use lars?13:13
Saurabh7yes its uses larspath13:13
Saurabh7so we can compare our lasso version of lars with their lassolars13:13
@HeikoSok13:13
@HeikoSthat should be done then13:13
@HeikoSand all the rest should be disabled13:13
Saurabh7that should be a bit fair13:13
Saurabh7ok13:13
@HeikoSas it gives wrong impressions13:13
@HeikoSSaurabh7: so the plan for today then is13:14
@HeikoS1.) clean up PR and merge13:14
@HeikoS2.) clean up kmeans PR and merge13:14
@HeikoS3.) update benchmark for lars13:14
@HeikoS4.) start another PR for the further optimization13:14
@HeikoSgood?13:14
Saurabh7yep13:14
@HeikoSSaurabh7: cool13:15
@HeikoSlets try to get all this done today, as this week should be used for a further algo13:15
@HeikoSyou can already think of one you would like to touch next13:15
@HeikoSI thought maybe rf might be good...13:16
@HeikoSrandom forest13:16
@HeikoSbut also up for suggestions from your side13:16
Saurabh7hm random forest with the CART ?13:16
Saurabh7cart was reallyyyyy slow in my intital test13:17
@HeikoSyes :)13:17
@wikingSaurabh7: hehhe yeah all the decision trees needs love13:17
@HeikoSCART is kind of old school as well ;)13:17
@HeikoSbut we should have that one fast13:17
@HeikoSthere will be lots of things to play with13:17
@HeikoSbut lots of things to gain as well13:17
@wikingSaurabh7: all decesion tree implementations are very very vanilla13:17
@wikingthere's room for improvement there13:18
@wikinga lot13:18
Saurabh7wiking: i see havent checked impl13:18
Saurabh7cool13:18
@HeikoSKNN could also be next Saurabh713:29
@HeikoSyour call13:29
@HeikoSwith covertree13:29
@HeikoSSaurabh7: oh one more question, did you compare to mlpack's lars yet?13:30
sanujlisitsyn,13:33
sanujmodshogunPYTHON_wrap.cxx:28917:3: error: ‘Some’ is not a member of ‘shogun’13:33
sanujshogun::Some< CKernel > *result = 0 ;13:34
sanuj?13:34
@HeikoSc++1113:42
@HeikoSsome is guarded13:42
sanujHeikoS, how to make it visible?13:43
sanujremove the guard?13:43
@HeikoSnooooo13:43
@HeikoS :)13:43
sanuj:D13:44
@HeikoSneed to find out how swig plays with c++1113:44
@HeikoSgoogle13:44
@HeikoSthen ask lisitsyn13:44
-!- mizari [~mizari@95-174-213-100.nts.su] has joined #shogun13:44
sanujyeah13:44
sanujhe told me to install latest swig13:45
sanuji did that13:45
sanujHeikoS, swig plays well with c++1113:45
sanujhttp://www.swig.org/Doc3.0/CPlusPlus11.html13:45
@HeikoSsanuj: check some.h13:45
@HeikoSif some is not defined13:46
@HeikoSthen it is because of the guard13:46
@HeikoS#ifdef HAVE_CXX1113:46
sanujbtw my tags code has some c++11 stuff13:46
sanujand i just realized it is not guarded13:46
@HeikoSbetter guard it :)13:48
@HeikoSotherwise the buildbot will be angry13:48
sanujHeikoS, essential code13:49
Saurabh7HeikoS: no havent compared runtimes with mlpack yet, but i checked thier impl13:50
sanuji checked cmakelist13:50
sanujHAVE_CXX11 is set when _HAS_CXX11_FLAG is set13:50
@HeikoSSaurabh7: only check implementations if things are fast :)13:51
@HeikoSsanuj: it is different in swig13:51
@HeikoSas you can use some from within c++, no?13:51
@HeikoSgotta ask yourself why it is not set when swig interface is compiled13:51
@HeikoSI gotta run now13:52
@HeikoSbut be back laster13:52
@HeikoSlater13:52
@HeikoSsee you13:52
@wikinglaster laster13:52
@wiking:)13:52
-!- HeikoS [~heiko@host-92-0-162-192.as43234.net] has quit [Quit: Leaving.]13:52
sanujwiking, laster?13:53
@wikingsanuj: just joking13:53
sanujdidn't understand the joke :P13:53
sanujwiking, shall i set HAVE_CXX11 manually in SGBase.i13:54
sanuji want to use some13:54
sanujsome.h13:54
@wikingmmmm14:01
@wikingno14:01
@wikingconfig.h should be there somewhere14:02
@wiking(in the Some.h)14:02
@wikingto have HAVE_CXX11 set14:02
@wikingif it's not included in some.h14:02
@wikingthen that shoudl be fixed14:02
sanujwiking, it's there in some.h14:03
sanujand config.h has #define HAVE_CXX11 114:03
sanujbut i haven't included config.h in SGBase.i14:04
sanujshall i do that?14:04
@wikingbut you dont do that14:04
@wikingwhy would you do that14:04
sanujyeah14:05
sanujjust asking14:05
@wikingif some.h has shogun/lib/config.h14:05
@wikingincluded14:05
@wikingthen you have HAVE_CXX11 set14:05
sanujthen something else is causing the problem14:05
@wikingbtw why do we need #include <memory>14:05
@wikingahh nullptr14:06
@wikingkk14:06
@wikingwell dunno14:06
sanujshared_ptr14:06
sanujmodshogunPYTHON_wrap.cxx:28917:3: error: ‘Some’ is not a member of ‘shogun’14:06
sanujshogun::Some< CKernel > *result = 0 ;14:06
sanujwiking, this is the error ^^14:06
@wikingis shogun/base/some.h included somewhere?14:06
@wikingi.e. in modshogunPYTHON_wrap.cxx14:07
@wikingdo you see such an include?14:07
sanujwiking, it wasn't there14:07
sanuji had added %include <shogun/base/some.h>14:07
@wikingis it there or not14:08
@wikinggrep some.h modshogunPYTHON_wrap.cxx14:08
@wikingwhat's the output14:08
@wikingmodshogunPYTHON_wrap.cxx is somewhere under build/src/interfaces/python_modular/14:09
sanujwiking, it's there14:10
@wikingcan you paste here the grep's output plz14:10
@wikingdo the grep with -n14:11
sanujwiking, okay, i just rebuilt it14:11
@wikingwhy?14:11
sanujafter adding #include <shogun/base/some.h>14:12
sanuji had only added %include <shogun/base/some.h> last time14:12
sanujit built successfully now14:12
sanujwiking, thanks :D14:14
-!- HeikoS [~heiko@nat-177-97.internal.eduroam.ucl.ac.uk] has joined #shogun14:45
-!- mode/#shogun [+o HeikoS] by ChanServ14:45
arianepaolahello everyone14:49
-!- HeikoS [~heiko@nat-177-97.internal.eduroam.ucl.ac.uk] has quit [Quit: Leaving.]14:52
-!- besser82 [~besser82@fedora/besser82] has quit [Ping timeout: 250 seconds]14:53
-!- HeikoS [~heiko@nat-177-97.internal.eduroam.ucl.ac.uk] has joined #shogun14:53
-!- mode/#shogun [+o HeikoS] by ChanServ14:53
@HeikoSarianepaola: hihi14:59
@HeikoSarianepaola: how are things, good weekend?14:59
arianepaolahi HeikoS15:01
arianepaolabusy weekend, reviewing lecture content for exams15:02
arianepaolaotherwise ok15:02
arianepaolaand yours?15:02
@HeikoSall good! :)15:09
@HeikoSarianepaola: gardening mostly ;)15:09
sanujHeikoS, gardening?15:09
sanujyou were at home?15:09
sanujlisitsyn, there?15:09
arianepaolaHeikoS: when the weather was good :-)15:09
arianepaolahere it has been raining almost non stop since spring and June is more like extremely rainy September15:10
-!- [Chris] [~Chris]@deadtime.informatik.uni-tuebingen.de] has joined #shogun15:14
[Chris]Hi, I have a question regarding combined kernels and Multiple Kernel Learning. Any experts on this around ?15:17
arianepaolahi wiking15:24
@wikingwhat exactly would you need help with15:24
arianepaola^^ wiking: just in time :-)15:24
@wikinghello arianepaola15:24
@wikingping you some stuff on the python thing15:24
arianepaolaI saw your comment on the PR15:24
@wikingfor the order of things15:25
arianepaolaversion is not ideal to run cmake for, that can be removed15:25
arianepaolabut the rest needs to run cmake15:25
arianepaolait is run by setup.py15:25
@wikingyeah but wait15:26
@wikingfirst of all15:26
@wikingsee that error when i run it15:26
@wikingsecond what is the order in your head15:26
@wikingfor running setup.py?15:26
@wikingdoes it require a cmake run prior running setup.py?15:26
arianepaolathe error is probably cmake setup on mac15:26
-!- HeikoS [~heiko@nat-177-97.internal.eduroam.ucl.ac.uk] has quit [Quit: Leaving.]15:26
@wikingnmmm it works perfectly15:26
arianepaolawiking: it does not require a cmake run prior running setup.py15:26
@wikingwith cmake15:26
arianepaolasetup.py runs it for you15:26
@wikingok15:27
arianepaolawiking: I tested it on Ubuntu and Fedora and it worked out of the box15:27
@wikingso there's something then with python (setup.py)15:27
@wikingbecause for me as you can see it's foobar15:27
@wikingand otherwise cmake works perfectly15:27
@wikingwith shogun15:27
@wikingon osx15:27
arianepaolait says: CMAKE_OSX_DEPLOYMENT_TARGET is '10.10' but CMAKE_OSX_SYSROOT:15:27
arianepaolais not set to a MacOSX SDK with a recognized version.  Either set   CMAKE_OSX_SYSROOT to a valid SDK or set CMAKE_OSX_DEPLOYMENT_TARGET to   empty.15:27
@wikingarianepaola: which is all good15:27
@wikinguntil the fact15:27
arianepaola^^ CMake Error at /usr/local/Cellar/cmake/3.5.2/share/cmake/Modules/Platform/Darwin.cmake:7615:27
@wikingthat if i manually run15:28
@wikingcmaek ..15:28
@wikingcmake ..15:28
@wikingno such error15:28
@wiking(from build directory)15:28
arianepaolawiking: I did test it on clean setup without having anything in build15:28
arianepaolaI will have a look on Mac15:28
@wikingyeah for me the setup.py only started to give such errors15:28
@wikingwhen i rm -rf the build dir15:28
@wikingi.e. clean checkout15:29
@wikingwhich is again: weird because it runs fine if i run cmake from cli15:29
[Chris]Basically I just want to use two WeightedDegreeRBF kernels with different encodings. I had a look at the examples given at http://shogun-toolbox.org/doc/en/latest/python_modular_examples.html#python_modular_mkl_examples. But as far as I understand in the example different kernels with the same features are used. So I am not sure how to initialize the combined kernel.15:29
arianepaolawiking: how did you install cmake? brew, ports, etc?15:29
@wikingthat one is from brew15:29
arianepaolathe setup.py just uses cmake15:29
arianepaolait could be that it does not read your user environment variable setttings, e.g. PATH15:30
@wikingcreate your combined features15:30
@wikingand the corresponding combined kernels15:30
[Chris]so one combined features object for both 'RealFeatures' ?15:32
@wikingno15:32
@wikingi guess there's a reason you wanna use mkl15:32
@wikingso i would create a 2 RealFeatures15:33
@wikingthat i would add to a CombinedFeatures15:33
@wikingand create a CombinedKernel15:33
@wikingwith 2 kernels init15:33
@wikingin it15:33
[Chris]I guess that's what I did but I get the following error since the features don't have the same length: shogun-4.0.0/src/shogun/features/CombinedFeatures.cpp line 149: Number of feature vectors does not match (expected 180, obj has 201)15:34
@wikingyeah i mean15:34
@wikingif you wanna have15:34
@wiking2 features15:34
@wikingthen 2 kernels are needed15:34
@wikingbtw why do you use 4.0.0 ?: )15:34
[Chris]because it was already installed ;)15:35
@wikingheheh15:36
@wikingi see15:36
@wikingbut anyhow that object hasn't changed for al onger time15:36
@wikingbut still15:36
@wikingyou should have as many kernels in CombinedKernel as much in CombinedFeatures15:37
[Chris]I do15:37
@wikingmmmm15:37
[Chris]it's two features and two kernels15:37
[Chris]I mean two feature encodings15:38
@wikingmmm15:38
@wikingbut ah15:38
@wikingyeah the problem is15:38
@wikingthat in one of the features15:38
@wikingyou have 180 examples15:38
@wikingwhile in the other 20115:38
@wikingbtw note15:38
@wikingthat in shogun the columsn are the feature vectors15:39
@wikingi.e. 1 example15:39
@wikingrows are the features itself15:39
@wikingso you might need to transpose your input15:39
[Chris]yeah that might be the problem15:39
-!- HeikoS [~heiko@nat-177-97.internal.eduroam.ucl.ac.uk] has joined #shogun15:39
-!- mode/#shogun [+o HeikoS] by ChanServ15:39
@wiking[Chris]: as i suppose one feature set has 180 features the other 20115:40
@wikingand not the amount of examples15:40
@wiking(samples)15:40
[Chris]it's 90 samples actually15:41
[Chris]one feature encoding has a length of 180, the other one has a length of 20115:41
[Chris]so 90* vectors of length 180, 90* vectors of length 20115:42
[Chris]does that make sense ?15:42
arianepaolawiking: did you test setup.py on a Linux?15:45
@HeikoSlisitsyn: jo15:53
@HeikoSlisitsyn: how are progress bars done?15:53
@HeikoSlibcurl?15:53
@HeikoSlisitsyn: can we somehow have this here?15:53
@HeikoShttps://github.com/tqdm/tqdm15:53
arianepaolaHeikoS: there's also a nice progress bar in npm, but this one looks better15:55
@HeikoSarianepaola: question is: can we use SG_PROGRESS15:55
@wikingarianepaola: there's no cmake anywhere else :)15:55
@HeikoSand then the bar is displayed in python15:56
sanujcan someone tell me15:56
@HeikoSbut this is off topic, so nevermind15:56
@HeikoSlisitsyn: whats all the spaces in some.h?15:56
arianepaolawiking: ?15:56
@wiking[Chris]: yesah so just transpose your input then15:56
@wikingarianepaola: "As Viktor mentioned, cmake was installed using brew. The setup.py script uses the default system cmake and might not have picked up the updated user's PATH.15:56
arianepaolawiking: what do you mean?15:56
@wiking"15:56
@wikingi only have the one cmake by brew15:56
arianepaolaah ok15:56
arianepaolaok15:56
sanujhow to debug when i don't see functions in python that i implemented via swig15:57
arianepaolawiking: did you get to test it on a Linux distro?15:57
@HeikoSsanuj: ?15:57
@wikingsanuj: check your modshogun....cxx15:57
sanujyeah15:57
sanujit's huge15:57
@wikingarianepaola: not yet15:57
@HeikoSsanuj: what do you want do to?15:57
sanuji have  %template(someKernel) Some<shogun::CKernel>;15:58
sanujand %template(TagKernel) Tag<someKernel>;15:58
sanujbut in python15:58
sanujTagKernel is not there15:59
arianepaolawiking: ok15:59
sanujit builds successfully15:59
@HeikoSsanuj: 1. make sure your python is using the correct modshogun.py15:59
sanujyes it is15:59
@HeikoS2.) grep modshoguncxx15:59
@HeikoSand grep modshogun.py15:59
@HeikoS3. check swig output15:59
sanujfor TagKernel?16:00
sanujwhich swig output16:00
@HeikoSsanuj: I dont know, have a look in the file to see how wrapped classes look like16:00
@HeikoSsanuj: maybe swig complains about something missing while running?16:00
@HeikoSIll be back after the talk we have here now16:00
sanujokay, let me see16:00
@wikingfuuuuuuuuuuuuuuuuuuuuuck16:01
@wiking"“$196 per share for LinkedIn (LNKD, Tech30), a 50% premium over the stock's closing price on Friday”"16:01
@wikinglinkedin employees must have been on coke for the whole weekend :)16:01
sanujmicrosoft bought linkedin16:01
arianepaolawiking: you are missing some uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuus16:01
sanujhaha16:02
arianepaolawiking: depends if they get to sell the shares fast before they drop16:02
@wikingi mean m$ bought it from them16:02
@wikingin double price16:02
@wikingso it's all cool16:03
arianepaolawiking: news :-)16:04
arianepaolawiking: looks like photoshop http://news.microsoft.com/2016/06/13/microsoft-to-acquire-linkedin/#sm.00003skp96pg5d8911tddaak1v6tv16:07
@wikingloooooooooooooooooooooool16:09
@wikinghttps://www.google.com.sg/search?q=LNKD&oq=LNKD&aqs=chrome..69i57.142j0j7&sourceid=chrome&ie=UTF-816:09
arianepaolaspecially the non existing shadows of the three anywhere on the photo16:09
@wikinghahaha price just jumped16:10
@wikingwell yeah16:11
@wikinghope somebody on this channel had some linkedin shares :)16:11
-!- OXPHOS [9d8b131c@gateway/web/freenode/ip.157.139.19.28] has joined #shogun16:12
sanujwiking, have you been to NUS?16:12
@wikingsanuj: as in?16:13
sanujvisited it for some reason16:13
@wikingyeah i mean i visited it once .... but i have not went there to study or something16:13
sanujokay16:13
@wikingwhy?16:13
sanujhow's it?16:13
sanuji'm planning to apply for a research intern there16:14
@wikingaaah dunno16:14
sanujokie16:14
@wikingsorry16:14
sanujman i hate debugging :D16:14
OXPHOSwiking: hey16:16
OXPHOSwiking: wanna check the linalg I updated?16:16
@wikingmmm link plz16:16
@wikingtoo many shit is around16:16
@wikingsorry my machine died16:17
@wikingmy current devenv is like shitz16:17
OXPHOSwiking: https://github.com/shogun-toolbox/shogun/pull/3277 thx.16:20
OXPHOSwiking: my machine is on the edge of dying too..hope it won't die too fast16:21
OXPHOSHeikoS, lambday: there?16:21
@lambdayOXPHOS: yo16:22
OXPHOSlambday: hey! wanna check the update?  https://github.com/shogun-toolbox/shogun/pull/327716:22
@lambdayOXPHOS: yeah sure.. let me have a look16:23
@wikingmmm16:23
@wikingok so16:23
@wikingcan i ask still why do we need16:23
@wikinggpuvectro and cpu vector16:23
@wikingand what is linalgvector16:24
@wikingwe have like 5 vectors now :)16:24
@wikingdont really get why16:24
@lambdaywiking: haha true.. we don't need that cpuvector and gpuvector anymore16:24
@lambdayOXPHOS: just name it Vector :D16:24
@wikingwhat is linalgvector and sgvector diff?16:24
@lambdaynobody likes too much typing16:24
@lambdaybtw wiking could you please comment on the discussion of the vector class in https://github.com/shogun-toolbox/shogun/pull/3278?16:25
@wikingi mean why do we need linalgvector?16:25
@lambdaywiking: I mean,this is what you had in mind>16:25
OXPHOSwiking: there's no cpuvector and gpuvector anymore, just linalgvector(or vector)16:25
@lambdaywiking: so you wanted that we make these changes in SGVector?16:25
@wikingwell i mean would be good to have the ONE vector16:25
@lambdaywiking: true16:26
@wikingno need for all these different names16:26
@wikingit's gonna be confusing16:26
@wikingas it is already for many16:26
@wikingclass GPUVectorImpl = supposed to be the opaque ?16:26
OXPHOSyes16:26
@lambdaywiking: well, SG one is for modular interfaces,.. this Vector class is supposed to be only linalg internal16:26
@wikinglambday: but you gonna be using this16:27
@wikingas well from python interface no?16:27
@wikingor if not why not?16:27
@wikingand then if yes why the differentiation?16:27
@lambdaywiking: python typemap horror? SG one already works with numpy and java..16:28
@wikinglambday: so should linalg no?16:28
@wikingbtw bool m_onGPU16:28
@wikingyou should16:28
@wikingalignas(64) bool m_onGPU;16:28
@wikingas you depend on c++1116:28
@wikingsame for index_t m_len;16:28
@wikingfor T* m_data16:29
@lambdaywiking: alright..16:29
@wikingtypedef typename std::aligned_storage<sizeof(T), std::alignment_of<T>::value>::type aligned_t;16:29
@lambdayholy shit! :d16:29
@wikingand and T* should be that irght?16:29
@wiking*right16:29
@lambdayyeah16:30
@wikingbecause you wanna work with aligned memory16:30
@wikingin vectors/matrices16:30
@wikingand use alignas16:30
@lambdaywiking: true.. this is great idea!16:30
@wikinghttp://en.cppreference.com/w/cpp/language/alignas16:30
@wikingand since you guys depend on c++1116:30
@wikingyou can use these things16:30
@lambdaywiking: but should we make all these changes in SGVector itself?16:31
@wikingi would do it yeah16:31
@wikingi mean16:31
@wikingnow we have16:31
@wikingSGVECTor16:31
@wikingand GPUvector16:31
@lambdayI thought it would be too messy for now.. so suggested that we should have16:31
@wikingthat needs to be anyways merged16:31
@wikingbecause that's already way too massy16:31
@wikingand then sgvector doesn't use aligned things16:31
@wikingthat is again a performance issue16:31
@wikingthe memory being used there should be at least16:31
@wiking16byte aligned16:32
@wikingsame goes for sgmatrix16:32
@wikingand the class properties taht are being accessed a lot16:32
@lambdaywiking: can we use eigen3 maps with those? I mean, aligned_t ?16:32
@wikingshould be prefixed with alignedas16:33
@wikinglambday: just have to specify the alignment16:33
@wikinglambday: eigen supports all these things16:33
@lambdaywiking: great then!16:33
@wikinglambday: the other name for this is 'stride'16:34
@lambdayyeah16:34
@wikingso yeah you can map these to eigen16:34
@wikingand should add some performance gain16:34
@lambdayyeah that't true16:35
@lambdayI am just worried about making all these changes into SGVector already.. things will be broken16:35
@lambdaybut yeah it's good to have just one class anyway16:36
@lambdaygotta find an iterative way of doing this..16:36
@wikingand the alignas should be with the size of cpu cache to avoid false caching (64 byte usually)16:37
@lambdayokay16:37
@wikingthose things can hurt us a lot16:37
@wikingbut then again16:37
@wikingon gpu things are different :P16:38
@lambdayone thing of concern if we use this alignas in SGVector.. the whole thing will be unavailable if c++11 is not there!16:38
@wikinglambday: posix_memalign16:38
@wikinglambday: you can do the same16:38
@wikingthe only thing is that it's not so elegant16:38
@wikingbut afaik16:38
@wikingwe'll require c++1116:38
@wikingwith the post gsoc release16:39
@wikingso you shouldn't be concerned about that16:39
@wiking:)16:39
@lambdayhaha finally we agreed on this :D16:39
@wikingyeah that was agreed a long time ago16:39
@wikingbut for post gsoc16:39
@wikingbut what OXPHOS is working on16:39
@wikingcan be all c++11 only16:39
@wikingso dont worry about how to do it w/o c++1116:40
@lambdaywiking: so what do you suggest? should she go ahead with this separate vector class for now? or make changes in SGVector already?16:40
@wikingmm lets see how this works16:41
@wikingfix all the lalalas16:41
@wiking(mentioned above)16:41
@wikingand then merge back things to sgvector16:41
@lambdaywiking: cool then16:41
@wikingand get rid of gpuvector16:41
@lambdayyeah this sounds better for me too.. not touching too many things at once is good16:41
@lambdaywiking: surely!16:41
@lambdayOXPHOS: did you follow? ^16:42
OXPHOSthe first step is to add aligned stuff right16:42
OXPHOSif that works, merge the Vector back to SGVector16:42
@lambdayOXPHOS: yeah and have the members in proper order..16:42
@lambdaynow you have the unique_ptr for gpu vector as the first member16:43
@wikinglambday: order should not matter16:43
@lambdaywhich should not be the case16:43
@wikingif you align things in the class16:43
@wikinghence the alignas(64)16:43
@lambdaywiking: yeah but doesn't it make sense to have the "hot" data first?16:44
@wikingyeah i mean you can put it there16:44
@wikingbut still16:44
@wikingmake those aligned16:45
@lambdaywiking: totally agree!16:45
@wikingbecause a class can get messy16:45
@lambdayyeah16:45
@wikingso not only the allocated mem should be aligned16:45
@wikingbut the position of the class variable16:45
OXPHOSjust prefix alignas(64) to everything (sort of)16:45
@wikingmmm more or less yeah16:46
OXPHOSif that works, i'll move forward and dump stuff in SGVector16:46
@wikingalthough16:46
@wikingi would do this16:46
@lambdayOXPHOS: yeah that gives you cache-line friendly loading I guess16:46
@wiking+/** CPU cache line size */16:46
@wiking+#define CPU_CACHE_LINE_SIZE 6416:46
@wikingadd this to src/shogun/lib/common.h16:46
@wiking(note the + as it comes from a local change of mine)16:47
@wikingand then use16:47
@wikingalignas(CPU_CACHE_LINE_SIZE)16:47
@lambdayyep16:47
OXPHOSokay16:47
@wikinginstead of burning there magical consts16:47
@wikingwho knows what the future will bring :P16:47
OXPHOSi saw we can do class alignas(CPU_CACHE_LINE_SIZE)16:47
OXPHOSstill checking but will this restrict the whole class to the size?16:47
@wikingnono16:48
@wikingthis is all abou16:48
@wikingthe memory layout16:48
@wikingof the class itself16:48
OXPHOSi see16:48
@wikingregardles the variable's size in bytes16:49
@wikingit'll be padded16:49
@wikingso that way it'll be nicely aligned16:49
@wikingand that is for example important16:49
@wikingon multi-core machines16:49
@wikinghttps://en.wikipedia.org/wiki/False_sharing16:49
@wikingif you are interested about the phenomenon16:50
OXPHOSthx!16:50
@wikingthis is a more in depth thingy: http://www.drdobbs.com/parallel/eliminate-false-sharing/21750020616:51
@wikinganyhow16:51
@wikingjust make sure that you nicely align your class layout in memory :)16:51
@wikingand then about why it is generally good to align nicely a memory chunk16:52
@wiking(see sgvector)16:52
@wikingyou should read about SIMD operations16:52
@wikingif you are interested16:52
@wikingbut  yeah in general even moving memory is faster when it is aligned16:53
@lambdaywiking: nice article16:53
@wikingso much about optimizations16:54
@wikingi'm off to sleep16:54
@wikingttyl16:55
@lambdayhaha alright have some rest16:55
@lambdayOXPHOS: how are you? :D16:55
@lambdayOXPHOS: all good?16:55
OXPHOSlambday: jeje16:56
OXPHOSwiking: thx! good night!16:56
arianepaolabye wiking16:56
@wikingbtw i wonder16:57
@wikingfor (int i = 0; i < N; ++i) x[i] = y[i]/scalar16:58
@wikingwill this be optimized into16:58
@wikings = 1/scalar16:58
@wikingfor (int i = 0; i < N; ++i) x[i] = y[i]*s16:58
@lambdaytough to say.. if scalar was const then maybe.. but can't tell unless we check17:00
@wikingthere was something like this in Saurabh7's kmeans pr17:01
@wikinganyhow enforcing that woudl be good17:01
@wikingas it's really unnecessary17:02
@wikingmultiplication is much cheaper17:02
@lambdayyep17:02
@lambdaywiking: you started to talk like herb sutter :D17:03
@wikingwho's taht?17:03
@lambdayhaha nice one17:03
arianepaolalmao17:04
@wikingaaah i see17:04
@wikingmmm never heard his name :)17:04
@wikingmmm good stuff17:06
@wikingheheh http://www.drdobbs.com/architecture-and-design/know-when-to-use-an-active-object-instea/227500074?pgno=317:07
@wikinglove that lambda expression17:07
[Chris]wiking: thanks for your help17:08
@wiking[Chris]: nw17:08
[Chris]unfortunately when I call mkl.train() now I get a Floating point exception :)17:09
@wikingmmmm that is weird17:10
@wikingask the people here17:10
@wikingsomebody who's still awake will be able to help17:10
@wikingbut if u dont get an answer17:10
@wikingjust write to the mailing list17:10
@wikingsomebody will get back to u17:10
@wikingpromize17:10
[Chris]alright, thank you17:11
OXPHOSwanna ask, what was this for? typedef typename std::aligned_storage<sizeof(T), std::alignment_of<T>::value>::type aligned_t17:13
@wikingOXPHOS: when you do a malloc17:14
@wikingor a new17:14
@wikingso say you have T* whatever17:14
@wikingT* whatever = new aligned_t[size]17:15
OXPHOSwiking: okay lemme try. thx!17:15
@wikingi reckon you'll have to do a reinterpret_cast<T*>17:15
@wikingso T* whatever = reinterpret_cast<T*>(new aligned_t[size])17:15
OXPHOSand the unique ptr suppose to be involved in the stuff too right..17:16
@lambdayOXPHOS: that's easy..17:16
@wikingwell that's just an extra addon around the mem17:16
OXPHOSokay lemme just play around..17:17
@lambdaywiking: I wonder whether std::copy would work with T* and alighed_t*17:18
@lambdayshould be fine I guess17:18
@lambdayit takes two different iterators17:18
@lambdayOXPHOS: make sure you do deep copy for now when constructing a Vector from SGVector17:20
OXPHOSlambday: got it17:21
-!- sanuj [~sanuj@117.204.250.149] has quit [Ping timeout: 252 seconds]17:23
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun17:31
shogun-notifier-shogun: lambday :feature/bigtest * d52850f / / (5 files): https://github.com/shogun-toolbox/shogun/commit/d52850f4b01f684571a327f16c2c4c81031461e617:31
shogun-notifier-shogun: moved compute_distance to twodistributiontest, added unittest17:31
shogun-notifier-shogun: lambday :feature/bigtest * 2b156a3 / / (13 files): https://github.com/shogun-toolbox/shogun/commit/2b156a34e6b31c56fd3ea318bc4967fd1065107817:31
shogun-notifier-shogun: added first draft of multi kernel MMD17:31
-!- HeikoS [~heiko@nat-177-97.internal.eduroam.ucl.ac.uk] has quit [Ping timeout: 264 seconds]17:37
lisitsynyou've got thousands of messages here17:38
-!- besser82 [~besser82@fedora/besser82] has joined #shogun17:41
-!- mode/#shogun [+o besser82] by ChanServ17:41
-!- besser82_ [~besser82@fedora/besser82] has joined #shogun17:43
-!- mode/#shogun [+o besser82_] by ChanServ17:43
-!- besser82 [~besser82@fedora/besser82] has quit [Ping timeout: 240 seconds]17:47
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has joined #shogun17:54
-!- mode/#shogun [+o HeikoS] by ChanServ17:54
-!- besser82_ [~besser82@fedora/besser82] has quit [Ping timeout: 276 seconds]18:01
OXPHOSlambday:18:02
OXPHOShey18:02
OXPHOS was trying to construct Vector like: m_data = SG_MALLOC(T, vector.vlen); memcpy(m_data, vector.vector, sizeof(T)*vector.vlen);18:03
OXPHOShow can i put that aligned stuff in?18:04
@lambdayOXPHOS: why not simply use what wiking wrote?18:11
@lambdayjust replace new with SG_MALLOC if you want to use that18:11
@lambdayOXPHOS: but I'd just do the copy first and then do reinterpret_cast18:12
@lambdaysomehting like18:12
OXPHOSlambday I'm doing m_data = reinterpret_cast<T>(SG_MALLOC(aligned_t, vector.vlen));18:12
@lambdaymalloc returns a ptr18:13
@lambdayyou're casting it to T :D18:13
@lambdayOXPHOS: but do the copy first then assign it to m_data18:13
OXPHOSaaah18:13
@lambdayhave a temporary variable, call it just "data"..18:13
@lambdaystd::copy to data18:14
@lambdaythen reinterpret_cast that to T*18:14
OXPHOSi don't think copy works actually, can only use memcpy18:14
OXPHOSwhy is that?18:14
@lambdaystd::copy doesn't work?18:14
@lambdayI said this because while copying, you'll have to cast it back to aligned_t* anyway.. otherwise copy will fail18:15
OXPHOSlambday: yes there's a std::copy in benchmark and it returns an empty vector18:15
@lambdayOXPHOS: err what?18:15
@lambdaywhich benchmakr?18:15
-!- besser82_ [~besser82@fedora/besser82] has joined #shogun18:15
-!- mode/#shogun [+o besser82_] by ChanServ18:15
@lambdayOXPHOS: trust std:: ;)18:15
OXPHOSlambday: matrix_product_benchmark18:15
@lambdayOXPHOS: then it's using it wrong!18:16
OXPHOSlambday: yeah.. I thought there's no iterator in SGVector18:16
@lambdayOXPHOS: the reason I am asking to use std::copy because it can handle two different iterator types18:16
@lambdayalthough I don't know whether std::aligned_storage can be used with ++18:17
@lambdaylet me check18:17
@lambdaymhm18:18
@lambdaynot possible18:18
OXPHOSSGVector is not aligned right? I didn't see any sign of align there18:19
@lambdayOXPHOS: not aligned18:19
OXPHOSlambday: er..why is m_data T* type not align_T type?18:20
@lambdayOXPHOS: that is what your job is : to make it aligned_t*18:20
@lambdaybut in Vector, not yet in SGVector18:21
@lambdaywe'll see that later18:21
OXPHOSso it should be like aligned_t* m_data18:22
OXPHOSand in constructor we can malloc(aligned_t, ...)18:22
OXPHOSand cast SGVector to aligned_t18:22
OXPHOSlambday ^18:22
@lambdayOXPHOS: yeah18:23
@lambdayOXPHOS: but wait.. we need to make std::copy with with this18:23
@lambdayOXPHOS: checking18:23
@lambdayOXPHOS: not cast SGVector to aligned_t.. rather deep copy SGVector's "vector" to our "m_data"18:24
-!- sanuj [~sanuj@117.204.250.149] has joined #shogun18:25
OXPHOSlambday: i mean in std::copy() we cannot just copy SGVector, but casted SGVector?18:25
sanujlisitsyn, got time?18:26
OXPHOSeven if there is a temp container to hold deep-copied SGVector18:26
OXPHOSlambday: there's still a convert step right?18:26
@lambdayOXPHOS: what do you mean by casted SGVector?18:28
@lambdaysee, SGVector has an array of T, we need to deep copy that, but as an array of aligned_t instead18:28
@lambdayOXPHOS: one obvious way to do this is to copy things element-by-element18:29
@lambdayOXPHOS: but that's slow as shit! so would be better if we could copy a chunk..18:29
OXPHOSlambday: yeah I was just wondering how to copy from T to aligned_t..18:29
@lambdayOXPHOS: yeah so I am just checking what does it take for std::copy to work18:30
@lambdayOXPHOS: hang on18:30
OXPHOSlambday: haha okay sry18:30
@lambdayOXPHOS: nah seems like you have to store it at T* only18:45
-!- besser82_ [~besser82@fedora/besser82] has quit [Ping timeout: 276 seconds]18:46
@lambdayOXPHOS: so just do m_data = reinterpret_cast<T*>(SG_MALLOC(aligned_t, vector.vlen));18:47
@lambdayand then copy18:47
OXPHOSlambday: okay so m_data is still T* type18:48
@lambdayOXPHOS: yep.. but by creation you made it aligned18:48
OXPHOSlambday: yeah18:49
@lambdayOXPHOS: let me know whether copy works18:50
@lambdayOXPHOS: oh make sure you delete this thing in destructor properly!18:50
OXPHOSlambday: sure18:51
@lambdayyou may need to cast it back to be able to delete properly18:52
arianepaolaccccccevhrjdnuevertkjddcdcihveurfecbtgfbukkl18:53
arianepaolaccccccevhrjdtdlctvvjbgjtrvnichblddcfirrurigd18:53
arianepaolasorry18:53
@lambdayarianepaola: how many cats do you have?18:53
@lambday:P18:53
-!- arianepaola [~ariane@unaffiliated/arianepaola] has quit [Read error: Connection reset by peer]18:54
-!- arianepaola [~ariane@unaffiliated/arianepaola] has joined #shogun18:57
arianepaolalambday: :p19:02
OXPHOS@lambday: std::copy worked19:14
-!- mizari [~mizari@95-174-213-100.nts.su] has quit [Quit: Leaving]19:14
OXPHOShow can i know whether the destructor is functioning properly?19:14
-!- arianepaola [~ariane@unaffiliated/arianepaola] has quit [Quit: Leaving.]19:15
-!- arianepaola [~ariane@unaffiliated/arianepaola] has joined #shogun19:16
OXPHOSlambday: or we'll use unref()?19:16
@lambdayOXPHOS: ref unref will only work if it is a subclass of CSGObject or SGReferenceData19:21
@lambdayOXPHOS: just valgrind it :)19:21
-!- GandalfTheWizard [~Eva@112.10.170.90] has quit [Quit: Leaving.]19:21
OXPHOSlambday: i mean finally it's gonna be ~SGVector() right. im now using free()19:22
OXPHOSand trying align_unique_ptr now19:22
@lambdayOXPHOS: yeah but we're not quite there yet :)19:22
CaBahi19:26
sanujlisitsyn, got time? :)19:39
lisitsynsanuj: yeah a little bit19:40
sanujlisitsyn, Some<shogun::CKernel> i have manged to build19:40
sanujbut it is not showing in python19:40
sanujlike TagKernel19:40
sanujetc19:40
lisitsynwhy?19:41
sanujand what are the next steps for swig interface19:41
sanujlisitsyn, dunno, modshogunpython looks fine19:41
lisitsynwell what next steps if it doesn't work yet :P19:41
sanujhaha19:41
sanuji dunno how to debug this19:41
lisitsynsanuj: well have you declared it? like TagInt19:42
sanujlisitsyn, yes, i also see the wrapper functions in modshogunpython19:43
sanujthe big file that is generated19:43
lisitsynso you have some definition of TagKernel?19:44
sanujyeah19:44
sanujlisitsyn, stuff like SWIGINTERN int _wrap_new_TagKernel__SWIG_0(PyObject *self, PyObject *args) {19:44
lisitsynthen are you sure it is not other shogun you're using?19:44
sanujpath is correct19:44
OXPHOSlambday: the pimpl points to a class so i guess it is fine keeping it intact without aligned_storage stuff?19:47
OXPHOSi updated the PR if you'd like to check19:47
sanujlisitsyn, do you have time to try it on your local?19:47
sanuji can push it on my branch19:47
OXPHOSlambday: also the ViennaCL ptr.. I didt touch it yet19:47
lisitsynsanuj: yeah I could19:47
sanujokay, i'll give you the link19:47
sanujlisitsyn, https://github.com/sanuj/shogun/tree/tags-swig19:50
sanujlisitsyn, did you clone?19:54
sanujlambday, did you go to deepmind?20:13
@HeikoSsanuj: not yet20:16
sanujokay20:16
@HeikoSbut just asked them when is good :)20:16
sanujso when? :)20:17
sanujjust came across Dark Blue Labs on the web20:17
sanujfunny name :D20:17
@HeikoSsanuj: dont know hopefully this week20:21
@HeikoSDark Blue labs?20:21
@HeikoSwhat is that?20:21
sanujHeikoS, http://www.cs.ox.ac.uk/people/nando.defreitas/20:22
sanujhttp://darkbluelabs.com/20:22
sanujacquired by deepmind20:22
@HeikoSah yeah20:22
@HeikoSI forgot20:22
sanujHeikoS, too much ai going on20:24
@HeikoSyeah20:24
@HeikoStoo much money20:24
sanuj$$20:24
-!- shogun-notifier- [~irker@7nn.de] has quit [Quit: transmission timeout]20:31
sanujgoing to sleep20:35
sanujgoodnight folks20:35
@lambdayOXPHOS: yeah should be fine..20:36
@lambdayOXPHOS: I'll check a bit20:36
@lambdaysanuj: no I haven't yet20:36
sanujlambday, okay20:37
sanujbusy with intern?20:37
@lambdaysanuj: hehe not that much20:38
sanujhow's the gujarati family :D20:38
sanujokay20:38
@lambdaysanuj: they cooked chicken yesterday, if you can believe that!20:38
sanujhaha20:38
sanujlambday, bye :)20:40
@lambdaysanuj: bye! see you!20:40
-!- sanuj [~sanuj@117.204.250.149] has quit [Quit: Leaving]20:41
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has quit [Ping timeout: 244 seconds]21:34
arianepaolabye everyone, until tomorrow21:54
lisitsynbazdmeg!22:32
-!- sonne|osx [~sonne@x4e31fd0a.dyn.telefonica.de] has joined #shogun23:01
--- Log closed Tue Jun 14 00:00:39 2016

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