| --- Log opened Tue Jun 13 00:00:11 2017 | ||
| -!- HeikoS [~heiko@host-92-0-178-129.as43234.net] has joined #shogun | 00:11 | |
| -!- mode/#shogun [+o HeikoS] by ChanServ | 00:11 | |
| -!- HeikoS [~heiko@host-92-0-178-129.as43234.net] has quit [Remote host closed the connection] | 00:12 | |
| @sukey | Pull Request #3833 "unit test for DynamicArray" merged by vigsterkr - https://github.com/shogun-toolbox/shogun/pull/3833 | 02:48 | 
|---|---|---|
| @sukey | New Commit "Merge pull request #3833 from MikeLing/add_unittest_for_CDynamicArray | 02:48 | 
| @sukey | unit test for DynamicArray" to shogun-toolbox/shogun by vigsterkr: https://github.com/shogun-toolbox/shogun/commit/9efa3b77147ccbab345c76832fc6fe4534dd4dab | 02:48 | 
| shogun-buildbot | build #277 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/277 blamelist: MikeLing <sabergeass@gmail.com>, Viktor Gal <vigsterkr@gmail.com> | 02:49 | 
| @wiking | shogun-buildbot: force build --branch=develop 'trusty - libshogun - viennacl' | 02:54 | 
| shogun-buildbot | build #278 forced | 02:54 | 
| shogun-buildbot | I'll give a shout when the build finishes | 02:54 | 
| shogun-buildbot | build #278 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/278 | 02:55 | 
| @wiking | shogun-buildbot: force build --branch=develop 'zesty - libshogun' | 02:55 | 
| shogun-buildbot | The build has been queued, I'll give a shout when it starts | 02:56 | 
| @wiking | shogun-buildbot: force build --branch=develop 'deb3 - modular_interfaces' | 02:56 | 
| shogun-buildbot | The build has been queued, I'll give a shout when it starts | 02:56 | 
| @wiking | shogun-buildbot: force build --branch=develop 'deb4 - python3' | 02:56 | 
| shogun-buildbot | The build has been queued, I'll give a shout when it starts | 02:56 | 
| shogun-buildbot | build forced [ETA 44m11s] | 02:56 | 
| shogun-buildbot | I'll give a shout when the build finishes | 02:56 | 
| shogun-buildbot | build #210 forced | 02:56 | 
| shogun-buildbot | I'll give a shout when the build finishes | 02:56 | 
| shogun-buildbot | build #223 forced | 02:56 | 
| shogun-buildbot | I'll give a shout when the build finishes | 02:57 | 
| shogun-buildbot | Hey! build deb4 - python3 #223 is complete: Success [build successful] | 03:00 | 
| shogun-buildbot | Build details are at http://buildbot.shogun-toolbox.org/builders/deb4%20-%20python3/builds/223 | 03:00 | 
| shogun-buildbot | Hey! build zesty - libshogun #1 is complete: Success [build successful] | 03:01 | 
| shogun-buildbot | Build details are at http://buildbot.shogun-toolbox.org/builders/zesty%20-%20libshogun/builds/1 | 03:01 | 
| shogun-buildbot | Hey! build deb3 - modular_interfaces #210 is complete: Success [build successful] | 03:20 | 
| shogun-buildbot | Build details are at http://buildbot.shogun-toolbox.org/builders/deb3%20-%20modular_interfaces/builds/210 | 03:20 | 
| -!- mikeling [uid89706@gateway/web/irccloud.com/x-fjfarfqxbxqsarhl] has joined #shogun | 04:01 | |
| mikeling | wiking: hey! Thank you for the merge | 04:01 | 
| mikeling | After I rebase and run the test. All the CDynamicArrayTest works but | 04:02 | 
| mikeling | some test like CrossValidation_multithread.LibSVM_unlocked still failed | 04:03 | 
| mikeling | Could I update the PR and we could discuss in there? | 04:03 | 
| @wiking | mikeling, sure go ahead | 04:33 | 
| -!- TingMiao [uid229534@gateway/web/irccloud.com/x-bleqxrbjgtfzxvbg] has joined #shogun | 04:34 | |
| @wiking | mikeling, here? | 04:44 | 
| mikeling | Yep | 04:44 | 
| @wiking | so yeah push the thing as soon as you can | 04:46 | 
| @wiking | and then we should see once this is fixed | 04:46 | 
| @wiking | lets see what else is missing to finish up with DynArray removal | 04:46 | 
| mikeling | Yeah I know… I'm reviewing it to make sure no stupid problem in the pr | 04:49 | 
| @wiking | it's ok | 04:50 | 
| @wiking | if it doesn't go through | 04:51 | 
| @wiking | i mean that if you know that there's a bug | 04:51 | 
| @wiking | then just push it in as is | 04:51 | 
| @wiking | as it's gonna fail anyways :) | 04:51 | 
| @wiking | i mean i would like to have this rolling | 04:51 | 
| @wiking | and it seems we are just one step away from finalizing this task | 04:51 | 
| @wiking | just make sure that you have your branch rebased with the latest develop | 04:52 | 
| @wiking | mikeling, if you can push it *now* i could debug it now | 04:54 | 
| @wiking | ironstark, i would need to be able to somehow reproduce your custom env ... as based on your cmake flags you have some custom python installation, right? | 04:55 | 
| @wiking | see -DPYTHON_PACKAGES_PATH=../../lib/python3.5/dist-packages | 04:55 | 
| @wiking | or you are using the default python3.5 package of ubuntu zesty? | 04:56 | 
| mikeling | sure, a second please | 04:56 | 
| @sukey | Pull Request #3832 "use std::deque instead of DynArray(on going)" synchronized by MikeLing - https://github.com/shogun-toolbox/shogun/pull/3832 | 04:59 | 
| mikeling | wiking: mmm, the template will been changed to different line which makes class_list failed | 05:00 | 
| @wiking | ? | 05:00 | 
| @wiking | changed by what/who | 05:00 | 
| @wiking | ? | 05:00 | 
| @wiking | why is this changed | 05:01 | 
| @wiking | template <class T> | 05:01 | 
| @wiking | +class CDynamicArray : public CSGObject | 05:01 | 
| @wiking | ? | 05:01 | 
| @wiking | :) | 05:01 | 
| @wiking | +template <class T> | 05:01 | 
| @wiking | ? | 05:01 | 
| @wiking | ok i'm gonna stop the CI | 05:01 | 
| @wiking | as there's no point of runninng them | 05:01 | 
| mikeling | yeah | 05:01 | 
| @wiking | why couldn't you push something? | 05:01 | 
| @wiking | that has at least that line fixeD? | 05:01 | 
| @wiking | i seriously dont understand | 05:02 | 
| @wiking | why that 2 seconds change | 05:02 | 
| @wiking | was not possible? | 05:02 | 
| @wiking | it's literally removing 2 \n | 05:02 | 
| @wiking | in the code | 05:02 | 
| @wiking | and i really now i really have a hard time understand | 05:02 | 
| mikeling | I changed actually, but the check_format auto change it back | 05:02 | 
| @wiking | ? | 05:02 | 
| @wiking | you added that to git commit hook? | 05:02 | 
| @wiking | or what? | 05:03 | 
| @wiking | please change that now and push it | 05:03 | 
| @wiking | like in the next 1 minutes | 05:03 | 
| @wiking | ? | 05:08 | 
| @sukey | Pull Request #3832 "use std::deque instead of DynArray(on going)" synchronized by MikeLing - https://github.com/shogun-toolbox/shogun/pull/3832 | 05:08 | 
| mikeling | done | 05:09 | 
| @wiking | +template <class T> | 05:10 | 
| @wiking | +class CDynamicArray : public CSGObject | 05:10 | 
| @wiking | ??? | 05:10 | 
| @wiking | seriously? | 05:10 | 
| @wiking | mikeling, | 05:10 | 
| mikeling | oh no | 05:11 | 
| @sukey | Pull Request #3832 "use std::deque instead of DynArray(on going)" synchronized by MikeLing - https://github.com/shogun-toolbox/shogun/pull/3832 | 05:11 | 
| mikeling | I forget to save the change.... | 05:12 | 
| @wiking | mikeling, i'll check on the failing tests | 05:12 | 
| @wiking | but you know that there are still some comments of mine | 05:12 | 
| @wiking | that has not been addressed in this pr | 05:12 | 
| @wiking | and | 05:13 | 
| @wiking | for example this is one of them | 05:13 | 
| @wiking | ../src/shogun/lib/DynamicArray.h: In member function ‘bool shogun::CDynamicArray<bool>::insert_element(bool, int32_t)’: | 05:13 | 
| @wiking | ../src/shogun/lib/DynamicArray.h:1113:3: warning: declaration of ‘element’ shadows a member of 'this' [-Wshadow] | 05:13 | 
| @wiking | { | 05:13 | 
| @wiking | ^ | 05:13 | 
| @wiking | no need to repush now the warning fix | 05:13 | 
| @wiking | just make sure that on the very end you address this as well | 05:13 | 
| mikeling | ok, got it | 05:14 | 
| @wiking | and all the comments of mine | 05:15 | 
| @wiking | around shuffle | 05:15 | 
| @wiking | but yeah check all the unaddressed comments of mine | 05:15 | 
| @wiking | and in the meanwhile i'll try to figure out what's the problem with the test and will comment as well the pr | 05:16 | 
| mikeling | wiking: thank you. Sorry for wasting your time by my carelessness | 05:21 | 
| @wiking | ok compiled | 05:31 | 
| @wiking | running the tests | 05:31 | 
| @wiking | i have quite a lot of failures | 05:31 | 
| @wiking | but i think | 05:31 | 
| @wiking | i made a mistake :) | 05:31 | 
| mikeling | a mistake? | 05:32 | 
| @wiking | mikeling, https://pastebin.com/yxaLHbYE | 05:32 | 
| @wiking | is this the list of failing test? | 05:32 | 
| mikeling | yeah | 05:32 | 
| @wiking | doh | 05:33 | 
| @wiking | this is a lot | 05:33 | 
| @wiking | btw why do you have these changes | 05:33 | 
| @wiking | https://github.com/shogun-toolbox/shogun/pull/3832/files#diff-8129456668aa9135d6340bd89fdad5bcL100 | 05:34 | 
| @wiking | ? | 05:34 | 
| @wiking | 128 -> 10 | 05:34 | 
| @wiking | 15 -> 10 | 05:34 | 
| @wiking | this actually changes the nature of the DynamicArray | 05:34 | 
| @wiking | it's a different implementation | 05:35 | 
| @wiking | RIGHT? | 05:35 | 
| @wiking | i mean i dont get this | 05:35 | 
| mikeling | because the resize_array before related with the p_resize_granularity | 05:35 | 
| @wiking | what is the point of having a unit test | 05:35 | 
| @wiking | yhes | 05:35 | 
| @wiking | but if you change it | 05:35 | 
| @wiking | you change the implementation | 05:35 | 
| @wiking | and some tools in shogun | 05:35 | 
| @wiking | DEPEND | 05:35 | 
| @wiking | on this | 05:35 | 
| @wiking | i dont get it man | 05:35 | 
| @wiking | this is such a simple task | 05:35 | 
| @wiking | you have an interface | 05:35 | 
| @wiking | DynamicArray | 05:35 | 
| @wiking | the request was to | 05:35 | 
| @wiking | change the underlying data structure | 05:35 | 
| @wiking | but EVERYTHING ELSE | 05:36 | 
| @wiking | should stay the same | 05:36 | 
| @wiking | and we are working on this | 05:36 | 
| @wiking | like for the last 1.5 weeks | 05:36 | 
| mikeling | yes, I know. I will keep all the things stay the same | 05:37 | 
| @wiking | but man | 05:37 | 
| @wiking | this is not the problem | 05:37 | 
| @wiking | the problem is that we keep having this conversation | 05:37 | 
| @wiking | like the 3rd time | 05:37 | 
| mikeling | yes I know. | 05:39 | 
| @wiking | i mean this particular PR | 05:39 | 
| @wiking | removing DynArray to something else | 05:39 | 
| @wiking | EVEN if it's pure pointer stuff | 05:40 | 
| @wiking | and you yourself do the memory allocation | 05:40 | 
| @wiking | should not have taken more than 3 day | 05:40 | 
| @wiking | s | 05:40 | 
| @wiking | including the tests | 05:40 | 
| @wiking | and still | 05:41 | 
| @wiking | you are coming back with half backed solutions | 05:41 | 
| @wiking | not taking consideration half of my comments | 05:41 | 
| mikeling | sorry....I shouldn't do it | 05:41 | 
| @wiking | i really dont know what to do it anymore | 05:41 | 
| @wiking | i was being patient till now | 05:41 | 
| @wiking | but i'm loosing it now because i really do not understand | 05:41 | 
| @wiking | what is the problem | 05:41 | 
| @wiking | which part is not crystal clear | 05:41 | 
| @wiking | that YOU should not change behaviour of the object | 05:42 | 
| @wiking | and that you should address *all* my comments in the pr | 05:42 | 
| @wiking | if you are stressed out because of this then take a day off and dont do anything about this and read something or just go take a walk | 05:43 | 
| mikeling | I'm sorry, really. I just thought we don't need resize_granularity after we use vector.resize() to handle the resize | 05:43 | 
| @wiking | but i expect to see a full working solution on the end of this week | 05:43 | 
| @wiking | if that doesn't happen | 05:43 | 
| @wiking | we'll have to seriously talk about the rest of gsoc | 05:43 | 
| mikeling | ok, I understand | 05:44 | 
| @wiking | [11:41] <mikeling> I'm sorry, really. I just thought we don't need resize_granularity after we use vector.resize() to handle the resize | 05:44 | 
| @wiking | yes | 05:44 | 
| @wiking | that'd be the case | 05:44 | 
| @wiking | if you would now have a working solution | 05:44 | 
| @wiking | right? | 05:44 | 
| @wiking | but half of the library is broken atm | 05:44 | 
| mikeling | yes | 05:44 | 
| @wiking | moreover | 05:44 | 
| @wiking | in case of DynamicArray<bool> you do not have vector.reisze() | 05:45 | 
| @wiking | *resize*) | 05:45 | 
| @wiking | mikeling, still here? | 06:20 | 
| mikeling | wiking: yes I'm working on the pr | 06:21 | 
| @wiking | that's ok | 06:21 | 
| @wiking | i just wanted to | 06:21 | 
| @wiking | see why there's actually a problem | 06:22 | 
| mikeling | honestly, I don't know why it tooks so long either. Actually I work on it till 1 or 2 am these days. Just this simple pr | 06:23 | 
| mikeling | Change some places and build to see if everything keeps ok | 06:24 | 
| @wiking | yeah i know that you've been working lot | 06:25 | 
| @wiking | but maybe emphasizing on the wrong end | 06:25 | 
| @wiking | anyhow i'mjust tyring to help you out with debugging what's happening in the xval | 06:25 | 
| mikeling | Early of last week I'm trying to get pointer and reference to bool vector | 06:25 | 
| mikeling | But you know it failed | 06:26 | 
| mikeling | And I try to separate them into different way to implement the array | 06:26 | 
| mikeling | But obviously the memory management is the problem for it | 06:28 | 
| @wiking | there's a problem still with the memory somewhere | 06:28 | 
| @wiking | and that comes out | 06:28 | 
| mikeling | Yeah | 06:28 | 
| @wiking | in the part of the splitting | 06:28 | 
| @wiking | and other places | 06:28 | 
| mikeling | Yes, actually I haven't pay too much attention to the interface, because I guess it would broken the memory allocate like that | 06:30 | 
| mikeling | And most tests passed | 06:30 | 
| mikeling | I should keep all the interface stay the same so we can figure out what's the problem exactly | 06:32 | 
| -!- geektoni [~geektoni@93-34-234-212.ip52.fastwebnet.it] has joined #shogun | 08:30 | |
| geektoni | ping wiking | 09:01 | 
| @wiking | pong | 09:01 | 
| geektoni | I read your email | 09:01 | 
| geektoni | what I meant was that some languages don't have the concept of "pointer" | 09:02 | 
| geektoni | so, exposing directly Some would be a waste | 09:02 | 
| geektoni | since there are no "pointers" to wrap | 09:03 | 
| geektoni | e.g. Python | 09:03 | 
| @wiking | que? | 09:03 | 
| @wiking | i really dont understand what you mean by this | 09:03 | 
| geektoni | I mean | 09:03 | 
| @wiking | currently we directly | 09:04 | 
| @wiking | expose the classes on heap | 09:04 | 
| @wiking | i.e. pointers | 09:04 | 
| @wiking | there's some wrapper logic around it | 09:04 | 
| @wiking | in SGBase.i | 09:04 | 
| geektoni | Ok, let me try to explain it better. We know that Some<> wraps raw pointers and does automatic memory management. When we use Python language, we don't have to deal directly with pointers like we do with C++. Therefore, having the Some<> directly exposed in Python won't make much sense, since there are no pointers we can wrap. | 09:10 | 
| @wiking | but you do understand | 09:11 | 
| @wiking | that there's auto memory management is happening | 09:11 | 
| @wiking | right | 09:11 | 
| @wiking | ? | 09:11 | 
| @wiking | and how do you plan | 09:11 | 
| geektoni | yeah sure | 09:11 | 
| @wiking | in case | 09:11 | 
| @wiking | you start changing api | 09:11 | 
| @wiking | to Some<T> | 09:11 | 
| @wiking | to pass those into function args? | 09:11 | 
| lisitsyn | so what did help | 09:15 | 
| geektoni | wiking: mmmmh, ok. I understand your point. | 09:17 | 
| geektoni | lisitsyn: operator* renaming did the trick. | 09:17 | 
| lisitsyn | no reason to have RealFeatures exposed to swig as we use Some<RealFeatures> anyway | 09:18 | 
| lisitsyn | I think this summarizes what wiking wants :P | 09:18 | 
| @wiking | :) | 09:18 | 
| @wiking | i told this like 2 times now | 09:18 | 
| @wiking | :))0 | 09:18 | 
| @wiking | but there's something that geektoni wants to explain | 09:18 | 
| @wiking | but i'm just not getting it | 09:19 | 
| lisitsyn | me neither | 09:19 | 
| lisitsyn | geektoni: give it another chance | 09:19 | 
| lisitsyn | :) | 09:19 | 
| geektoni | no, it is nothing special really. I just misunderstood this line "so i don’t see the point to expose to the SWIG interface the bare ptr class" from wiking email ;) | 09:21 | 
| lisitsyn | yœy! | 09:21 | 
| @wiking | yeah | 09:22 | 
| @wiking | no more | 09:22 | 
| lisitsyn | hohoho | 09:22 | 
| @wiking | rename(X) CX | 09:22 | 
| lisitsyn | oh | 09:22 | 
| @wiking | just rename(X) Some<X> | 09:22 | 
| lisitsyn | what about dropping | 09:22 | 
| lisitsyn | :D | 09:22 | 
| lisitsyn | the C | 09:22 | 
| @wiking | yeah next time | 09:22 | 
| @wiking | :) | 09:22 | 
| lisitsyn | meh | 09:22 | 
| geektoni | ok so | 09:23 | 
| geektoni | next question | 09:23 | 
| @wiking | no more questions | 09:23 | 
| @wiking | :D | 09:23 | 
| @wiking | :D | 09:23 | 
| lisitsyn | question dismissed! | 09:23 | 
| lisitsyn | ajjaj | 09:23 | 
| geektoni | LOL | 09:23 | 
| lisitsyn | sooo what is | 09:23 | 
| geektoni | let's say we have %rename(GaussianKernel) Some<GaussianKernel> | 09:24 | 
| geektoni | calling "a= GaussianKernel()" from python will result in an error, because Some<GaussianKernel> needs or a pointer to a GK or another Some instance. | 09:25 | 
| @wiking | que? | 09:25 | 
| @wiking | mmm | 09:26 | 
| @wiking | but man | 09:26 | 
| @wiking | you've just created | 09:26 | 
| @wiking | SGObject() yesterday | 09:26 | 
| @wiking | i mean | 09:26 | 
| @wiking | SomeSGObject() | 09:26 | 
| @wiking | x = SomeSGObject() | 09:26 | 
| lisitsyn | a = GaussianKernel() -> a = new Some<GaussianKernel>() | 09:26 | 
| @wiking | was all good no? | 09:26 | 
| @wiking | i dont see what is the problem really | 09:27 | 
| @wiking | i feel stupid | 09:27 | 
| @wiking | for the last 10 minutes now | 09:27 | 
| @wiking | :D | 09:27 | 
| lisitsyn | but yeah isn't that exactly the thing | 09:27 | 
| lisitsyn | you did yesterday | 09:27 | 
| geektoni | well no, the actual way to use, let's say, SomeSGObject is x = SomeSGObject(GaussianKernel()). | 09:28 | 
| geektoni | you cannot initialize an "empty" SomeSGObject. | 09:28 | 
| geektoni | x = SomeSGObject() | 09:28 | 
| lisitsyn | can you SomeSGObject()? | 09:28 | 
| lisitsyn | okkay I see what you mean | 09:29 | 
| @wiking | we need an indirection | 09:29 | 
| @wiking | one more ) | 09:29 | 
| geektoni | i was thinking | 09:29 | 
| geektoni | to use some<> instead | 09:29 | 
| lisitsyn | what instead of what? | 09:30 | 
| geektoni | the helper method some<> | 09:30 | 
| geektoni | instead of using directly the Some constructor | 09:30 | 
| lisitsyn | can't see | 09:31 | 
| geektoni | this guy here --> https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/base/some.h#L144 | 09:32 | 
| lisitsyn | quite good but variadic templates won't work with swig | 09:33 | 
| geektoni | Ok, you already answered my next question lisitsyn ;) | 09:33 | 
| lisitsyn | fooouacck | 09:33 | 
| lisitsyn | bloody shieat | 09:34 | 
| lisitsyn | geektoni: the problem is that in the bright future we don't need ctors | 09:36 | 
| lisitsyn | but now we do need | 09:36 | 
| geektoni | mmh | 09:38 | 
| lisitsyn | geektoni: we need to specialize ctors of some that match ctors of T | 09:43 | 
| lisitsyn | doesn't sound that easy | 09:43 | 
| lisitsyn | wiking: see the problem? | 09:45 | 
| geektoni | it seems to be a lot of code | 09:45 | 
| lisitsyn | geektoni: usual question: does it work with shared ptr? | 09:45 | 
| geektoni | what works? | 09:46 | 
| lisitsyn | ctors | 09:46 | 
| geektoni | I've never tried with SWIG | 09:47 | 
| @wiking | i reckon for some targets it'll work | 09:47 | 
| -!- mikeling [uid89706@gateway/web/irccloud.com/x-fjfarfqxbxqsarhl] has quit [Quit: Connection closed for inactivity] | 09:47 | |
| lisitsyn | OK! | 09:49 | 
| lisitsyn | ha! | 09:49 | 
| lisitsyn | geektoni: what if you have two names | 09:49 | 
| lisitsyn | rename CSGObject to SGObject | 09:49 | 
| lisitsyn | and rename Some<SGObject> to SomeSGObject | 09:50 | 
| lisitsyn | is it true that | 09:50 | 
| lisitsyn | x = SGObject(…) works and produces SomeSGObject? | 09:50 | 
| lisitsyn | no :( probably no | 09:50 | 
| lisitsyn | :D | 09:50 | 
| geektoni | yeah, I think you're right ;) It probably won't work. | 09:51 | 
| lisitsyn | geektoni: SGObject should become a function | 09:51 | 
| lisitsyn | that returns Some<SGObject> | 09:52 | 
| -!- iglesiasg [~iglesiasg@217.119.234.214] has joined #shogun | 09:52 | |
| -!- mode/#shogun [+o iglesiasg] by ChanServ | 09:52 | |
| geektoni | mmh is it possible to do something like that using SWIG? | 09:53 | 
| lisitsyn | yes the question is how to avoid a lot of code | 09:53 | 
| -!- WangWang [uid231047@gateway/web/irccloud.com/x-mlezjzdzjfwklcrd] has joined #shogun | 09:54 | |
| lisitsyn | geektoni: we could give up on ctors but that's quite a breaking thing | 09:57 | 
| geektoni | lisitsyn: you mean? | 09:58 | 
| geektoni | I'm sorry, but this SWIG craziness is starting to confuse me :D | 09:59 | 
| lisitsyn | you have to be brave! | 09:59 | 
| lisitsyn | a lot of great warriors have died in this battle | 09:59 | 
| geektoni | This is reassuring xD | 10:00 | 
| lisitsyn | well at least our problem is clear now | 10:03 | 
| lisitsyn | we need a way to let swig know about constructors | 10:03 | 
| lisitsyn | of T | 10:03 | 
| geektoni | what do you propose? :P | 10:07 | 
| lisitsyn | geektoni: no solution so far | 10:22 | 
| @wiking | lalal | 10:29 | 
| lisitsyn | wiking: it is a bit more tough :) | 10:48 | 
| @wiking | olinguyen, hi! around? | 12:28 | 
| -!- johklu [c1abba08@gateway/web/freenode/ip.193.171.186.8] has joined #shogun | 13:08 | |
| johklu | Hi, I successfully trained (and validated) an SVM based using a string kernel (CommWordStringKernel) and SVMLight. I feel like it must be possible somehow to extract the feature weights (ad features i.e. k-mers) from the trained classifier, but I have failed to find out how. | 13:13 | 
| johklu | I thought "set_store_model_features(TRUE)" might go in the right direction, but training after setting this resulted in an error, so this does not seem to be the right direction. | 13:14 | 
| johklu | Could you maybe give me a hint on where to finde information about extracting features and feature weights from CSVMLight objects? Is that at all possible? | 13:19 | 
| johklu | Is there maybe an additional resource of examples (I just found the example here http://www.shogun-toolbox.org/examples/latest/examples/binary_classifier/kernel_svm.html), which doesn't seem to bother about features/ feature weights. | 13:21 | 
| johklu | Thanks for your help - and also for putting together this pretty awseome toolkit! | 13:22 | 
| @wiking | johklu, what exactly you'd like to solve | 13:44 | 
| @wiking | ? | 13:46 | 
| -!- wittybull [7361b916@gateway/web/freenode/ip.115.97.185.22] has joined #shogun | 13:50 | |
| @wiking | johklu, oh ok | 13:52 | 
| @wiking | sorry | 13:52 | 
| @wiking | i haven't seen the first part of your question :))) | 13:52 | 
| @wiking | johklu, do you have the model serialized? | 13:52 | 
| -!- wittybull [7361b916@gateway/web/freenode/ip.115.97.185.22] has quit [Ping timeout: 260 seconds] | 13:55 | |
| lisitsyn | iglesiasg: geektoni has a tricky problem | 13:58 | 
| lisitsyn | have you heard? | 13:58 | 
| -!- TingMiao [uid229534@gateway/web/irccloud.com/x-bleqxrbjgtfzxvbg] has quit [Quit: Connection closed for inactivity] | 14:05 | |
| @iglesiasg | lisitsyn: hey | 14:10 | 
| @iglesiasg | geektoni lisitsyn: what is it? | 14:11 | 
| @iglesiasg | I will have a look and see if there's something in the irc logs | 14:11 | 
| lisitsyn | for any T | 14:11 | 
| lisitsyn | we have a constructor or a few ones | 14:11 | 
| lisitsyn | the Some<T> actually provided var-args constructor | 14:11 | 
| @iglesiasg | ok | 14:12 | 
| lisitsyn | but swig can't generate proper code for that because it doesn't know about real ctors of T | 14:12 | 
| @iglesiasg | oh | 14:12 | 
| lisitsyn | see the problem? | 14:14 | 
| lisitsyn | iglesiasg: we need to get swig to know about all possible ctors of T which should actually return Some<T> | 14:15 | 
| lisitsyn | :D | 14:15 | 
| @iglesiasg | yeah | 14:17 | 
| lisitsyn | geektoni: https://github.com/swig/swig/tree/master/Examples/python/smartptr | 14:22 | 
| lisitsyn | the same thing | 14:22 | 
| geektoni | lisitsyn: yeah, my .i file is the same | 14:23 | 
| lisitsyn | and they also have no args | 14:24 | 
| lisitsyn | because it is a bit different | 14:24 | 
| geektoni | but this is not what we are looking for, right? | 14:24 | 
| lisitsyn | yes | 14:24 | 
| geektoni | kk | 14:25 | 
| lisitsyn | geektoni: I think we're in kind of trouble with that | 14:25 | 
| lisitsyn | :) | 14:25 | 
| lisitsyn | geektoni: but speaking of your current PR is it holding you? | 14:25 | 
| geektoni | well, the PR has the some.i code to make the test pass. However, it is just a workaround. :P | 14:27 | 
| lisitsyn | which? | 14:27 | 
| geektoni | https://github.com/shogun-toolbox/shogun/pull/3840 | 14:27 | 
| lisitsyn | geektoni: what do you call a workaround? | 14:28 | 
| geektoni | https://github.com/shogun-toolbox/shogun/pull/3840/files#diff-eefd25cf55acdd8ec027ccba510ad917 | 14:28 | 
| geektoni | the some.i file | 14:28 | 
| geektoni | because it is not what we are aiming for | 14:29 | 
| lisitsyn | uhmm why? | 14:29 | 
| geektoni | it is just to expose Some with SWIG | 14:29 | 
| lisitsyn | kind of | 14:29 | 
| lisitsyn | isn't the only problem the construction of Somes? | 14:29 | 
| geektoni | yes, it is the only big problem | 14:30 | 
| geektoni | right now | 14:30 | 
| lisitsyn | ok cool let me think about it more | 14:30 | 
| geektoni | if you want to use a Some-wrapped object with, for instance, python | 14:30 | 
| geektoni | you need to do | 14:30 | 
| geektoni | a = ShogunObject(); b = SomeShogunObject(a); | 14:30 | 
| geektoni | that's what we don't want to do | 14:31 | 
| lisitsyn | for sure | 14:31 | 
| lisitsyn | but actually it is not a big issue | 14:31 | 
| @iglesiasg | what about making `Some<T> Some::some(Args&&..)` accessible from target languages in a specialized form? | 14:35 | 
| @iglesiasg | kernel = someGaussianKernel(some args) | 14:35 | 
| @iglesiasg | svm = someLinearSVM(some other args) | 14:36 | 
| geektoni | iglesiasg: the problem is SWIG doesn't support variadic templates | 14:37 | 
| @iglesiasg | damn it | 14:37 | 
| @iglesiasg | geektoni: is this a variadic template though? | 14:39 | 
| @iglesiasg | it is a class template that has a method with variadic arguments | 14:39 | 
| -!- geektoni [~geektoni@93-34-234-212.ip52.fastwebnet.it] has quit [Remote host closed the connection] | 14:40 | |
| -!- geektoni [~Mutter@93-34-234-212.ip52.fastwebnet.it] has joined #shogun | 14:41 | |
| geektoni | iglesiasg, lisitsyn: I'm sorry but I'll be half there from now on. | 14:42 | 
| @iglesiasg | sure, no problem | 14:43 | 
| @iglesiasg | we can continue later | 14:43 | 
| @iglesiasg | geektoni: did you read my reaction to the variadic templates? | 14:43 | 
| -!- geektoni_ [~Mutter@62.18.81.254] has joined #shogun | 14:43 | |
| geektoni_ | iglesiasg: btw, if you have a method with a template<> keyword above and variadic arguments SWIG won't be able to handle it | 14:44 | 
| geektoni_ | And you'll need to do the specialization directly with C++ | 14:45 | 
| -!- geektoni [~Mutter@93-34-234-212.ip52.fastwebnet.it] has quit [Ping timeout: 260 seconds] | 14:47 | |
| -!- geektoni_ [~Mutter@62.18.81.254] has quit [Quit: Mutter: www.mutterirc.com] | 14:50 | |
| -!- geektoni_ [~Mutter@62.18.81.254] has joined #shogun | 14:51 | |
| -!- mikeling [uid89706@gateway/web/irccloud.com/x-gfijddxvyivyyzyj] has joined #shogun | 14:52 | |
| -!- geektoni_ [~Mutter@62.18.81.254] has quit [Remote host closed the connection] | 14:53 | |
| johklu | wiking, sorry for my ignorance, but what di you mean with serialized? | 14:54 | 
| -!- geektoni_ [~Mutter@62.18.81.254] has joined #shogun | 14:55 | |
| -!- geektoni_ [~Mutter@62.18.81.254] has quit [Client Quit] | 14:56 | |
| @wiking | johklu, saved | 14:58 | 
| @wiking | johklu, every model in shogun can be saved | 14:58 | 
| @wiking | http://shogun.ml/api/latest/classshogun_1_1CSVM.html#a57adfb729db48725e1c9a30b52eae9a2 | 14:59 | 
| @wiking | for example | 14:59 | 
| @wiking | or this http://shogun.ml/api/latest/classshogun_1_1CSGObject.html#aa9787e341533c4970885ce6d3022a935 | 14:59 | 
| johklu | wiking, I see. No, I haven't done that! | 15:01 | 
| @wiking | so if you for example | 15:01 | 
| @wiking | CSerializableJsonFile | 15:02 | 
| @wiking | and use that for saving the svm | 15:02 | 
| @wiking | then you can see all the model parameters :) | 15:02 | 
| johklu | including the features (i.e. k-mers) and feature weights? | 15:03 | 
| johklu | i mean the weights that were found through training? | 15:03 | 
| @wiking | yeah | 15:04 | 
| @wiking | everything should be serialized that's in the object | 15:04 | 
| johklu | cool. I'm trying it right now. | 15:05 | 
| johklu | ok, I did something wrong and it killed my R session (I'm doing all of this in R) | 15:07 | 
| johklu | before I kill it again. Does this look right?: svm$save() | 15:10 | 
| johklu | I'm not sure what the svm_file parameter should be | 15:10 | 
| johklu | wiking, I now used a path "~/scratch/test_shogun.svm" as only parameter, and my session was again terminated.... | 15:16 | 
| @wiking | use rather save_serializable | 15:17 | 
| @wiking | but first yo need to create a SerializableJsonFile file | 15:18 | 
| @wiking | x <- SerializableJsonFile("path") | 15:19 | 
| @wiking | svm$save_serializable(x) | 15:19 | 
| -!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has joined #shogun | 15:20 | |
| -!- mode/#shogun [+o HeikoS] by ChanServ | 15:20 | |
| johklu | ahh, that makes sense, thanks! | 15:20 | 
| @sukey | Pull Request #3826 "Remove duplicate code in LDA/FisherLDA and port the solvers to use linalg (WIP)" synchronized by micmn - https://github.com/shogun-toolbox/shogun/pull/3826 | 15:24 | 
| micmn | mmm pushed the wrong one | 15:25 | 
| @wiking | :P | 15:25 | 
| johklu | getting error while making the file: | 15:27 | 
| johklu | file <- SerializableJsonFile("~/scratch/test_shogun.svm") | 15:27 | 
| johklu | [1;31m[ERROR][0m In file /scratch/adm_informatics/rootbuild/shogun/shogun-shogun_6.0.0/src/shogun/io/SerializableJsonFile.cpp line 105: Could not open file `~/scratch/test_shogun.svm' for reading! | 15:27 | 
| @wiking | johklu, my fault | 15:28 | 
| @wiking | file <- SerializableJsonFile("~/scratch/test_shogun.svm", 'w') | 15:28 | 
| johklu | ok, that worked. Thanks. But then error again: | 15:30 | 
| johklu | > file <- SerializableJsonFile("~/scratch/shogun.svm",'w') > svm$save_serializable(file) json_object_to_file: error opening file ~/scratch/shogun.svm: No such file or directory [1;34m[WARN][0m In file /scratch/adm_informatics/rootbuild/shogun/shogun-shogun_6.0.0/src/shogun/io/SerializableJsonFile.cpp line 135: Could not close file `~/scratch/shogun.svm' for writing! [1] TRUE | 15:30 | 
| @wiking | did it write anything in the given file? | 15:33 | 
| johklu | no, nothing | 15:34 | 
| johklu | just for me to understand: | 15:34 | 
| johklu | SerializableJsonFile is not supposed to write anything, or? | 15:35 | 
| johklu | the file should be written by the save_serializable command, right? | 15:35 | 
| @wiking | yes | 15:35 | 
| @wiking | but maybe you dont have | 15:35 | 
| @wiking | support | 15:35 | 
| @wiking | for json output format so just try | 15:36 | 
| @wiking | file <- SerializableAsciiFile("path", 'w') | 15:36 | 
| johklu | ok | 15:36 | 
| johklu | wiking, I think, now it worked | 15:46 | 
| johklu | with ascii, as well as json | 15:46 | 
| johklu | the problem was the "~" in my path | 15:47 | 
| @wiking | oh i see | 15:47 | 
| johklu | ascii and json semm to contain somewhat different info | 15:48 | 
| johklu | in the json the last row seems to be encrypted or something | 15:50 | 
| johklu | at least I can't read it | 15:50 | 
| johklu | but doesn't matter. | 15:50 | 
| johklu | I'll go with the ascii | 15:50 | 
| johklu | wiking, you've helped me a lot already, thanks! But, what is now the best way to go on? Do I read the ascii back into R | 15:51 | 
| johklu | or can I now directly access it through my svm object? | 15:52 | 
| johklu | And: the features seem to be encoded as numbers... | 15:53 | 
| johklu | is there a way to convert them back to the original k-mers | 15:54 | 
| @wiking | mmm | 15:55 | 
| lisitsyn | wiking: we need coreml bridge! | 15:56 | 
| @wiking | i know... | 15:56 | 
| @wiking | what can i do | 15:56 | 
| @wiking | gimme time | 15:56 | 
| lisitsyn | lets discuss at some point | 15:56 | 
| @wiking | lisitsyn, ok i mean i checked into it | 15:56 | 
| @wiking | it's super easy | 15:56 | 
| lisitsyn | oh I didn't yet | 15:56 | 
| lisitsyn | kool | 15:57 | 
| @wiking | i mean the interface is very very rigid | 15:57 | 
| @wiking | so it's supereasy to implement | 15:57 | 
| @wiking | it's just a special serialization format | 15:57 | 
| @wiking | of some of the classes | 15:57 | 
| @wiking | as what they did actually | 15:58 | 
| lisitsyn | lets see if android comes with something similar | 15:58 | 
| @wiking | is define what are the parameters of svm + rbf for example | 15:58 | 
| @wiking | and that's all | 15:58 | 
| @wiking | you have to write those params in the protobuf format | 15:58 | 
| @wiking | and that's all | 15:58 | 
| @wiking | johklu, lemme think about it | 16:02 | 
| @wiking | and get back to u | 16:02 | 
| lisitsyn | wiking: could we become an 'apply' part for non-ios devices? | 16:03 | 
| @wiking | que? | 16:03 | 
| @wiking | micmn, do u wanna cherry pick it somewhere else or if it passes shall i just merge the whole pr? | 16:04 | 
| @wiking | lisitsyn, what do u mean non-ios dev? | 16:04 | 
| @wiking | no comprende | 16:05 | 
| @wiking | explain | 16:05 | 
| @HeikoS | wiking: jo | 16:07 | 
| @HeikoS | whats the state with the "some" and swig? | 16:07 | 
| @wiking | lisitsyn, ^ | 16:07 | 
| @wiking | i'm tired | 16:07 | 
| @wiking | had a long day | 16:07 | 
| @wiking | :) | 16:07 | 
| johklu | wiking, ok - thanks. afk but back soon | 16:07 | 
| @wiking | johklu, i'm off for today | 16:08 | 
| johklu | also fine -thanks for your help | 16:08 | 
| micmn | wiking: no don't merge | 16:08 | 
| @wiking | micmn, k | 16:08 | 
| johklu | wiking, should I come back tomorrow? | 16:09 | 
| @sukey | Issue #3841 "how can i fusion of two features by two different kernel in shogun??" closed by karlnapf - https://github.com/shogun-toolbox/shogun/issues/3841 | 16:10 | 
| @wiking | johklu, i'm uTC+8 | 16:10 | 
| johklu | ok, makes sense that you're tired then :) | 16:12 | 
| johklu | I'll come earlier next time | 16:13 | 
| @sukey | Pull Request #3826 "Remove duplicate code in LDA/FisherLDA and port the solvers to use linalg (WIP)" synchronized by micmn - https://github.com/shogun-toolbox/shogun/pull/3826 | 16:19 | 
| @sukey | Pull Request #3842 " Port KernelPCA to use linalg and refactor unit test" opened by micmn - https://github.com/shogun-toolbox/shogun/pull/3842 | 16:20 | 
| @sukey | Pull Request #3843 "Add linalg methods needed by FisherLDA and KernelPCA (CPU-only)" opened by micmn - https://github.com/shogun-toolbox/shogun/pull/3843 | 16:21 | 
| -!- TingMiao [uid229534@gateway/web/irccloud.com/x-aexwfarcpagulqsp] has joined #shogun | 16:29 | |
| lisitsyn | wiking: back | 17:07 | 
| lisitsyn | so I mean apple has the stuff to apply models on ios devices | 17:07 | 
| lisitsyn | we could provide to serve on other ones | 17:08 | 
| -!- johklu [c1abba08@gateway/web/freenode/ip.193.171.186.8] has quit [Quit: Page closed] | 17:32 | |
| -!- OXPHOX [92bd305b@gateway/web/freenode/ip.146.189.48.91] has joined #shogun | 18:13 | |
| -!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has quit [Ping timeout: 246 seconds] | 19:17 | |
| OXPHOX | anyone knows what's going on with appveyor? | 19:19 | 
| mikeling | OXPHOX:hey | 19:35 | 
| mikeling | still there> | 19:35 | 
| mikeling | ? | 19:35 | 
| -!- oxphos [92bd15c8@gateway/web/freenode/ip.146.189.21.200] has joined #shogun | 19:54 | |
| oxphos | mikeling | 19:55 | 
| mikeling | ok | 19:55 | 
| mikeling | oxphos: thanks | 19:55 | 
| -!- geektoni [~geektoni@93-34-234-212.ip52.fastwebnet.it] has joined #shogun | 19:55 | |
| -!- oxphos [92bd15c8@gateway/web/freenode/ip.146.189.21.200] has quit [Ping timeout: 260 seconds] | 20:32 | |
| olinguyen | wiking: I'm here now! | 20:54 | 
| mikeling | olinguyen ping | 21:58 | 
| mikeling | Still there? | 21:58 | 
| olinguyen | yep! | 21:58 | 
| mikeling | Ok | 21:59 | 
| mikeling | Wait a second | 21:59 | 
| mikeling | I write a gist to you | 21:59 | 
| olinguyen | Sure | 21:59 | 
| mikeling | olinguyen: hey, received my message? :) | 22:05 | 
| olinguyen | yep reading! | 22:05 | 
| mikeling | thank you | 22:05 | 
| -!- geektoni [~geektoni@93-34-234-212.ip52.fastwebnet.it] has quit [Quit: Leaving.] | 22:09 | |
| -!- geektoni [~geektoni@93-34-234-212.ip52.fastwebnet.it] has joined #shogun | 22:21 | |
| -!- geektoni [~geektoni@93-34-234-212.ip52.fastwebnet.it] has quit [Remote host closed the connection] | 23:28 | |
| --- Log closed Wed Jun 14 00:00:12 2017 | ||
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!