--- 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!