IRC logs of #shogun for Tuesday, 2018-01-16

--- Log opened Tue Jan 16 00:00:21 2018
-!- witness [uid10044@gateway/web/irccloud.com/x-wkostbddmecewwnc] has quit [Quit: Connection closed for inactivity]01:13
-!- saurabh7 [~saurabh@106.51.19.168] has joined #shogun02:36
-!- saurabh7 [~saurabh@106.51.19.168] has quit [Ping timeout: 260 seconds]06:21
-!- saurabh7 [~saurabh@119.82.125.220] has joined #shogun06:34
-!- _satya [0e8bc403@gateway/web/freenode/ip.14.139.196.3] has joined #shogun06:52
-!- _satya [0e8bc403@gateway/web/freenode/ip.14.139.196.3] has quit [Quit: Page closed]07:01
-!- witness [uid10044@gateway/web/irccloud.com/x-ajfpzjfgtpbzkofp] has joined #shogun07:50
-!- saurabh7 [~saurabh@119.82.125.220] has quit [Ping timeout: 240 seconds]09:32
-!- witness [uid10044@gateway/web/irccloud.com/x-ajfpzjfgtpbzkofp] has quit [Quit: Connection closed for inactivity]09:58
-!- HeikoS [~heiko@host86-129-231-92.range86-129.btcentralplus.com] has joined #shogun10:01
-!- mode/#shogun [+o HeikoS] by ChanServ10:02
@HeikoSlisitsyn:  jojo10:04
@HeikoSwiking: jo10:05
@wikingjopo10:08
@wiking```5||0.0210556|11815||||0.002|??10:14
@wiking6||0.0194817|13388.41||||0.002|??```10:14
-!- saurabh7 [~saurabh@123.201.135.20] has joined #shogun10:15
@HeikoSwiking: do you have thoughts on how to deal with raw arrays?10:26
@HeikoSsince tags currently doesnt support that10:26
@HeikoSlisitsyn suggested introducing Array<T>10:27
@wikingmmm the probem with the thing is10:27
@wikingthat10:27
@HeikoSthen we can replace all DynamicObject* stuff and all raw vectors with that10:27
@wikingon one hand it'd be great that we coudl use std10:27
@HeikoSand it just wraps std:: insode10:27
@wikingwell10:27
@HeikoSbut we can add API to it that the tags framework uses10:27
@wikingthe problem with std is10:27
@wikingthat you cannot wrap10:27
@HeikoSlike ::clone and ::equals10:27
@wikingso either you use std all the way10:27
@HeikoSI see10:28
@wikingor you will have to copy memory10:28
@HeikoSI s10:28
@wikingas you cannot give std::vector or std::array10:28
@wikinga double*10:28
@HeikoSah yes10:28
@wikingand tell that look just wrap this10:28
@HeikoSthat was the problem mike had?10:28
@wikingbut you can always do the other way aroudn10:28
@wikingsaying10:28
@wikingwe use std::vector/array10:28
@wikingand if we ever need the *10:28
@wikingwe can say std::vector.data()10:29
@wikingi mean i would actually10:29
@wikinggo for std::vector/array for all10:29
@HeikoSso currently the tags thing need a .clone and a .equals10:29
@wikingyeah10:29
@wikingi mean copy ctr exists for both10:29
@wiking:P10:29
@HeikoSbut I guess we can just add another pattern match that uses std::vector::bla10:29
@wikingso cloning them is easy10:29
@HeikoSdoes it deep clone is the question10:29
@wikingit's a real copyctr10:30
@HeikoSmmh10:30
@HeikoSproblem really is recursive stuff10:30
@HeikoSsame for equals10:30
@HeikoSit needs to call equals on elements10:30
@HeikoSso actually10:30
@HeikoSwe cannot just match an existing metho10:30
@HeikoSwe need to modify10:30
@HeikoScan we overload std::vector maybe?10:30
@wikingsee here10:30
@HeikoSi.e. I inherit and add my custom stuff?10:30
@wikinghttp://en.cppreference.com/w/cpp/container/vector/vector10:30
@wikingmmm ugly10:31
@wikingbuuut10:31
@wikingsorry i have to drop off for 30 mins10:31
@HeikoSok10:31
@wikinga guy is waiting for me10:31
@wikinggonna be back after10:31
@HeikoSno worries10:31
@wikingand try to pick up from there ok?10:31
@HeikoScan discuss later10:31
@HeikoSlisitsyn: you around?10:31
-!- travis-ci [~travis-ci@ec2-54-145-187-213.compute-1.amazonaws.com] has joined #shogun10:59
travis-ciit's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/32937731511:00
-!- travis-ci [~travis-ci@ec2-54-145-187-213.compute-1.amazonaws.com] has left #shogun []11:00
shogitter(geektoni) HeikoS: hello hello, how's going? I'm seeing big things happening here ;)11:02
@HeikoSshogitter: jojo11:02
@HeikoSyes some stuff going on :)11:03
@HeikoShow are things for you?11:03
shogitter(geektoni) I just moved to Edinburgh for my university semster11:03
shogitter(geektoni) I had a very busy period11:03
@HeikoSah cool11:04
@HeikoSyou are closer to me then11:04
@HeikoShow do you like it up there?11:04
shogitter(geektoni) ahah yeah sort of11:04
shogitter(geektoni) well, it's a nice place actually :)11:04
shogitter(geektoni) one downside is that the sun sets at 16:3011:05
@HeikoSyes11:05
@HeikoSthough that changes now11:05
shogitter(geektoni) what do you mean? because of spring?11:06
@HeikoSyes11:06
@HeikoSlong days in summer11:06
shogitter(geektoni) ah yeah, of course11:07
@wikingback11:07
shogitter(geektoni) wiking: hello ;)11:07
@wikingyelloooow11:08
@wikinghow's the castle ?:) still there? :D11:08
shogitter(geektoni) wiking: the castle is quite nice. However, I've seen it only from the outside11:09
shogitter(geektoni) how's going in Zurich? ;)11:09
@wikingwindy11:09
@wikingbut warm11:09
@wikingi dont know11:09
@wikingi moved here for the winter11:09
@wikingnow i have 10+11:09
@wikingand sun11:09
@wikingwtf :D11:09
shogitter(geektoni) ahaha11:10
shogitter(geektoni) climate change man11:10
@HeikoShehe11:10
@wikingi'll ask trump11:11
@wikingwhat's up with this11:11
shogitter(geektoni) There was a snow storm here in Edinburgh this morning11:11
@HeikoSwiking: you done?11:11
@HeikoShahaha11:11
@HeikoSnice toni11:11
@HeikoSstay warm11:11
@wikingHeikoS, yes11:11
@wikingi'm back11:11
shogitter(geektoni) ahaha I hope to survive Scotland's winter11:11
@wikinggeektoni a friend of mine live in aberdeen... he makes some awesome hikes up there :)11:12
@wikingHeikoS, ok so where were we?11:12
@wikingah the array11:12
@HeikoSwiking: so here is a thought11:13
@HeikoSwe dont actually need to pass * to the Array11:13
@wikingi mean on the other hand having Array<> should give you the flexibility that you can do whatever... you can wrap a std:::vector inside there or whatever u want11:13
@HeikoSif we had an array<T> class that wraps a std::vector11:13
@wikingok so we are talking about the sme11:13
@wiking*same thing11:13
@wiking:>11:13
@HeikoSthis is the object registered with the tags11:13
@HeikoSbut one has access to the std::vector inside11:14
@wikingyeah or the *11:14
@wikingor whatever11:14
@wiking:)11:14
@wikingi mean it should just be an interface11:14
@wikingnothing more11:14
@wiking:)11:14
@HeikoSyep11:14
@wikingthen it can be11:14
@HeikoSall it does is using any_detail namespace stuff to compare/clone11:14
@wikingStdArray11:14
@wikingor whatever implementation11:14
@wiking:)11:14
@HeikoSyep11:14
@wikingsure sure11:14
@wikingbut11:14
@wikingthen i guess11:14
@wikingwe wanna get rid of the SGVector/String stuff11:14
@wikingor?11:15
@wikingi mean Array would just let us drop all that stuff11:15
@wikingno?11:15
@HeikoSI think we would keep SGVector11:15
@HeikoSthat is fixed size vector for basic types11:15
@HeikoSSGString will be merged with SGVector11:15
@HeikoSand SGArray (or whatevername) is dyamic size array for anything11:15
@HeikoSi.e. can grow11:16
@HeikoSreplaces dynamicobjectarray etc11:16
@wikingmmm11:16
@wikingSGVector can grow :P11:16
@wiking:)11:16
@wikingvoid resize_vector(int32_t n);11:16
@HeikoStrue11:16
@wikingso if you wanna make it fixed size11:16
@wikingthen start throwing out functionality to resize11:17
@wikingand have it like std::array11:17
@wikingthat is a fixed size array11:17
@HeikoSactually11:17
@wiking"std::array is a container that encapsulates fixed size arrays.11:17
@wiking"11:17
@wiking:)11:17
@HeikoSnothing prevents us from using std::vector as an interface for anything11:17
@HeikoSincluding numerical stuff11:17
@HeikoSmmh11:18
@HeikoSI mean currently SGVector's T can only be basic types11:18
@HeikoSputting CSGobject in there makes things break11:18
@HeikoSthat would be different for the Array11:18
@wikingyeah but11:19
@HeikoSBUT array can also handle basic on the other hand11:19
@wikingHeikoS, but this is all about11:19
@wikingthe hack i did11:19
@wikingin DynamicObjectArray11:19
@wikingSerializable11:19
@wikingthat allows u to do both11:19
@wikingarray of SGObject and SGVector/Matrix or any primitive type11:19
@HeikoSdynamicobjectarray is for SGObject subclasses only11:20
@wikingnot anymore11:20
@wiking:)11:20
@HeikoSit does reference counting of its content11:20
@HeikoSreally?11:20
@wikingyeah i mena not in develop11:20
@wikingbut today i'll push it in11:20
@wikingthat removes all the Wrapped* stuff11:20
@HeikoSah11:20
@HeikoSso I tend to think now11:21
@HeikoSthat for the tags stuff, we should rather have a memory wrapper, that is independent of all the vector implementation11:21
@HeikoSit is just something that translates a fixed size array to the tags11:21
@HeikoSnever used, just when registering parameters11:21
@HeikoSbecause it gets too messy otherwise11:22
@HeikoSI mean the whole refactoring of our vectors ... lots of stuff11:22
@HeikoSand independent of the tags11:22
@HeikoSwe need lisitsyn11:24
lisitsynhey11:24
lisitsynwhat's up11:25
@HeikoSlisitsyn: arrays!11:25
@HeikoSlisitsyn: there is lots of arrays registered with the old framework11:25
@HeikoSand we currently cannot register them with tags11:26
lisitsynstruct Array { T* data; size_t size; }11:26
lisitsyn? :)11:26
@HeikoSyes11:26
@HeikoSand then we need some equals/clone stuff11:27
lisitsynsupereasy?11:27
@HeikoSso it recurses into its elements11:27
@HeikoSlisitsyn: when can you do it? :)11:27
lisitsynso you had a q11:27
lisitsynif it should use std11:27
lisitsynI see no std here11:27
@HeikoSyes I agree with that11:27
@HeikoSjust realised it is separate11:27
lisitsynI mean it is just plain pointer wrapper11:27
@HeikoSokok11:28
@HeikoSthat solves all the raw pointer arrays in tags11:28
@HeikoSlisitsyn: wanna send a patch?11:28
lisitsynintroducing array?11:28
lisitsynyeah i could11:28
@HeikoSlike now?11:29
@HeikoSit is a blocker for me :D11:29
lisitsynHeikoS: not sure if possible now, have to do something :(11:33
@HeikoSlisitsyn: ok I will do gsoc stuff then11:33
@HeikoSlisitsyn: need to apply11:33
lisitsynyeah11:33
@HeikoSlisitsyn: would be cool to get that guy in soon though11:33
@HeikoSbecause right now11:33
@HeikoSthings are broken in develop ;)11:33
lisitsynwhat's broken?11:34
@HeikoSequals11:34
lisitsynwhY?11:34
@HeikoSnone of the arrays are registered with tags and therefore ignored in equals11:34
lisitsynF???11:34
lisitsynI was trying so hard to not break everything11:34
@HeikoSI only realised this when writing the clone stuff11:35
lisitsynand then you came with your clone and broke!!!!!11:35
lisitsyn:D11:35
@HeikoSclone is not even merged :)11:35
@HeikoSgood thing is the build is still green :D11:35
lisitsynah11:35
lisitsynok11:35
lisitsynbecause if it is not I would be having11:35
@HeikoSbut this is simply because we have no coverage11:35
lisitsynlike hard time realizing if my patch works11:35
lisitsyn:)11:35
lisitsynok ok11:36
@HeikoSit is tricky11:36
lisitsynHeikoS: let me try to add that array today11:36
lisitsyntonight11:36
@HeikoShave no tests to make sure equals returns false11:36
@HeikoSonly lots of tests that ensure it returns true11:36
lisitsynah11:36
lisitsynok11:36
@HeikoSand if you remove parameters, you introduce wrong TRUEs rather than wrong FALSEs11:36
@HeikoScool man, cheers! will get back to that tomorrow11:36
@HeikoSlisitsyn: you have another minute?11:37
lisitsynyes11:37
@HeikoSwiking and I were just thinking about this11:37
@HeikoSwhy not replace *all* array stuff in shogun with a simple wrapper for std::vector11:37
lisitsynArray11:37
lisitsyn<T>11:37
lisitsyn:)11:37
@HeikoSlike SGVector, SGString, DymamicObjectArray etc11:37
lisitsynwell11:38
lisitsynthey're just the same yes11:38
lisitsynI think having them inherited from some Array<T> is the first step11:38
@HeikoSI am a bit unsire about merging SGVector and the rest .. since it is for linalg, but on the other hand ....11:39
@HeikoSlisitsyn: sure that is the "no break things" approach11:39
@HeikoSwould Array<T> be a SGObject subclass?11:39
@HeikoSI don't think actually11:39
lisitsynno11:39
@HeikoSlisitsyn: cool, I am eagierly awaiting your array patch :D11:41
@HeikoSwill apply to gsoc in the meantime11:41
lisitsynok11:41
lisitsynHeikoS: we should look at https://github.com/facebook/folly/tree/master/folly to see how library should look like11:41
lisitsyn:)11:41
lisitsynand https://github.com/abseil/abseil-cpp11:42
@HeikoScool will have a look11:42
lisitsynHeikoS: e.g. https://github.com/abseil/abseil-cpp/blob/master/absl/types/span.h11:43
@HeikoSnice!11:44
@HeikoSwiking: ^11:44
@wikingy0p-11:44
@wikingfolly fuck11:44
@wikingfooooollyyy11:44
@wikingi used folly11:44
@wikingnice11:44
@wikinggood11:44
@wikingapart from the fact11:44
@wikingthat the future is not testable11:44
@wiking:D11:44
@HeikoSlook at the tricks: https://github.com/abseil/abseil-cpp/blob/master/absl/types/span.h#L8511:44
@wikingso i stopped using it11:44
@HeikoS:)11:44
@wiking:)11:44
lisitsynwiking: yeah that's why I don't want to use it11:45
lisitsynbut gather some ideas11:45
@HeikoSI guess sergey meant more to look at it for getting inspired11:45
@wikingand all in constexpr HeikoS !11:45
@wikinglisitsyn, heheh yeah i mean it's nice11:45
lisitsynthey spent shitload of time thinking about design11:45
@wikinga good library11:45
@wikingbut you know11:45
@wiking"the howls are not what they seem like"11:46
@wiking:>11:46
@HeikoShehe11:46
@wikingso some of those things are not working as one expects11:46
@wiking:)11:46
@wikingbut still11:46
@wikingfolly for c++ is like guava for java11:46
@HeikoSwiking: don't know if you read this but the equals patch broke things that are not covered by tests11:46
@HeikoSwhich makes me think11:46
@wikinghehe11:46
@HeikoSwe have ALL these autogenerated tests11:46
@HeikoSbut non of them did cover the case11:46
@HeikoS=gna!11:46
@wikingHeikoS, you know that there are languages that have equals implemented in them :)11:47
@wikingHeikoS, hehehe yeah :>11:47
@wikingHeikoS, m$ has a some case study about11:47
@wikinghow tests are actually not helping a lot11:47
@wiking:)11:47
@HeikoSyep11:47
@HeikoSI now actually doubt that we need the serialization tests11:47
@wikingnono11:47
@HeikoSin fact just writing a single good test is better11:47
@wikingserialization tests should go11:47
@HeikoSthan all those automated ones11:48
@wikingas soon as cereal is in11:48
@HeikoSthey test empty instances anyways11:48
@wikingas we should trust the cerialization fw11:48
@wikingto do its job11:48
@wiking:)11:48
@HeikoSthis is why the current thing could break11:48
@HeikoSas it just checks that empty.equals(same_type_emtpty_after_deserialization)11:48
@wiking:>11:48
@wikingyep11:48
@HeikoSthe trained model ones are much more useful11:48
@wikingit tests whether we can read and write files11:48
@wiking:)11:48
@wikingi mean it was useful11:48
@HeikoSbut they only cover few classes, and none of them have arrays as parameters11:48
@wikingwhen the serialization FW was buggy11:49
@wikingand internal11:49
@HeikoSbut now e.g. RF is not equal-able11:49
@wiking:)11:49
@wikingreally? :>11:49
@HeikoSyep11:49
@HeikoSyou can clone it11:49
@HeikoSbut equals will tell TRUE even if the array is different11:49
@wikingmon dieu11:50
@HeikoSbut OK, if sergey sends the array patch tonight, I can fix that up tomorrow11:50
@HeikoS(and add tests)11:50
@wikingthis calls for a revolution11:50
@wiking!!!11:50
@HeikoSbut I mean, we can delete those clone_equals tests11:50
@HeikoSjust a single non-trivial manually written one is better11:50
@wikingyep... where's my best shining axe?11:50
@HeikoSand then more trained models11:50
@wikingi wanna cut it!11:50
@HeikoShehe11:50
@HeikoStrained models is what we care about anyways11:51
@wikingbbl11:51
@wikinggotta run out11:51
@wikingsorry11:51
@HeikoSok see ya11:51
-!- viveknayak2210 [73f81a3d@gateway/web/freenode/ip.115.248.26.61] has joined #shogun13:18
-!- viveknayak2210 [73f81a3d@gateway/web/freenode/ip.115.248.26.61] has quit [Client Quit]13:22
@HeikoSwiking, lisitsyn, applied to GSOC, pls check your email14:08
-!- saurabh7 [~saurabh@123.201.135.20] has quit [Quit: Ex-Chat]14:11
-!- HeikoS [~heiko@host86-129-231-92.range86-129.btcentralplus.com] has quit [Quit: Leaving.]14:27
-!- HeikoS [~heiko@host86-129-231-92.range86-129.btcentralplus.com] has joined #shogun14:30
-!- mode/#shogun [+o HeikoS] by ChanServ14:30
@wikingduuuumdumdu14:33
@wikingm14:33
@wikingit's on14:33
@wiking:)14:33
@wikinggsoc lalala14:33
-!- HeikoS [~heiko@host86-129-231-92.range86-129.btcentralplus.com] has quit [Ping timeout: 256 seconds]14:36
Trixis is there an example on using custom kernels in python?15:06
Trixisthat is one where the kernel function gets defined rather than the kernel matrix set?15:08
@wikingTrixis, yes15:46
@wikingthere is15:46
@wikingand actually in conda releases15:47
@wikingyou should be able to use them15:47
@wikingTrixis, https://github.com/shogun-toolbox/shogun/blob/develop/examples/undocumented/python/kernel_director_linear.py15:47
Trixischeers15:47
@wikingdirector kernels are turned on15:47
@wikingi mean director classes15:47
@wikingare turned on by default since 6.1.3 in python15:47
Trixiskk16:08
Trixiswiking: i can make the directorkernel take string vectors, right?16:09
Trixis(basically i just want the kernel to fetch the result from a dataframe)16:09
Trixisso i need keys16:10
@wikingTrixis, https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/kernel/DirectorKernel.h16:17
@wikingits just this16:18
@wikingit should be able to get any sorts of features16:18
Trixisah i see16:19
-!- iamXXX [2a684d92@gateway/web/freenode/ip.42.104.77.146] has joined #shogun18:11
iamXXXHi there!!!18:11
iamXXXThis is gong to be my first open source development experience, so I want to know how can I contribute?18:12
@wikingiamXXX, hi! :)and welcome18:18
@wikingthere's a full explanation about this18:18
@wikingin our wiki18:19
iamXXXwiking thanks, I read it whole, and just to confirm, I have to solve some issues with tag "good first issue" and then send the required patch18:26
@wikingyes18:26
iamXXXthen I have to explore past years projects and to see whether I can do something more creative with them, and send a proposal?18:27
iamXXXand what does it mean to send a patch? Like pull-request?18:27
@wikingyes pull request18:30
iamXXXthese issues are like tickets right? How can I assign 1-2 issues to me so that I can get required time to solve it?18:35
iamXXXCan I contribute in any way in python??18:41
iamXXXbecause I have studied ML for past 3-4 months and implemented in python18:42
iamXXXso I have a good hold on it18:42
iamXXXplease help19:23
-!- iamXXX [2a684d92@gateway/web/freenode/ip.42.104.77.146] has quit [Quit: Page closed]19:50
-!- HeikoS [~heiko@host86-129-231-92.range86-129.btcentralplus.com] has joined #shogun21:19
-!- mode/#shogun [+o HeikoS] by ChanServ21:19
@HeikoSlisitsyn: araaaaays :)21:52
-!- saiprasanth [76b9ec02@gateway/web/freenode/ip.118.185.236.2] has joined #shogun21:56
saiprasanthhello eveyone, i'm new to shogun. I have a basic knowledge of python,an intermediate knowledge of calculus and linear algebra and a good knowledge of DSA. Could someone help me get started22:02
-!- HeikoS [~heiko@host86-129-231-92.range86-129.btcentralplus.com] has quit [Ping timeout: 276 seconds]22:06
-!- saiprasanth [76b9ec02@gateway/web/freenode/ip.118.185.236.2] has quit [Ping timeout: 260 seconds]22:56
--- Log closed Wed Jan 17 00:00:23 2018

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