IRC logs of #shogun for Friday, 2019-03-15

--- Log opened Fri Mar 15 00:00:52 2019
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection]04:41
-!- wiking [~wiking@c-185-45-237-122.customer.ggaweb.ch] has joined #shogun06:41
-!- wiking [~wiking@c-185-45-237-122.customer.ggaweb.ch] has quit [Changing host]06:41
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun06:41
-!- mode/#shogun [+o wiking] by ChanServ06:41
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 272 seconds]06:46
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun07:16
-!- mode/#shogun [+o wiking] by ChanServ07:16
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection]07:16
-!- wiking [~wiking@c-185-45-237-122.customer.ggaweb.ch] has joined #shogun07:40
-!- wiking [~wiking@c-185-45-237-122.customer.ggaweb.ch] has quit [Changing host]07:40
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun07:40
-!- mode/#shogun [+o wiking] by ChanServ07:40
-!- zhuq [~zuq@30.123.127.176.dynamic.wline.res.cust.swisscom.ch] has joined #shogun07:46
-!- gf712 [905208fd@gateway/web/freenode/ip.144.82.8.253] has joined #shogun09:32
-!- zhuq [~zuq@30.123.127.176.dynamic.wline.res.cust.swisscom.ch] has quit [Ping timeout: 246 seconds]09:45
-!- HeikoS [b924003b@gateway/web/cgi-irc/kiwiirc.com/ip.185.36.0.59] has joined #shogun10:31
gf712HeikoS: hey10:37
HeikoSgf712 yo!10:38
gf712sorry I disappeared yesterday! I had to go10:38
gf712I need some help with the openml stuff10:38
gf712do you want to choose and openml task and a shogun algorithm for it? :D10:38
gf712and then I can test it out for a demo10:39
gf712and send a NB10:39
HeikoSthat would be really nice yes10:40
HeikoSI also wonder10:40
HeikoSshall I mention the task business on the poster?10:41
HeikoSor rather just talk about it10:41
HeikoSwhat do you think?10:41
gf712I think you should10:41
HeikoSok10:41
HeikoSlet me do that now then10:41
gf712because it explains where the data comes from10:41
gf712it is basically a competition10:41
gf712so we need to beat sklearn, weka and all of those :D10:42
gf712HeikoS: do you know any of the sets here https://www.openml.org/search?type=task ?10:42
HeikoShehe ok10:42
HeikoSwhat is the metric?10:43
HeikoSno dont think so10:43
HeikoSI would go for some UCI dataset10:43
HeikoSif they have10:43
HeikoSbecause the scientists know those10:43
gf712I tested out a bit but didn't get any good results10:43
gf712because I was probably using the wrong algos10:43
gf712and wrong params10:43
HeikoSjust a moment will be back in a bit10:43
gf712OK10:43
HeikoSwhat problems/algos were you using?10:44
HeikoSwhat about something simple, like boston housing?=10:44
gf712this https://www.openml.org/t/4423 ?10:45
gf712but it says classification...?10:45
gf712I thought it was a regression problem no?10:45
gf712but yea, this one uses accuracy as a metric10:45
gf712and the leader is weka's rbf kernel logistic regression10:46
@wikinglisitsyn: ping10:58
-!- HeikoS [b924003b@gateway/web/cgi-irc/kiwiirc.com/ip.185.36.0.59] has quit [Ping timeout: 268 seconds]10:58
-!- HeikoS [b924003b@gateway/web/cgi-irc/kiwiirc.com/ip.185.36.0.59] has joined #shogun11:02
HeikoSgf712 back now11:03
HeikoSso what does it classify?11:03
gf712HeikoS some sort of binary version of the regression problem11:07
gf712https://www.openml.org/d/85311:07
gf712HeikoS: there is the regression version though11:08
HeikoSI see so the labels are "value lower than mean"11:08
HeikoSlet's do both?11:08
gf712yes was going to say11:08
gf712any suggestions for also choice?11:08
gf712also we don't have pipeline support yes11:08
gf712yet11:08
gf712so can't do any preprocessing :/11:08
HeikoSmmh good point11:12
HeikoSlinear regression?11:13
HeikoSit can learn the mean11:13
gf712OK, and then svm for classification?11:15
gf712btw is there any way of having binary labels in shogun that don't have to be -1 and +111:15
gf712I.e. also have 0 and +111:15
HeikoSyeah svm is good11:15
HeikoSyes11:15
HeikoSthey are automatically converted11:15
HeikoSi.e. you pass multiclasslabels(0,1)11:16
gf712ah ok!11:16
HeikoSto an algorithm that wants binary labels11:16
gf712and that works then for binary11:16
gf712cool!11:16
HeikoSnot always11:16
HeikoSwe have a conversion method11:16
HeikoScalled binary_labels(CLabels*)11:17
HeikoSCBinaryLabels binary_labels(CLabels*)11:17
HeikoSand it will either cast, or convert11:18
HeikoSsome algorithms already use it (all those covered in the meta examples do)11:18
gf712HeikoS i am trying out with svmlight because it has a train method11:20
HeikoSmaybe libsvm?11:20
HeikoSbecause of the license issues?11:20
gf712ok!11:21
gf712HeikoS but then I get SystemError: [ERROR] In file /Users/ghoben/shogun/src/shogun/labels/BinaryLabels.cpp line 161: Cannot convert MulticlassLabels to binary labels: [ERROR] In file /Users/ghoben/shogun/src/shogun/labels/BinaryLabels.cpp line 154: Sorry, not yet implemented .11:23
HeikoSeasy to fix11:23
gf712and with binary I get SystemError: [ERROR] In file /Users/ghoben/shogun/src/shogun/labels/BinaryLabels.cpp line 81: Binary Labels must be -1 or +1!11:24
HeikoSyou need to add a case11:24
HeikoSand convert11:24
HeikoScleverly11:24
gf712you mean on the shogun side?11:25
HeikoSyes11:26
HeikoSin CBinaryLabels::binary_labels11:27
gf712yup, adding a case there11:27
gf712but would I have to construct a CBinaryLabels there?11:28
gf712or is it possible to do some casting?11:28
HeikoSyes construct them11:30
HeikoSbest to add a private helper method inside CBinaryLablels.cpp11:31
HeikoSand then call it from the case11:31
HeikoSthe method will need to create a new labels instance with new data11:31
HeikoScheck CMulticlassLabels::to_multiclass11:31
HeikoSjust do the similar thing11:31
HeikoSinside CMulticlassLabels.cpp11:32
gf712OK, let me try it out11:32
gf712HeikoS: would CBinaryLabels::binary_labels return Some<CBinaryLabels>?11:34
HeikoSyes11:34
HeikoSyou might need to fix some memory issues after11:34
HeikoSbecause sometimes shogun code doesnt REF pointers it receives11:35
HeikoSand since Some does, there have been segfaults when I converted things from binary to multiclass11:35
HeikoSbut you will see that in the CI11:35
HeikoSfor now, if you just follow the same recipe, it should work11:35
gf712aight!11:36
gf712for Some, do you construct the raw pointer and then pass it to Some::from_raw?11:37
HeikoScan you give me a snippet to run a task?11:38
HeikoScheck the CMulticlassLabels::to_multiclass method11:38
HeikoSit first converts the SGVector with the labels11:38
HeikoSand then calls the constructor, via some<CMulticlassLabels>(result_vector);11:38
gf712HeikoS: https://pastebin.com/b4fZVkbw11:39
HeikoSthanks11:39
HeikoSgf712 btw if you share notebooks, could you always share a gist link so I can look at the rendere version?11:39
gf712Ah yes, sure!11:40
gf712didn't realise gist rendered it11:40
HeikoSyeah its pretty cook11:41
HeikoSone click views, also from phone11:41
HeikoSgf712 what can I do with "run"11:44
HeikoSgf712 what would be the command to publish it on the website?11:44
HeikoS(even if it doesnt work)11:45
gf712ah, it would be just run.publish()11:46
gf712it's almost there11:47
gf712I just need to clean up some stuff11:47
gf712HeikoS: i am guessing we don't publish the learnt parameters11:47
gf712i.e. bias and weights11:48
HeikoSno worries11:48
HeikoSjust for the poster11:48
HeikoSnope dont worry11:48
-shogun-buildbot:#shogun- Build FC23 - libshogun #617 is complete: Failure [failed compile (failure)] - http://buildbot.shogun-toolbox.org:8080/#builders/27/builds/61712:02
gf712HeikoS: I think the label conversion is working fine now12:04
gf712Any suggestions for parameter? :D12:04
gf712and kernel?12:04
HeikoSgaussian kernel with median heuristic12:05
-!- sighingnow [~sighingno@2001:da8:203:81:61cb:e403:788a:f5c3] has joined #shogun12:05
HeikoShttps://arxiv.org/pdf/1707.07269.pdf12:06
HeikoSSec 2.2 describes it12:06
gf712ah yes, I'll try that out12:06
HeikoSnote their kernel is parametrized differently12:07
HeikoSso need to convert the median slightly differently12:07
HeikoSgf712 actually no, it is the same12:07
HeikoS(x-y)^2 / tau12:08
HeikoSgf712 note they compute the median on the distances for i<j, that is only the lower (or upper) triangular values of the pairwise distance matrix without the diagonal12:09
gf712ah ok ok, I am starting to understand now12:10
HeikoSpretty simple12:10
HeikoSyou can also do it on a subset (as the paper analyses)12:10
HeikoSlike 1000 points or so12:11
gf712yea, in this case it is fine because the dataset is pretty small12:11
gf712about 500 or so12:11
gf712I'll pick 400 and get the mean of that and see how it does12:11
gf712median even12:13
HeikoSif it is < 1000 just use all12:14
gf712HeikoS: dumb question (my ml isn't as good as it once was..), but is it pretty much this np.median(spatial.distance.pdist(X)) ?12:15
gf712spatial.distance.pdist just returns values from the u triangle I think12:16
HeikoSyeah almost12:16
HeikoSah really12:16
HeikoScool12:16
HeikoSthen that is it :)12:16
gf712yes, it is a condensed matrix12:16
HeikoSand then you need to multiply it with some scaling factor12:16
gf712but I can convert to square form12:16
HeikoSto match the gaussian12:16
HeikoSno need12:16
gf712and check12:16
HeikoSto convert to square form12:16
HeikoSheck eq 212:17
HeikoSso you so sqrt(median/2) as the bw12:17
HeikoSthis thing pretty much always works when the global scaling of the data is where the information is12:17
gf712you mean (4) ?12:17
HeikoSand it doesnt work if some high frequency stuff distinguishes the data12:17
gf712ok, let's see what it gives here12:17
HeikoSno equation (2)12:18
HeikoSH_n = ...12:18
HeikoSand then \nu = \sqrt(H_n / 2)12:18
gf712ah sorry12:18
gf712yes yes12:18
gf7129.22309632300096312:19
gf7120.792452830188679312:24
gf712HeikoS: accuracy^12:24
gf712pretty good12:25
HeikoSyeah that is ok12:25
HeikoSfor illustration12:25
gf712default values just gave 0 label for everything12:25
HeikoSdefault for the gaussian kernel should be the median12:25
HeikoSso that is a nice auto parameter to add12:25
HeikoScould write an entrance task issue for that12:25
gf712any tricks for C1 and C2 of SVM> :D12:25
gf712?*12:25
HeikoS1.0 ? :D12:26
gf712haha ok12:26
HeikoSit shouldnt matter too much12:26
HeikoSsince the dataset is low D12:26
HeikoSthis only becomes an issue in high D12:26
HeikoSthe choice of C12:26
HeikoSactually12:26
HeikoSset it lower12:26
HeikoS0.112:26
HeikoSit is the penalty for margin violations12:26
HeikoSah sorry no12:26
HeikoShigher12:26
HeikoSwell12:27
HeikoSjust keep 1.0 :D12:27
gf712haha ok!12:27
HeikoSyou can maybe try 0.1, 1.0, 1012:27
HeikoSand then take the best12:27
gf712sounds good12:27
HeikoSinterpretation of the C:12:27
gf712and then I'll try and publish this12:27
HeikoSthe higher it is, the more the SVM will try to avoid data lying on or on the wrong side of the margin of the hyperplane12:27
gf712so what is C1 v C2?12:28
HeikoSin high D, one can often get a much better generalization ability by allowing a few margin errors12:28
HeikoSitis for positive and negative examples12:28
HeikoSjust set them equal12:28
gf712ah ok!12:28
gf712cool thanks D:12:28
gf712:D12:28
gf712HeikoS btw are you going to the ATI on Wednesday?12:28
HeikoSah yes12:29
HeikoSlet me check12:29
gf712just need to know to get you a visitor pass12:29
HeikoSyes12:29
HeikoSill be there12:29
HeikoSall day was my plan12:29
HeikoSso we can work/chat/lunch12:29
gf712ok, I'll get you a pass then12:29
HeikoSpass would be good althoug I think there will be a proper pass for me ready to pick up12:30
gf712ah really?12:30
gf712ill get one just in case12:31
HeikoSyeah maybe12:31
HeikoSso avoid annoyance12:31
HeikoSand then traveling to Cambrdige I need to decide when to go12:31
HeikoSI think I will go in the evening12:31
HeikoSstaying with a friend that night12:31
gf712aight!12:31
gf712and then start at 9am on Thursday?12:32
HeikoSyeah 930 I think it starts12:32
gf712so is it just poster?12:33
gf712or can we do a demo?12:33
HeikoSI think let's prepare a demo notebook12:34
HeikoSwe will have to do those from the laptop12:34
HeikoSbut main presentation is poster12:35
HeikoSI just sent you a link for the ready poster12:35
HeikoSany comments on the snippets/bullet points?12:35
gf712HeikoS: having a look12:36
@wikinggf712: ping12:36
@wikinggf712: dangerzone: using namespace shogun;12:36
gf712shouldn't it be .train(X)?12:36
gf712wiking: where?12:36
@wikingin SGObjectIterator.h12:36
@wikingplz change12:36
@wikingah it wasnt u12:37
@wiking:D12:37
@wikingwho merged this?12:37
@wikingme? :D12:37
gf712is it me?12:37
gf712ah12:37
gf712haha12:37
@wikingboom develop striaght12:40
@wikinglets see if it breaks everything12:40
@wiking:D12:40
gf712not sure why it would break stuff :D12:43
@wikingwho knows12:44
@wikingjust encountered some magical diff between gcc and clang12:44
@wikingwith namespace :)12:44
@wikingso u never really know12:44
HeikoSwiking you want this to be inside namespace shogun { ... } ?12:47
@wikingwhich?12:47
@wikingi mean this == ?12:47
HeikoSthe iterator12:47
@wikingyes but its fixed already12:47
@wikingi mean i dont care where it is12:47
HeikoSah ok12:47
@wikingjust dont use using namespace bla12:47
@wikingin .h12:47
HeikoSyep, sorry I simply missed it12:48
@wikinglisitsyn: need u! AnyVisitor is getting craaaaazy....12:50
@wikingHeikoS: btw deadbeef pr has STL container clone support... as well as json serialization based on tags12:51
HeikoSwiking yeah I saw it, pretty cool12:52
HeikoSis this recursive issue still in there?12:52
@wikingHeikoS: which?12:52
@wikingvector<vector<vector>>>12:52
@wiking?12:52
HeikoSlike when an object had a subobject, loading it from file was tricky12:52
@wikingHeikoS: nono it works12:53
HeikoSah that is ace!12:53
@wikingjsonserialization unit test is there12:53
@wikingwith a guassiankernel12:53
HeikoShow did you fix it? :)12:53
@wikingthat has a densefeature12:53
@wikingbut i mean the other unit test will show that its all good12:53
@wikingbut12:53
@wikinganyvisitor is not limited12:53
@wikinghence i dont see many types12:53
HeikoSi see12:53
@wikingbut i mean iether i start making crazy interface in anyvusitor12:54
HeikoShaha12:54
@wikinglike putting all sgvector<type> and sgmatrix... etc there as a virtual function12:54
@wikingor else12:54
@wiking:)12:54
@wikingdont like this idea12:54
@wikingas it'll look fucking crazy12:54
HeikoSI guess12:55
@wikingbtw ascii, xml serializzation format can go right?12:55
HeikoSon the other hand, we have only limited number of types12:55
HeikoSyes I think so12:55
HeikoSkill it12:55
@wikingwe'll have json and one binary12:55
HeikoSyep ++12:55
@wikingHeikoS: https://pastebin.com/PqAvM8Ui12:55
@wikingyou mean this limited?12:55
@wiking:)12:55
@wikingand sparse and string is still missing12:55
@wiking:P12:56
HeikoSyeah it is nuts12:56
HeikoSand std::vector also12:56
@wikingand std::map12:56
@wikingand std::list12:56
@wikingetc12:56
HeikoSmap and list dont even work yet, but yeah12:56
HeikoSmmmh12:56
@wikingHeikoS: see my comment above12:56
@wikingbtw deadbeef pr has STL container clone support12:56
HeikoSah12:57
HeikoSsorry missed12:57
@wikingstl container = map, list, vector etc12:57
HeikoSah cool so you generalized sergeys thing12:57
@wikingyep12:57
@wikingthere's a unit test that passes for make_any(std::map)12:57
@wikingand equal works12:57
HeikoSah man12:58
HeikoSreally nice12:58
@wikingso this should work nicely12:58
@wikingbut msvc dies12:58
@wikingon the sfinae trait12:58
@wiking:D12:58
@wikingwith an error: contact microsfot12:58
@wiking:D12:58
@wiking:>>>12:58
HeikoSlol12:59
HeikoSawesome12:59
@wikingbut yeha12:59
@wikingneed to see what to do with visitor12:59
@wikingas it blows up12:59
-shogun-buildbot:#shogun- Build FC23 - libshogun #618 is complete: Success [build successful] - http://buildbot.shogun-toolbox.org:8080/#builders/27/builds/61813:02
HeikoSwiking I mean this is the usual dispatching problem13:02
HeikoSfor templated code13:03
HeikoSnot sure there is a good solutionm13:03
@wikingyeah there's no better way13:03
@wikingjust then if you dont implement certain stuff then blabla13:03
@wikingor of course13:03
@wikingwe can do13:03
HeikoSmaybe generate the code somehow13:03
HeikoSor just define the things that are needed onmly13:04
@wikingcontainer_starts() container_ends()13:04
@wikingand then call base types13:04
@wikingso visitor is a bit different13:04
@wikingit's stateful13:04
HeikoSmmmh13:04
HeikoSsketchy as well ;)13:04
@wikingyeah but that way you can enforce13:04
@wikingthe api13:04
@wikingwith virtual13:04
HeikoSwiking this PR is the culmination of quite some time, I remember you showing the FS stuff at the WS in zurich 2 years ago13:05
@wikingyeah13:05
@wikingpulled all the shit together in the backlog13:05
@wikingbecause in the meantime i wanna get rid of File.h13:06
@wikingas that's shit as well13:06
HeikoSyeah, a lot of code can go once this is merged13:06
@wikingthe reason i'm doing this actually13:06
@wikingis because fucking windows build13:06
@wikingwith the SHOGUN_EXPORT13:06
@wikingdoes not work13:06
@wiking:D13:06
@wikingfor reading fucking files13:06
@wiking:DDDD13:06
@wikingin the integration test13:06
@wikingso i was like fuck file fuck ascii serialization13:07
HeikoShaha i see13:07
@wikingwithout SHOGUN_EXPORT we dont have a proper windows build13:07
@wikingand on the other13:07
@wikingwe should have a static class13:07
@wikingEnv13:07
@wikinglike ShogunEnv13:07
@wikingthat is wrapping every bullshit global stuff13:08
@wikingand get rid of init_shogun()13:08
@wikingand just have the env global var have static so if u load in the lib13:08
@wikingthat's initied13:08
@wiking*inited13:08
HeikoSyes Id prefer that as well tbh13:09
HeikoSok ill send the poster to amber now13:12
gf712HeikoS: sounds good13:14
@wikingdo we have type trait for SGVector||SGMatrix||SGString||SGStringList||SGSparseVector ?13:17
@wikingor it's like SGReferencedData ? :)13:17
HeikoSwe dont13:18
HeikoSbut we should have one13:18
gf712wiking: you mean like this https://github.com/shogun-toolbox/shogun/blob/79fa98a85aed7eb88be30884349dd0666567ac5a/src/shogun/lib/type_case.h#L70 ?13:18
HeikoSwiking btw I think we can pretty much drop some13:18
HeikoSSGString -> SGVector is very easy13:18
HeikoSand then13:18
HeikoSSGStringList -> std::vector<SGVector<T>> should be better as well13:19
HeikoSstring list is a fuck13:19
HeikoSIm off for lunch now13:19
HeikoSsee you later13:19
@wikingis_base<SGReferenced13:19
@wikingcovers most of these13:19
gf712HeikoS: published the model but it isn't showing yet... seems like openml is down right now13:25
gf712but I checked the scores and it is pretty decent13:25
-!- theartful [c53556e9@gateway/web/freenode/ip.197.53.86.233] has joined #shogun13:44
HeikoSgf712 cool!13:44
HeikoSthat is a good demo to show13:44
theartfulhi, i have a question. why the MKLOneClass works only with SVMOneClass and not with SVMLightOneClass?13:49
HeikoStheartful hi13:59
HeikoSit has to do with the interleaving14:00
gf712HeikoS: I completely forgot an important thing for the poster14:00
gf712you can do ShogunConverter.from_flow(openml.flows.get_flow(9603))14:00
gf712and that gives you the model instance of that flow14:00
HeikoSah14:00
HeikoSso maybe we have to add a line that downloads the flow?14:00
gf712anyway, can have that in the NB14:00
HeikoSyeah14:01
gf712yea, it's kinda the whole point right?14:01
HeikoSI mean we can say that one can download flows from online14:01
HeikoSyes14:01
theartfulI don't like the idea of adding these methods to the abstract class, since each one will only be used once.14:01
HeikoStheartful I think it crashes otherwise, implementation details, badly designed14:01
HeikoStheartful there is another way to do it in a more hacky fashion14:01
HeikoStheartful you could add a member variable "bool supports_mkl"14:02
HeikoSin the respective classes14:02
HeikoSand then you can do14:02
HeikoSsvm.get<bool>("supports_mkl")14:02
HeikoSyou surround it with try catch14:02
theartfulMKLRegression requires SVRLight. Interleaving requires SVMLight. and MKLOneClass requires SVMOneCLass14:02
theartfulthere are 3 different cases, 3 different methods, used only once14:03
HeikoSsure14:03
HeikoSin a good world, everything would work with everything, and error messages and code design would be clear14:03
HeikoSbut in this world, that isnt the case14:03
theartfulbut isn't adding these the abstract class bad? I think if they tightly coupled, then it's their problem not the interface14:04
HeikoSyes agreed14:04
HeikoSbut the way I see this is more in the sense of "does the solver work on a certain type of optimization problem"14:05
HeikoSso the method is more of a decorator of what is going on inside14:05
HeikoSand that is valid for a base class14:05
HeikoShowever14:05
HeikoSyou can also just do the "get" approach I wrote above14:05
HeikoSor, if you also dont like that14:06
HeikoSwe can also use the name, and try to dive into the problem a bit in a second PR and refactor things14:06
theartfuli think that's better, since the only think they want is a specific class. for example MKLOneClass works with SVMOneClass and not with SVMLightOneClass, so property of "one-classness" is not the issue14:07
HeikoSthat is not really true, but only because the code is a bit shitty ;)14:08
theartfulaha :"D14:09
HeikoSit actually HAS to do with the fact that a svm is oneclass14:09
HeikoSand that it supports interleaving optimization14:09
HeikoSthat is the real reason14:09
HeikoSbut the code just asserts the specific class since somebody was lazy14:09
theartfulok, then this sounds good get<bool>("supports_interleaving") and get<bool>("one_class")14:10
HeikoSThe real issue is that there is no base class for oneclass-svms14:10
theartfulaha14:11
HeikoSmmh14:11
HeikoSthe more I think of it the less I like the "get" version either14:11
HeikoSI think we either leave it as it is "use name", or we add a virtual method to CSVM, or we refactor14:12
HeikoSwhat about this:14:12
HeikoSyou keep using the name for now, but you add a // TODO. FIXME replace this with an API call14:12
HeikoSsince it is not your fault that the design is this way14:12
HeikoSand then we could look into re-structuring things a bit nicer in a second PR?14:13
theartfulok, great14:13
HeikoStheartful thanks for your efforts!14:14
-!- zhuq [~z@30.123.127.176.dynamic.wline.res.cust.swisscom.ch] has joined #shogun14:18
theartfulno problem, thanks for your patience. I really learned a lot about c++ and other things in limited time :"D14:20
-!- zhuq [~z@30.123.127.176.dynamic.wline.res.cust.swisscom.ch] has quit [Ping timeout: 272 seconds]14:51
-!- zhuq [~z@30.123.127.176.dynamic.wline.res.cust.swisscom.ch] has joined #shogun15:36
gf712HeikoS: is the new repo to push all ati stuff? i.e. notebook with OpenML stuff?15:51
HeikoSgf712 indeed15:51
HeikoSfeel free to create a folder for the demo15:51
gf712OK cool!15:52
-!- zhuq [~z@30.123.127.176.dynamic.wline.res.cust.swisscom.ch] has quit [Ping timeout: 272 seconds]15:57
-!- gf712 [905208fd@gateway/web/freenode/ip.144.82.8.253] has quit [Ping timeout: 256 seconds]16:06
-!- gf712 [905208fd@gateway/web/freenode/ip.144.82.8.253] has joined #shogun16:19
-!- HeikoS [b924003b@gateway/web/cgi-irc/kiwiirc.com/ip.185.36.0.59] has quit [Ping timeout: 272 seconds]16:24
-!- theartful [c53556e9@gateway/web/freenode/ip.197.53.86.233] has quit [Quit: Page closed]16:42
-!- abhishekgoyal1 [67763204@gateway/web/freenode/ip.103.118.50.4] has joined #shogun16:53
-!- HeikoS [b924003b@gateway/web/cgi-irc/kiwiirc.com/ip.185.36.0.59] has joined #shogun17:13
HeikoSlisitsyn wiking I have a q17:13
HeikoSwill features be plugins?17:14
HeikoSor shall we keep their types17:14
HeikoSi.e. shall everything in SWIG by CFeatures*, or do we keep RealFeatures etc17:14
HeikoSI realised it is quite different to say CMachine17:14
HeikoSwe dont add new CFeatures spezializations all the time ....17:15
-!- zhuq [~z@30.123.127.176.dynamic.wline.res.cust.swisscom.ch] has joined #shogun17:16
@wikingHeikoS: #4571: these is_ methods is gonna be the same mess17:16
@wikingsee my comments17:16
HeikoSyes17:16
HeikoSwe have machine type anyways17:17
@wikingwe anyways wanna have a way to see what are the supported input17:17
@wikingetc17:17
HeikoSwe might need it for this interleaved stuff17:17
@wikingso just use a bitmask17:17
@wikingand have support()17:17
HeikoSthat hack to ensure something doesnt crash17:17
HeikoSyes agree17:17
HeikoSwiking what are your thoughts on labels/features being plugins or not17:17
HeikoSand about base interface vs spezialized interface17:17
@wikingmmm17:18
@wikingfeatures will be plugins17:18
@wikingi would do them like that17:18
HeikoStend to agree17:18
HeikoSbut just was touching all this extra stuff we have for swig features17:18
HeikoSand thought maybe it is good to think twice17:18
HeikoScertainly makes the wrapper much smaller17:19
-!- gf712 [905208fd@gateway/web/freenode/ip.144.82.8.253] has quit [Ping timeout: 256 seconds]17:25
-!- zhuq [~z@30.123.127.176.dynamic.wline.res.cust.swisscom.ch] has quit [Ping timeout: 245 seconds]17:31
-!- zhuq [~z@30.123.127.176.dynamic.wline.res.cust.swisscom.ch] has joined #shogun17:43
-!- abhishekgoyal1 [67763204@gateway/web/freenode/ip.103.118.50.4] has quit [Ping timeout: 256 seconds]17:48
-!- HeikoS [b924003b@gateway/web/cgi-irc/kiwiirc.com/ip.185.36.0.59] has quit [Ping timeout: 246 seconds]18:01
-!- theartful [c53556e9@gateway/web/freenode/ip.197.53.86.233] has joined #shogun18:15
-!- theartful [c53556e9@gateway/web/freenode/ip.197.53.86.233] has quit [Quit: Page closed]18:21
-!- theartful [c53556e9@gateway/web/freenode/ip.197.53.86.233] has joined #shogun18:23
theartfulabout the supports function. I think we can add a bitset into machine, and leave the enums as they are. the change would be that if enum A ends with number n for example, enum B starts with n+118:27
theartfulthen create a variadic macro to put the enums, and it sets the bits with the indices of the enum values18:27
theartfuland maybe make the indices from 0 to N (for some N) general purpose properties, and each machine can add its own specific properties (as long as they have values greater than N)18:29
-!- zhuq [~z@30.123.127.176.dynamic.wline.res.cust.swisscom.ch] has quit [Ping timeout: 246 seconds]18:31
theartfulnow, supports would be implemented in CMachine and would be something like (bool supports(uint index) const)18:31
theartful@wiking how about that?18:32
@wikingno18:33
@wikingreturn an uint65_t18:33
@wikinguint64_t18:33
@wikingand we'll deal later with syntactic sugar18:33
@wikingjust want to have a function that returns everything about the machine18:34
@wikingin your case as well18:35
@wikingthe index should not be an index for a bit18:35
@wikingbut then rather the whole OR-ed bitmask18:35
@wikingnote you need to implement the enum in a way that each one is setting a bit in the variable18:36
@wikingso not 0... N18:36
@wikingbut rather 1, 2, 4, 8 etc18:36
theartfulyes i get that, the macro would do the shifting18:36
@wikingno need for macro shifting18:36
theartfulor maybe just uses a bitset18:36
@wikingjust set the enum values right18:36
@wikingand then use bit operation to set the uint64_t18:37
theartfulokay, if I want to query some property, I would have to do the bit oring  myself in each class18:39
theartfulor will this be just used to show the whole list of properties?18:40
theartfulactually it's not a problem, nvm18:40
@wikingyeah you can then have a macro or a constexpr method18:41
@wikingthat does the checking for a certain set of bits18:41
theartfulsounds good18:41
theartfulone more thing. I have a bad feeling about putting 'interleaving' in CMachine. why not let have a CMachine properties that occupy a certain number of the 64 bits, and let each family of classes define their own properties (in a common header file for example)?18:44
theartfulwhy not let CMachine properties occupy** :"D18:44
-!- zhuq [~z@30.123.127.176.dynamic.wline.res.cust.swisscom.ch] has joined #shogun19:06
-!- theartful [c53556e9@gateway/web/freenode/ip.197.53.86.233] has quit [Quit: Page closed]19:18
-!- zhuq [~z@30.123.127.176.dynamic.wline.res.cust.swisscom.ch] has quit [Ping timeout: 245 seconds]19:39
-!- zhuq [~z@30.123.127.176.dynamic.wline.res.cust.swisscom.ch] has joined #shogun19:58
-!- zhuq [~z@30.123.127.176.dynamic.wline.res.cust.swisscom.ch] has quit [Remote host closed the connection]22:09
-!- zhuq [~z@30.123.127.176.dynamic.wline.res.cust.swisscom.ch] has joined #shogun22:09
-!- zhuq [~z@30.123.127.176.dynamic.wline.res.cust.swisscom.ch] has quit [Ping timeout: 272 seconds]22:46
-!- zhuq [~z@30.123.127.176.dynamic.wline.res.cust.swisscom.ch] has joined #shogun22:46
-!- zhuq [~z@30.123.127.176.dynamic.wline.res.cust.swisscom.ch] has quit [Ping timeout: 268 seconds]23:51
--- Log closed Sat Mar 16 00:00:53 2019

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