--- Log opened Mon Jan 28 00:00:46 2019 | ||
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 01:15 | |
-!- mode/#shogun [+o wiking] by ChanServ | 01:15 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 250 seconds] | 01:20 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 03:36 | |
-!- mode/#shogun [+o wiking] by ChanServ | 03:36 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 04:16 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 04:19 | |
-!- mode/#shogun [+o wiking] by ChanServ | 04:19 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 240 seconds] | 04:23 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 04:47 | |
-!- mode/#shogun [+o wiking] by ChanServ | 04:47 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 268 seconds] | 04:52 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 05:55 | |
-!- mode/#shogun [+o wiking] by ChanServ | 05:55 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 240 seconds] | 05:59 | |
-!- braceletboy [67157d53@gateway/web/freenode/ip.103.21.125.83] has joined #shogun | 06:16 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 06:57 | |
-!- mode/#shogun [+o wiking] by ChanServ | 06:57 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 250 seconds] | 07:01 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 07:50 | |
-!- mode/#shogun [+o wiking] by ChanServ | 07:50 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 08:03 | |
-!- braceletboy [67157d53@gateway/web/freenode/ip.103.21.125.83] has quit [Quit: Page closed] | 08:23 | |
-!- wiking_ [~wiking@c-185-45-237-122.customer.ggaweb.ch] has joined #shogun | 08:34 | |
-!- wiking_ [~wiking@c-185-45-237-122.customer.ggaweb.ch] has quit [Remote host closed the connection] | 08:46 | |
-shogun-buildbot:#shogun- Build nightly_default #201 is complete: Success [build successful] - http://buildbot.shogun-toolbox.org:8080/#builders/17/builds/201 | 08:55 | |
-!- wiking_ [~wiking@c-185-45-237-122.customer.ggaweb.ch] has joined #shogun | 09:21 | |
-!- wiking_ [~wiking@c-185-45-237-122.customer.ggaweb.ch] has quit [Ping timeout: 246 seconds] | 09:25 | |
-!- wiking_ [~wiking@c-185-45-237-122.customer.ggaweb.ch] has joined #shogun | 09:53 | |
-!- wiking_ [~wiking@c-185-45-237-122.customer.ggaweb.ch] has quit [Ping timeout: 250 seconds] | 09:57 | |
-!- gf712 [c13cdcfd@gateway/web/freenode/ip.193.60.220.253] has joined #shogun | 10:31 | |
-!- wiking_ [~wiking@bmi-airport-1.inf.ethz.ch] has joined #shogun | 10:37 | |
-!- wiking_ is now known as wiking | 10:43 | |
-!- wiking [~wiking@bmi-airport-1.inf.ethz.ch] has quit [Changing host] | 10:43 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 10:43 | |
-!- mode/#shogun [+o wiking] by ChanServ | 10:43 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 10:55 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 10:58 | |
-!- mode/#shogun [+o wiking] by ChanServ | 10:58 | |
@wiking | lisitsyn: yoyoo i have a weird q for u | 11:02 |
---|---|---|
lisitsyn | wiking: hey | 11:03 |
@wiking | so i'm just finishing up this coreml | 11:03 |
@wiking | seems to be working but we woudl like to have unit tests | 11:03 |
lisitsyn | oh that's cool | 11:03 |
lisitsyn | ahem | 11:03 |
@wiking | so | 11:03 |
@wiking | we could do some crazy shit | 11:03 |
@wiking | buuuut | 11:03 |
@wiking | look at this | 11:03 |
@wiking | https://github.com/apple/coremltools/tree/master/mlmodel/src | 11:03 |
@wiking | this is basically a validator of coreml format | 11:04 |
@wiking | say for example https://github.com/apple/coremltools/blob/master/mlmodel/src/SVMValidator.cpp | 11:04 |
lisitsyn | aha | 11:04 |
@wiking | so the question is | 11:04 |
@wiking | would u just copy paste this into our sourcebase? | 11:04 |
@wiking | or should we take the whole repo as submodule (really woudl liek to do it) | 11:05 |
lisitsyn | idk | 11:05 |
lisitsyn | submodule is more rigid indeed | 11:05 |
@wiking | yeah but it's an extra asdf | 11:06 |
@wiking | :) | 11:06 |
@wiking | i really started to dislike submodules | 11:06 |
@wiking | but i mean if we do submodules then we get the coreml proto specs as well | 11:06 |
@wiking | ;) | 11:06 |
@wiking | (and of course many other things that we actually dont need, like the python utility() | 11:07 |
@wiking | but yeah i would like to rewrite this validator | 11:08 |
@wiking | (dont see the point, but on the other hand to have good tests we would need to do something like this, or have fixtures of protobuf files in the repo, which is again shity) | 11:08 |
@wiking | so i guess submodule? :) | 11:10 |
-!- besser82 [~besser82@fedora/besser82] has quit [Quit: Freedom, Friends, Features, First [fedoraproject.org]] | 11:15 | |
-!- besser82 [~besser82@fedora/besser82] has joined #shogun | 11:17 | |
-!- mode/#shogun [+o besser82] by ChanServ | 11:17 | |
@wiking | anybody has a windows by his hand now? :) | 12:16 |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 12:29 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 12:30 | |
-!- mode/#shogun [+o wiking] by ChanServ | 12:30 | |
@wiking | gf712: here? | 12:30 |
@wiking | lisitsyn: one more question here... say now we have the factory functions for everything | 12:45 |
@wiking | should we init the objects with some sane values when we call the simple ctor? | 12:45 |
lisitsyn | wiking: let me think | 12:45 |
lisitsyn | well | 12:45 |
@wiking | lisitsyn: so say you create a PolyKernel | 12:45 |
lisitsyn | yeah I think it is reasonable | 12:45 |
@wiking | now it's really shitty | 12:45 |
lisitsyn | yeah | 12:45 |
@wiking | because the degree is 0 | 12:46 |
lisitsyn | it should be like some good default | 12:46 |
lisitsyn | oh no | 12:46 |
@wiking | which is like bs | 12:46 |
lisitsyn | should not be like that for sure | 12:46 |
@wiking | and many other places every param is set to 0 | 12:46 |
@wiking | which i believe is wrong | 12:47 |
@wiking | ok so we are on the same page | 12:47 |
@wiking | pff this raises a lot of questions | 12:49 |
@wiking | like in case of RBF and polykernel | 12:49 |
@wiking | the gamma good default is 1.0/n_features | 12:50 |
@wiking | which is only available in certain cases | 12:50 |
@wiking | :)))) | 12:50 |
@wiking | and if you init it with lhs,rhs | 12:50 |
@wiking | so if we use factory then wtf | 12:52 |
@wiking | :) | 12:52 |
gf712 | wiking yup I'm here | 12:53 |
@wiking | and wtf is the difference between get_num_features vs get_dim_feature_space | 12:55 |
@wiking | ? | 12:55 |
@wiking | :) | 12:55 |
@wiking | obtain the dimensionality of the feature space | 12:56 |
@wiking | (not mix this up with the dimensionality of the input space, usually obtained via get_num_features()) | 12:56 |
@wiking | anybody can explain ?:) | 12:56 |
@wiking | it dense features its simply template<class ST> int32_t CDenseFeatures<ST>::get_dim_feature_space() const { return num_features; } | 12:57 |
@wiking | :D | 12:57 |
@wiking | just ase template<class ST> int32_t CDenseFeatures<ST>::get_num_features() const { return num_features; } | 12:57 |
@wiking | :>>> | 12:57 |
@wiking | so wtf | 12:58 |
gf712 | I guess it's just redundant code? | 12:59 |
@wiking | gf712: dunno | 13:01 |
@wiking | gf712: i wanted to ask something else | 13:01 |
@wiking | but i realised it's not meant to be used like that | 13:01 |
@wiking | :) | 13:01 |
@wiking | (gtest and typed tests) | 13:01 |
@wiking | maaan | 13:05 |
@wiking | anybody has any clue | 13:06 |
@wiking | whether this is going to be inlined | 13:06 |
@wiking | https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/kernel/GaussianKernel.cpp#L138 | 13:06 |
@wiking | https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/kernel/GaussianKernel.cpp#L92-L95 | 13:06 |
@wiking | or that's gonna be called for every distance(() | 13:06 |
@wiking | ? | 13:06 |
@wiking | :) | 13:06 |
@wiking | lemme check on donbot | 13:07 |
gf712 | I am pretty sure that will be inlined by most compilers | 13:09 |
gf712 | you can always explicitly inline it and it might help, but I doubt it is necessary | 13:10 |
@wiking | gf712: compiling :) | 13:14 |
gf712 | waking how is the coreml stuff going? | 13:18 |
gf712 | wiking | 13:18 |
@wiking | gf712: trying to define sane unit tests | 13:20 |
@wiking | :) | 13:20 |
@wiking | gf712: | 13:20 |
@wiking | bad news | 13:21 |
@wiking | https://pastebin.com/1LvR1338 | 13:21 |
@wiking | with release | 13:21 |
@wiking | so it's O3 | 13:21 |
@wiking | top is with get_width() | 13:21 |
gf712 | that's so weird... | 13:22 |
gf712 | what happens if you add inline? Would it inline then? | 13:22 |
@wiking | let see | 13:22 |
@wiking | i should move then to the header of the implementation though | 13:23 |
gf712 | yup | 13:23 |
gf712 | otherwise you end up with weird linker errros | 13:23 |
gf712 | errors | 13:23 |
@wiking | mmmm | 13:24 |
@wiking | it's virtrual | 13:24 |
@wiking | that's why | 13:24 |
@wiking | can you actually inline a virtual method? :) | 13:24 |
@wiking | but it doesn't matter | 13:24 |
gf712 | ah maybe not | 13:24 |
@wiking | yeah you get this | 13:26 |
@wiking | https://pastebin.com/K7wz7jAE | 13:26 |
@wiking | it's less instructions than before | 13:27 |
@wiking | but certainly more | 13:27 |
@wiking | than the most 'optimal' | 13:27 |
@wiking | the most funniest | 13:29 |
@wiking | that actually get_width is not being redefined in any of the subclass | 13:29 |
@wiking | so basically if i drop the virtual | 13:30 |
@wiking | and put forced inline | 13:30 |
@wiking | it's good | 13:30 |
@wiking | :)))) | 13:30 |
@wiking | wtf :> | 13:30 |
@wiking | ok i guess another patch | 13:30 |
gf712 | haha | 13:30 |
@wiking | the dust | 13:30 |
@wiking | :> | 13:30 |
@wiking | lemme pr-it and see what Heiko says since they did some changes here | 13:31 |
gf712 | hmmm, weird that it was virtua | 13:31 |
gf712 | someone must have thought it would have been needed at some...? | 13:31 |
gf712 | point | 13:31 |
gf712 | wiking btw I have been writing this whole set of structs to store types, basically a compile time list to store types | 13:32 |
gf712 | the idea would be to register all types in a struct at some point | 13:32 |
@wiking | yes | 13:32 |
gf712 | and then access them in tests, from enums, etc... | 13:33 |
gf712 | compile time stuff would be good to catch some weird behaviours at runtime too | 13:33 |
gf712 | if msvc plays along | 13:34 |
@wiking | hehe that'd be great | 13:39 |
@wiking | mmmm /me wonders what has happened with ccache :S | 14:16 |
@wiking | lisitsyn: shouldn't m->get<CKernel>("kernel") work in c++? | 14:22 |
lisitsyn | wiking: should! | 14:22 |
lisitsyn | wiking: erorr? | 14:22 |
@wiking | /Users/wiking/shogun/src/shogun/lib/any.h:604:21: error: allocating an object of abstract class type 'shogun::CKernel' | 14:23 |
@wiking | *(storage) = new T(value_of(typed_pointer<T>(v))); | 14:23 |
@wiking | lisitsyn: do you need to whole stack of error? | 14:27 |
lisitsyn | wiking: nope | 14:27 |
@wiking | wait wait | 14:27 |
@wiking | i know i think it's my side | 14:27 |
lisitsyn | I guess you get a pointer | 14:27 |
@wiking | ah nio | 14:27 |
lisitsyn | not the object | 14:27 |
lisitsyn | you should, I mean | 14:28 |
@wiking | <CKernel*> | 14:28 |
@wiking | ? | 14:28 |
lisitsyn | yes | 14:28 |
lisitsyn | shoulda work | 14:28 |
@wiking | yep | 14:29 |
@wiking | did the trick | 14:29 |
@wiking | anybody has ideas how to generate test quickly with gtest using these containers: https://github.com/shogun-toolbox/shogun/blob/feature/coreml/src/interfaces/coreml/SVMConverter.h#L14 | 14:30 |
@wiking | ? | 14:30 |
@wiking | so like a templated test where the template param is a string | 14:30 |
@wiking | and the string is coming from a for(auto m: kShogunSVMs) :) | 14:31 |
@wiking | or i shall just dream on | 14:31 |
@wiking | ? | 14:31 |
@wiking | :) | 14:31 |
@wiking | the thing is that i'd like to use machine(T) to create the obj and then do the same thing, train and export and then validate | 14:33 |
@wiking | :) | 14:33 |
@wiking | i know i could create a list of SVM types but that's shitty because then basically there's an easy way to actually have a missmatch between the supported machines (see kShogunSVMs) and the tests | 14:34 |
@wiking | of course instead of this kShogunSVMs the best would be just simply do a dispatching in the converter, i.e. try to case the machine to CSVM and if that works then apply the right converter... | 14:35 |
gf712 | wiking can you not add the types instead of the strings? | 14:37 |
gf712 | I don't think there is any way from string to type unless you create a map | 14:37 |
gf712 | why don't you use something similar to what I wrote in type_case.h? | 14:38 |
gf712 | can think of a way to generalise it more | 14:38 |
@wiking | gf712: the problem with the types is that how do you do the lookup for the right converter ?:) | 14:39 |
@wiking | or do a huge dispatching? :) | 14:39 |
@wiking | where u try to cast it until it matches? | 14:39 |
@wiking | but yeah maybe the parent class would be better | 14:40 |
gf712 | why is a huge dispatching? | 14:40 |
gf712 | it would maybe affect compile time slightly | 14:40 |
gf712 | but there is no runtime added | 14:40 |
gf712 | compilers are smarter than we are, just give them work :D | 14:40 |
@wiking | yeah but this is checked runtime | 14:41 |
@wiking | i mean i'm getting an CMachine | 14:41 |
gf712 | hmmm I will have a look | 14:41 |
@wiking | and then i need to see what is the actual type of that CMachine | 14:41 |
@wiking | either the actual real type like that unordered_set's values with get_name (or dynamic casting) | 14:41 |
@wiking | or basically i could do a parent class | 14:42 |
@wiking | but still then i need the dynamic casting dispatcher | 14:42 |
@wiking | right? | 14:42 |
gf712 | so can you not use something like I wrote where you convert the enum to a type and use that for casting? | 14:42 |
gf712 | then you don't use a map or set | 14:43 |
@wiking | what enum? :) | 14:43 |
@wiking | i mean currently we have an enum for the machines | 14:43 |
@wiking | but that'll have to go sooner or later | 14:43 |
gf712 | can't you get the enum of the machine | 14:43 |
gf712 | ah ok | 14:43 |
@wiking | so i either do a dynamic casting try-error | 14:44 |
@wiking | or have this map<string, function> | 14:44 |
@wiking | where string = get_name() | 14:44 |
@wiking | of course another way to do this | 14:44 |
@wiking | is to have some sort of a mixin for CoreML | 14:45 |
@wiking | which actually maybe would be the best | 14:45 |
@wiking | like with a visitor function | 14:45 |
gf712 | maybe, long term that is probably better | 14:45 |
@wiking | because say you wanna add a new machine | 14:45 |
@wiking | you should take care of how that machien is mapped to coreml | 14:46 |
@wiking | if there's a mapping | 14:46 |
@wiking | lisitsyn: ^ thoughts | 14:46 |
lisitsyn | wiking: I can't see that right now but yeah you probably should register it somehow | 14:47 |
@wiking | lisitsyn: i mean maybe if we start taking the frameworking seriously | 14:48 |
@wiking | we would like to have model implementors | 14:48 |
@wiking | to provide the coreml mapping | 14:48 |
@wiking | instead of doing and external library | 14:48 |
@wiking | or? | 14:48 |
@wiking | or like an external process that 'knows everything' | 14:48 |
lisitsyn | wiking: well base classes know how to coreml itself | 14:50 |
lisitsyn | so if you're implementing yet another svm (haha in 2019) | 14:50 |
@wiking | :> | 14:50 |
@wiking | i'm wondering whether base classes can always cover all the cases | 14:51 |
@wiking | lisitsyn: i mean in case of kernels it's not possible | 14:51 |
@wiking | if we take that CKernel is the only base interface | 14:51 |
lisitsyn | wiking: not always but most of them | 14:51 |
@wiking | of course this raises another question | 14:51 |
@wiking | if we do the base class story | 14:51 |
@wiking | then that means that we require coreml | 14:52 |
@wiking | to be available/compiled in the base interface | 14:52 |
@wiking | :) | 14:52 |
@wiking | do we want that? | 14:52 |
@wiking | that means protobuf dependency etc | 14:52 |
@wiking | :) | 14:52 |
lisitsyn | wiking: ah yeah that's true | 15:07 |
@wiking | lisitsyn: so ? :) | 15:17 |
lisitsyn | wiking: I believe it would be best to have it on a side so it is not that intertwined | 15:18 |
lisitsyn | but I don't know details | 15:18 |
@wiking | ok so then we just simply do what i've started | 15:18 |
@wiking | we have a big blob | 15:18 |
@wiking | that knows what and how something can be exported | 15:19 |
@wiking | to coreml | 15:19 |
lisitsyn | yeah | 15:19 |
lisitsyn | probably it is best | 15:20 |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 15:29 | |
-!- besser82 [~besser82@fedora/besser82] has quit [Read error: Connection reset by peer] | 15:37 | |
-!- besser82 [~besser82@fedora/besser82] has joined #shogun | 15:37 | |
-!- mode/#shogun [+o besser82] by ChanServ | 15:37 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 15:56 | |
-!- mode/#shogun [+o wiking] by ChanServ | 15:56 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 246 seconds] | 16:00 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 16:26 | |
-!- mode/#shogun [+o wiking] by ChanServ | 16:26 | |
gf712 | wiking: btw what I meant earlier would be to use get_kernel_type() for the dynamic casting | 16:41 |
@wiking | that should go as well | 16:42 |
@wiking | :) | 16:42 |
@wiking | those enums will go one day | 16:42 |
gf712 | ah ok! | 16:49 |
gf712 | well if you need a compile time list of types let me know | 16:49 |
gf712 | I wrote a bunch of methods to manipulate type lists at compile time, i.e. append and pop, and I am dying to find a way to use them :D | 16:50 |
-!- gf712 [c13cdcfd@gateway/web/freenode/ip.193.60.220.253] has quit [Ping timeout: 256 seconds] | 17:08 | |
-!- gf712 [c13cdcfd@gateway/web/freenode/ip.193.60.220.253] has joined #shogun | 17:25 | |
-!- wiking_ [~wiking@c-185-45-237-122.customer.ggaweb.ch] has joined #shogun | 17:37 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Read error: Connection reset by peer] | 17:37 | |
-!- gf712 [c13cdcfd@gateway/web/freenode/ip.193.60.220.253] has quit [Ping timeout: 256 seconds] | 18:03 | |
-!- shubham808 [~atom@14.139.240.247] has joined #shogun | 18:14 | |
-!- shubham808 [~atom@14.139.240.247] has quit [Ping timeout: 250 seconds] | 18:30 | |
-!- wiking_ [~wiking@c-185-45-237-122.customer.ggaweb.ch] has quit [Remote host closed the connection] | 19:37 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 19:38 | |
-!- mode/#shogun [+o wiking] by ChanServ | 19:38 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 240 seconds] | 19:42 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 20:15 | |
-!- mode/#shogun [+o wiking] by ChanServ | 20:15 | |
-!- Lefteris [56a35883@gateway/web/freenode/ip.86.163.88.131] has joined #shogun | 20:35 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 21:48 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 21:49 | |
-!- mode/#shogun [+o wiking] by ChanServ | 21:49 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 240 seconds] | 21:56 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 22:19 | |
-!- mode/#shogun [+o wiking] by ChanServ | 22:19 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 240 seconds] | 22:23 | |
-!- Lefteris [56a35883@gateway/web/freenode/ip.86.163.88.131] has quit [Quit: Page closed] | 22:43 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 22:43 | |
-!- mode/#shogun [+o wiking] by ChanServ | 22:43 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 23:14 | |
-!- wiking [~wiking@c-185-45-237-122.customer.ggaweb.ch] has joined #shogun | 23:17 | |
-!- wiking [~wiking@c-185-45-237-122.customer.ggaweb.ch] has quit [Changing host] | 23:17 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 23:17 | |
-!- mode/#shogun [+o wiking] by ChanServ | 23:17 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 23:17 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 23:23 | |
-!- mode/#shogun [+o wiking] by ChanServ | 23:23 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 23:29 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 23:37 | |
-!- mode/#shogun [+o wiking] by ChanServ | 23:37 | |
--- Log closed Tue Jan 29 00:00:48 2019 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!