IRC logs of #shogun for Monday, 2019-01-28

--- Log opened Mon Jan 28 00:00:46 2019
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun01:15
-!- mode/#shogun [+o wiking] by ChanServ01:15
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 250 seconds]01:20
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun03:36
-!- mode/#shogun [+o wiking] by ChanServ03:36
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection]04:16
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun04:19
-!- mode/#shogun [+o wiking] by ChanServ04:19
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 240 seconds]04:23
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun04:47
-!- mode/#shogun [+o wiking] by ChanServ04:47
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 268 seconds]04:52
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun05:55
-!- mode/#shogun [+o wiking] by ChanServ05: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 #shogun06:16
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun06:57
-!- mode/#shogun [+o wiking] by ChanServ06:57
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 250 seconds]07:01
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun07:50
-!- mode/#shogun [+o wiking] by ChanServ07: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 #shogun08: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/20108:55
-!- wiking_ [~wiking@c-185-45-237-122.customer.ggaweb.ch] has joined #shogun09: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 #shogun09: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 #shogun10:31
-!- wiking_ [~wiking@bmi-airport-1.inf.ethz.ch] has joined #shogun10:37
-!- wiking_ is now known as wiking10:43
-!- wiking [~wiking@bmi-airport-1.inf.ethz.ch] has quit [Changing host]10:43
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun10:43
-!- mode/#shogun [+o wiking] by ChanServ10:43
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection]10:55
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun10:58
-!- mode/#shogun [+o wiking] by ChanServ10:58
@wikinglisitsyn: yoyoo i have a weird q for u11:02
lisitsynwiking: hey11:03
@wikingso i'm just finishing up this coreml11:03
@wikingseems to be working but we woudl like to have unit tests11:03
lisitsynoh that's cool11:03
lisitsynahem11:03
@wikingso11:03
@wikingwe could do some crazy shit11:03
@wikingbuuuut11:03
@wikinglook at this11:03
@wikinghttps://github.com/apple/coremltools/tree/master/mlmodel/src11:03
@wikingthis is basically a validator of coreml format11:04
@wikingsay for example https://github.com/apple/coremltools/blob/master/mlmodel/src/SVMValidator.cpp11:04
lisitsynaha11:04
@wikingso the question is11:04
@wikingwould u just copy paste this into our sourcebase?11:04
@wikingor should we take the whole repo as submodule (really woudl liek to do it)11:05
lisitsynidk11:05
lisitsynsubmodule is more rigid indeed11:05
@wikingyeah but it's an extra asdf11:06
@wiking:)11:06
@wikingi really started to dislike submodules11:06
@wikingbut i mean if we do submodules then we get the coreml proto specs as well11:06
@wiking;)11:06
@wiking(and of course many other things that we actually dont need, like the python utility()11:07
@wikingbut yeah i would like to rewrite this validator11: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
@wikingso 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 #shogun11:17
-!- mode/#shogun [+o besser82] by ChanServ11:17
@wikinganybody 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 #shogun12:30
-!- mode/#shogun [+o wiking] by ChanServ12:30
@wikinggf712: here?12:30
@wikinglisitsyn: one more question here... say now we have the factory functions for everything12:45
@wikingshould we init the objects with some sane values when we call the simple ctor?12:45
lisitsynwiking: let me think12:45
lisitsynwell12:45
@wikinglisitsyn: so say you create a PolyKernel12:45
lisitsynyeah I think it is reasonable12:45
@wikingnow it's really shitty12:45
lisitsynyeah12:45
@wikingbecause the degree is 012:46
lisitsynit should be like some good default12:46
lisitsynoh no12:46
@wikingwhich is like bs12:46
lisitsynshould not be like that for sure12:46
@wikingand many other places every param is set to 012:46
@wikingwhich i believe is wrong12:47
@wikingok so we are on the same page12:47
@wikingpff this raises a lot of questions12:49
@wikinglike in case of RBF and polykernel12:49
@wikingthe gamma good default is 1.0/n_features12:50
@wikingwhich is only available in certain cases12:50
@wiking:))))12:50
@wikingand if you init it with lhs,rhs12:50
@wikingso if we use factory then wtf12:52
@wiking:)12:52
gf712wiking yup I'm here12:53
@wikingand wtf is the difference between get_num_features vs get_dim_feature_space12:55
@wiking?12:55
@wiking:)12:55
@wikingobtain the dimensionality of the feature space12:56
@wiking(not mix this up with the dimensionality of the input space, usually obtained via get_num_features())12:56
@wikinganybody can explain ?:)12:56
@wikingit dense features its simply template<class ST> int32_t CDenseFeatures<ST>::get_dim_feature_space() const { return num_features; }12:57
@wiking:D12:57
@wikingjust ase template<class ST> int32_t CDenseFeatures<ST>::get_num_features() const { return num_features; }12:57
@wiking:>>>12:57
@wikingso wtf12:58
gf712I guess it's just redundant code?12:59
@wikinggf712: dunno13:01
@wikinggf712: i wanted to ask something else13:01
@wikingbut i realised it's not meant to be used like that13:01
@wiking:)13:01
@wiking(gtest and typed tests)13:01
@wikingmaaan13:05
@wikinganybody has any clue13:06
@wikingwhether this is going to be inlined13:06
@wikinghttps://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/kernel/GaussianKernel.cpp#L13813:06
@wikinghttps://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/kernel/GaussianKernel.cpp#L92-L9513:06
@wikingor that's gonna be called for every distance(()13:06
@wiking?13:06
@wiking:)13:06
@wikinglemme check on donbot13:07
gf712I am pretty sure that will be inlined by most compilers13:09
gf712you can always explicitly inline it and it might help, but I doubt it is necessary13:10
@wikinggf712: compiling :)13:14
gf712waking how is the coreml stuff going?13:18
gf712wiking13:18
@wikinggf712: trying to define sane unit tests13:20
@wiking:)13:20
@wikinggf712:13:20
@wikingbad news13:21
@wikinghttps://pastebin.com/1LvR133813:21
@wikingwith release13:21
@wikingso it's O313:21
@wikingtop is with get_width()13:21
gf712that's so weird...13:22
gf712what happens if you add inline? Would it inline then?13:22
@wikinglet see13:22
@wikingi should move then to the header of the implementation though13:23
gf712yup13:23
gf712otherwise you end up with weird linker errros13:23
gf712errors13:23
@wikingmmmm13:24
@wikingit's virtrual13:24
@wikingthat's why13:24
@wikingcan you actually inline a virtual method? :)13:24
@wikingbut it doesn't matter13:24
gf712ah maybe not13:24
@wikingyeah you get this13:26
@wikinghttps://pastebin.com/K7wz7jAE13:26
@wikingit's less instructions than before13:27
@wikingbut certainly more13:27
@wikingthan the most 'optimal'13:27
@wikingthe most funniest13:29
@wikingthat actually get_width is not being redefined in any of the subclass13:29
@wikingso basically if i drop the virtual13:30
@wikingand put forced inline13:30
@wikingit's good13:30
@wiking:))))13:30
@wikingwtf :>13:30
@wikingok i guess another patch13:30
gf712haha13:30
@wikingthe dust13:30
@wiking:>13:30
@wikinglemme pr-it and see what Heiko says since they did some changes here13:31
gf712hmmm, weird that it was virtua13:31
gf712someone must have thought it would have been needed at some...?13:31
gf712point13:31
gf712wiking btw I have been writing this whole set of structs to store types, basically a compile time list to store types13:32
gf712the idea would be to register all types in a struct at some point13:32
@wikingyes13:32
gf712and then access them in tests, from enums, etc...13:33
gf712compile time stuff would be good to catch some weird behaviours at runtime too13:33
gf712if msvc plays along13:34
@wikinghehe that'd be great13:39
@wikingmmmm /me wonders what has happened with ccache :S14:16
@wikinglisitsyn: shouldn't m->get<CKernel>("kernel") work in c++?14:22
lisitsynwiking: should!14:22
lisitsynwiking: 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
@wikinglisitsyn: do you need to whole stack of error?14:27
lisitsynwiking: nope14:27
@wikingwait wait14:27
@wikingi know i think it's my side14:27
lisitsynI guess you get a pointer14:27
@wikingah nio14:27
lisitsynnot the object14:27
lisitsynyou should, I mean14:28
@wiking<CKernel*>14:28
@wiking?14:28
lisitsynyes14:28
lisitsynshoulda work14:28
@wikingyep14:29
@wikingdid the trick14:29
@wikinganybody 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#L1414:30
@wiking?14:30
@wikingso like a templated test where the template param is a string14:30
@wikingand the string is coming from a for(auto m: kShogunSVMs) :)14:31
@wikingor i shall just dream on14:31
@wiking?14:31
@wiking:)14:31
@wikingthe 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 validate14:33
@wiking:)14:33
@wikingi 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 tests14:34
@wikingof 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
gf712wiking can you not add the types instead of the strings?14:37
gf712I don't think there is any way from string to type unless you create a map14:37
gf712why don't you use something similar to what I wrote in type_case.h?14:38
gf712can think of a way to generalise it more14:38
@wikinggf712: the problem with the types is that how do you do the lookup for the right converter ?:)14:39
@wikingor do a huge dispatching? :)14:39
@wikingwhere u try to cast it until it matches?14:39
@wikingbut yeah maybe the parent class would be better14:40
gf712why is a huge dispatching?14:40
gf712it would maybe affect compile time slightly14:40
gf712but there is no runtime added14:40
gf712compilers are smarter than we are, just give them work :D14:40
@wikingyeah but this is checked runtime14:41
@wikingi mean i'm getting an CMachine14:41
gf712hmmm I will have a look14:41
@wikingand then i need to see what is the actual type of that CMachine14:41
@wikingeither the actual real type like that unordered_set's values with get_name (or dynamic casting)14:41
@wikingor basically i could do a parent class14:42
@wikingbut still then i need the dynamic casting dispatcher14:42
@wikingright?14:42
gf712so can you not use something like I wrote where you convert the enum to a type and use that for casting?14:42
gf712then you don't use a map or set14:43
@wikingwhat enum? :)14:43
@wikingi mean currently we have an enum for the machines14:43
@wikingbut that'll have to go sooner or later14:43
gf712can't you get the enum of the machine14:43
gf712ah ok14:43
@wikingso i either do a dynamic casting try-error14:44
@wikingor have this map<string, function>14:44
@wikingwhere string = get_name()14:44
@wikingof course another way to do this14:44
@wikingis to have some sort of a mixin for CoreML14:45
@wikingwhich actually maybe would be the best14:45
@wikinglike with a visitor function14:45
gf712maybe, long term that is probably better14:45
@wikingbecause say you wanna add a new machine14:45
@wikingyou should take care of how that machien is mapped to coreml14:46
@wikingif there's a mapping14:46
@wikinglisitsyn: ^ thoughts14:46
lisitsynwiking: I can't see that right now but yeah you probably should register it somehow14:47
@wikinglisitsyn: i mean maybe if we start taking the frameworking seriously14:48
@wikingwe would like to have model implementors14:48
@wikingto provide the coreml mapping14:48
@wikinginstead of doing and external library14:48
@wikingor?14:48
@wikingor like an external process that 'knows everything'14:48
lisitsynwiking: well base classes know how to coreml itself14:50
lisitsynso if you're implementing yet another svm (haha in 2019)14:50
@wiking:>14:50
@wikingi'm wondering whether base classes can always cover all the cases14:51
@wikinglisitsyn: i mean in case of kernels it's not possible14:51
@wikingif we take that CKernel is the only base interface14:51
lisitsynwiking: not always but most of them14:51
@wikingof course this raises another question14:51
@wikingif we do the base class story14:51
@wikingthen that means that we require coreml14:52
@wikingto be available/compiled in the base interface14:52
@wiking:)14:52
@wikingdo we want that?14:52
@wikingthat means protobuf dependency etc14:52
@wiking:)14:52
lisitsynwiking: ah yeah that's true15:07
@wikinglisitsyn: so ? :)15:17
lisitsynwiking: I believe it would be best to have it on a side so it is not that intertwined15:18
lisitsynbut I don't know details15:18
@wikingok so then we just simply do what i've started15:18
@wikingwe have a big blob15:18
@wikingthat knows what and how something can be exported15:19
@wikingto coreml15:19
lisitsynyeah15:19
lisitsynprobably it is best15: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 #shogun15:37
-!- mode/#shogun [+o besser82] by ChanServ15:37
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun15:56
-!- mode/#shogun [+o wiking] by ChanServ15:56
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 246 seconds]16:00
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun16:26
-!- mode/#shogun [+o wiking] by ChanServ16:26
gf712wiking: btw what I meant earlier would be to use get_kernel_type() for the dynamic casting16:41
@wikingthat should go as well16:42
@wiking:)16:42
@wikingthose enums will go one day16:42
gf712ah ok!16:49
gf712well if you need a compile time list of types let me know16:49
gf712I 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 :D16: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 #shogun17:25
-!- wiking_ [~wiking@c-185-45-237-122.customer.ggaweb.ch] has joined #shogun17: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 #shogun18: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 #shogun19:38
-!- mode/#shogun [+o wiking] by ChanServ19:38
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 240 seconds]19:42
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun20:15
-!- mode/#shogun [+o wiking] by ChanServ20:15
-!- Lefteris [56a35883@gateway/web/freenode/ip.86.163.88.131] has joined #shogun20:35
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection]21:48
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun21:49
-!- mode/#shogun [+o wiking] by ChanServ21:49
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 240 seconds]21:56
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun22:19
-!- mode/#shogun [+o wiking] by ChanServ22: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 #shogun22:43
-!- mode/#shogun [+o wiking] by ChanServ22: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 #shogun23:17
-!- wiking [~wiking@c-185-45-237-122.customer.ggaweb.ch] has quit [Changing host]23:17
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun23:17
-!- mode/#shogun [+o wiking] by ChanServ23:17
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection]23:17
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun23:23
-!- mode/#shogun [+o wiking] by ChanServ23:23
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection]23:29
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun23:37
-!- mode/#shogun [+o wiking] by ChanServ23: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!