IRC logs of #shogun for Tuesday, 2019-04-16

--- Log opened Tue Apr 16 00:00:38 2019
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun03:16
-!- mode/#shogun [+o wiking] by ChanServ03:16
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 268 seconds]03:21
-!- Moatman [~Moatman@pool-96-255-151-151.washdc.fios.verizon.net] has quit [Read error: Connection reset by peer]03:32
-!- Moatman [~Moatman@pool-96-255-151-151.washdc.fios.verizon.net] has joined #shogun03:34
-!- Moatman [~Moatman@pool-96-255-151-151.washdc.fios.verizon.net] has quit [Read error: Connection reset by peer]04:05
-!- Moatman [~Moatman@pool-96-255-151-151.washdc.fios.verizon.net] has joined #shogun04:07
-!- sighingnow [~sighingno@2001:da8:203:81:1c3a:5657:47d3:aafb] has joined #shogun05:03
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun05:43
-!- mode/#shogun [+o wiking] by ChanServ05:43
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection]07:30
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun07:40
-!- mode/#shogun [+o wiking] by ChanServ07:40
-!- Moatman [~Moatman@pool-96-255-151-151.washdc.fios.verizon.net] has quit [Remote host closed the connection]08:45
-!- gf712 [90520815@gateway/web/freenode/ip.144.82.8.21] has joined #shogun08:51
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection]09:26
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun09:37
-!- mode/#shogun [+o wiking] by ChanServ09:37
gf712wiking: ping10:53
@wikingpong10:53
gf712wiking: do you know what the error in the CI is about?10:54
gf712I got the same after pushing some code  yesterday in a PR10:54
@wikingwhere which10:54
@wikingdunno what excatly you are talking about :)10:54
gf712wiking: https://dev.azure.com/shogunml/shogun/_build/results?buildId=121010:55
@wikingah no idea10:55
gf712on the develop branch10:55
gf712hmm seems like UB to me10:55
gf712but I can't replicate locally10:56
@wikingdunno what caused this10:56
@wikingi'm trying to add move ctor to sgobj10:57
gf712hmm but isn't it trivially moveable?11:16
@wikingunique11:29
@wiking:)11:29
@wikingthat is self and param obs list11:29
@wikingi mean i had to add to unique the support for moving things (i.e. rvalue support)11:30
gf712ah I see11:36
gf712btw why not use unique_ptr?11:36
@wikingdontask11:39
@wikinggf712 i guess the idea was to add swig wrapper11:40
@wikinggf712: btw you worked on swig python extensions11:40
@wikingso i'm having trouble atm with this11:40
@wikinghttps://github.com/shogun-toolbox/shogun/pull/4573/files#r27566673011:40
@wikingalthough this looks like this in the generated code11:41
@wiking__setstate__(CSGObject *self, PyObject*state){ .... self = obj.get();}11:42
@wikingwhen i do this with python11:42
@wikingand then do print(obj)11:42
@wikingbasically it's an empty object of type obj11:42
@wikingwhich is weird as this would just set the pointer to somewhere else or?11:43
gf712obj.get()->to_string() returns what expect>11:48
gf712?*11:48
gf712or obj->to_string()11:48
@wikingok so that is the right obj11:49
@wikingso the deser part works good11:49
@wikingif i change11:49
@wikingself = obj.get();11:49
@wikingto *self = std::move(*obj.get());11:50
@wikingthen actually i've got to the point that the right param map is in it11:50
@wikingbut i dont see the point doing this actually :D11:50
@wikingand even more funny11:51
gf712*obj.get() ?11:51
@wikingyes because it's a ptr11:51
@wikingright? :)11:51
gf712what is the order of resolution?11:51
gf712oh right11:51
gf712but *obj.get() dereferences obj and then calls get of the pointer?11:51
@wikingno11:51
@wikingbut anyhow11:51
gf712ah ok11:51
@wikingdont get hanged on things11:51
@wikingthat are not important11:52
@wiking:)11:52
@wikingso say that i have managed to move the object (and setting the pointer is not working... dunno why that should actually work instead of moving)11:52
@wikingeven in this case11:52
@wikingi get11:52
@wikingSystemError: [ERROR] In file /home/wiking/shogun/src/shogun/machine/Machine.cpp line 54: SVMLight@0x5572feb21510: No labels given11:52
@wikingwhich is then WTF11:53
@wikingbecause11:53
@wikingthis is the output of to_string:11:53
@wikingSVMLight(C1=2,C2=2,custom_kernel=null,data_locked=false,epsilon=1e-05,kernel=GaussianKernel(...),kernel_backup=null,labels=BinaryLabels(...),linear_term=Vector(0): [],m_alpha=Vector(16): [-2,-2,-2,-2,-2,-2,-2,-2,2,2,2,2,2,2,2,2],m_bias=-0.0305009,m_svs=Vector(16): [0,1,2,3,6,7,8,9,10,11,13,14,15,16,17,18],max_train_time=0,mkl=null,nu=0.5,objective=-22.8759,qpsize=41,solver_type=ST_AUTO,store_model_features=false,svm_loaded=false,tube_epsil11:53
@wikingon=0.01,use_batch_computation=true,use_bias=true,use_linadd=true,use_shrinking=true)11:53
@wikingas you can see labels is actually set11:54
@wikingalthough!!!11:54
@wikingfunny enough11:54
@wikingif i call svm.get_labels()11:54
@wikingthen that's a null11:54
@wiking:D11:54
@wikingso the error is correct11:54
@wikingthe param map is there11:54
@wikingso wtf :D11:55
@wikingand even better even the C1 if i get it with get_C1() it's the default 111:56
@wikinginstead of 211:56
@wikingbut of course if i do svm.get("C1") then = 211:56
@wikingso the whole thing went totally inconsistent11:56
@wiking:D11:56
@wikingso i guess doing a simple this->self = std::move(orig.self) is not enough11:59
@wikingand actually things need to be put manually11:59
@wiking:S11:59
@wikingsince the referenced object members are not set :)12:00
@wikingthey are still pointing to the old self12:00
@wikingthere's no explanation for this12:00
@wikingso anyhow... it's shitty :)12:05
gf712wiking: i don't get it... because the to_string uses the map?12:05
@wikingyes12:05
@wikingit uses visitor12:05
@wikingthat is self->map12:05
gf712yes, and self is moved12:05
@wikingyeah12:06
gf712I don't get it12:06
@wikingany obj parameter12:06
@wikingwith SG_ADD12:06
@wikingis a ref to the self->map....12:06
@wikingright?12:06
@wikingso you have for example12:06
@wikingdouble C112:06
@wikingas an object member12:06
gf712other way no, anything is self->map is a ref to a class member?12:06
@wikingthat is being stored as a ref in self->map12:07
gf712yes12:07
@wikingso then12:07
@wikingso say i have an empty object12:07
@wikingSVMLight12:07
@wikingand then if i just do12:07
@wikingreplace the this->self with another object's self12:08
@wikingthe map is gonna be correct12:08
gf712yes, I would expect to be12:08
@wikingbut the actual member variables of SVMLight are not going to be updated12:08
gf712as in this->self->map will be the same map12:08
gf712oh12:08
@wikingthey are still holding the original values12:08
gf712right12:08
@wikingwhich in case of labels = nullptr12:08
@wikingso moving an sgobject is gonna be funny12:09
@wiking:)))12:09
@wikinganyhow12:09
@wikingnow there's a bigger problem12:09
@wikingi have the same problem in java swig12:09
@wikingwith externalizable12:09
@wikingbut there i actually have to work in jvm space12:10
@wikingsooo the current serialization api12:10
@wikingis not the best in this case :)12:10
@wikingcoz there the api is like a factory method12:10
@wikingDeserializer->read() -> SGObject12:11
@wikingargh12:11
gf712wiking: can you move it fine after casting?12:17
@wikingcasting?12:17
@wikingwhat casting?12:17
gf712cast to machine for example12:17
gf712just out of curiosity12:17
gf712but then you can't acmes all members12:18
gf712hmm12:18
gf712not sure how to solve thatn12:18
@wikingmmm dont thing that has anything to do with anothing12:18
@wiking*anything12:18
@wikingcasging12:18
@wikingbecause the move operator is atm in CSGObject12:18
@wikingnot in Machine12:18
@wikingor else...12:18
gf712yes12:18
@wikingif i wanna change more stuff12:18
@wikingi mean support move for CMachine12:18
gf712but you can't move the class members because you are operating on the base class right?12:18
@wikingthen i need to define that as well12:19
@wikingyes12:19
gf712but yea, you would have to cast to the correct class back12:19
gf712and then move it12:19
gf712right?12:19
@wikingyeah but this is getting way to crazy12:21
gf712yea, I know, was just wondering if that works12:22
-!- wuwei[m] [wuweilinma@gateway/shell/matrix.org/x-yggstkvhbmmossoq] has joined #shogun13:48
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection]15:02
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun15:04
-!- mode/#shogun [+o wiking] by ChanServ15:04
-!- ussdd95[m] [ussdd95mat@gateway/shell/matrix.org/x-zdielqxkyaugodwj] has joined #shogun15:05
-!- besser82 [~besser82@fedora/besser82] has quit [Quit: Freedom, Friends, Features, First [fedoraproject.org]]15:29
@wikinggf712: plz narrow your -j to 8-10 max15:29
@wikingthnx15:29
@wikinggf712: cannot use the machine with -j2415:30
gf712sorry, thought it was cached15:30
@wikingthnx15:31
gf712wiking: there is an issue with the REQUIRE macro15:35
@wikingyey15:35
gf712it seems to cause a segfault15:35
gf712kernel = sg.kernel("GaussianKernel")15:35
gf712kernel.get("a")15:35
gf712terminate called after throwing an instance of 'shogun::ShogunException'15:35
gf712  what():  [ERROR] In file /home/gil/shogun/src/shogun/base/SGObject.h line 1116: Parameter GaussianKernel::a does not exist.15:35
gf712Aborted15:35
gf712but replacing it with an if and then a SG_SERROR works fine....15:36
gf712as in it fails with grace15:36
-!- Moatman [~Moatman@pool-96-255-151-151.washdc.fios.verizon.net] has joined #shogun15:43
-!- besser82 [~besser82@fedora/besser82] has joined #shogun15:53
-!- mode/#shogun [+o besser82] by ChanServ15:53
-!- ussdd95[m] [ussdd95mat@gateway/shell/matrix.org/x-zdielqxkyaugodwj] has quit [Remote host closed the connection]16:06
-!- wuwei[m] [wuweilinma@gateway/shell/matrix.org/x-yggstkvhbmmossoq] has quit [Remote host closed the connection]16:06
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection]16:07
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun16:09
-!- mode/#shogun [+o wiking] by ChanServ16:09
-!- wuwei[m] [wuweilinma@gateway/shell/matrix.org/x-lcojdnvwprsrjxqq] has joined #shogun16:32
-!- ussdd95[m] [ussdd95mat@gateway/shell/matrix.org/x-temggrlukylyjcny] has joined #shogun16:42
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection]16:58
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun17:08
-!- mode/#shogun [+o wiking] by ChanServ17:08
gf712wiking: found the origin of the bug17:12
gf712of REQUIRE17:12
gf712it wasn't require :p17:12
gf712there was a noexcept function throwing an exception17:13
@wiking\o/17:13
gf712but I found an issue with ShogunException17:13
gf712https://wiki.sei.cmu.edu/confluence/display/cplusplus/ERR60-CPP.+Exception+objects+must+be+nothrow+copy+constructible17:13
gf712wiking: exceptions should be nothrow copy constructible17:14
@wikinglets add noexcept and actually make it constexpr17:17
@wiking:)17:17
@wikingShogunException i mean17:17
@wikingalthouh that would mean to put everything in .h17:17
@wikingso just have it noexcept17:17
@wikingi've managed to find amazing bug in an integration test17:18
@wikingassert abs(out[i] - out2[i] < 0.000001)17:18
@wiking:D17:18
gf712loooooooool :D17:18
@wikingi guess u see as well :)17:18
gf712btw ShogunException is noexcept17:19
gf712wiking: the issue is std::string17:19
gf712which is not noexcept17:19
gf712and should be replaced with std::runtime_error17:20
gf712and the copy constructor should go away17:20
gf712and I also added a static_assert like in the link to make sure this is enforced17:20
gf712when an error is thrown using SGIO::error17:20
@wikinggreat17:30
@wikingbtw17:30
@wikingin the patch17:30
@wikingwhy not inherit from std::runtime_error?17:30
gf712it was easier to replace std::string :D17:32
gf712but I can change it to inherit from runtime_error17:32
@wiking:D17:32
@wikingdamn i've managed to uncover more serialization problems :S17:33
gf712does the rabbit hole continue?17:35
@wikingyep17:36
@wikinggets deeper and deeper17:36
@wikingbut lets see17:36
@wikingmaybe this is the last push that i need to do17:37
@wikingso then deadbeef should be mergable17:37
gf712haha famous last words :D17:37
@wikingheheh yeah17:37
@wikingbut the factory thing is merged17:37
@wikingso small win but that's cool17:37
gf712yea I saw17:37
@wikingand we shouldnt leak anymore17:37
gf712so no more leaks?17:37
gf712cool17:37
@wiking(or at least not that crazy)17:37
gf712yea, there were always at least as many leaks as factory calls :D17:38
@wikingindeed :)17:38
@wikingthat should be cool now17:38
gf712should get a valgrind check running17:38
@wikingyeah17:38
@wikingthere was a nightly job17:38
gf712on CI?17:38
@wikingnot on CI17:38
@wikingbut on buildbot17:38
@wikingneed to get buildbot back and working nnicely17:38
@wiking:)17:38
gf712is CI overkill?17:39
@wikingyeah17:39
@wikingnightly was good enough17:39
@wikingdont want to check it like every pr/push17:39
gf712yea, can work on that when you're at the ati17:39
gf712because I have no idea how to use it17:39
gf712and would be good to learn17:39
gf712anyway I'm off17:39
gf712ttyl17:39
@wikingttyk17:40
@wikingl17:40
-!- gf712 [90520815@gateway/web/freenode/ip.144.82.8.21] has quit [Quit: Page closed]17:40
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection]17:46
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun19:23
-!- mode/#shogun [+o wiking] by ChanServ19:23
-!- durovo [~durovo@a3.c8.2fa9.ip4.static.sl-reverse.com] has joined #shogun19:47
-!- durovo3 [~durovo@99.b3.3da9.ip4.static.sl-reverse.com] has quit [Remote host closed the connection]19:47
-!- HeikoS [~heiko@87.pool85-48-187.static.orange.es] has joined #shogun19:51
-!- mode/#shogun [+o HeikoS] by ChanServ19:51
@wikingHeikoS: yo20:20
@wikingi have a q20:20
@HeikoSyo20:20
@HeikoSI am just writing a project proposal for this GSoD20:20
@wikinghave u seen a case when obj.equals(obj2) is true20:20
@wikingbut20:20
@wikingit does not produce the same output20:20
@wiking:D20:20
@HeikoSsame output = ?20:20
@HeikoSa machine?20:20
@wikingwell as a matter of fact its a machine20:20
@HeikoSah ok20:20
@HeikoSyeah20:20
@HeikoSI have20:20
@wikingso yeah machine.apply() is getting different stuff20:20
@HeikoSwhen parameters were not registered20:20
@wikingwhich scenario?20:21
@HeikoSso they were skipped in equals20:21
@wikingyeah i'm suspecting the same20:21
@wikingor that there's a random somewhere20:21
@HeikoSyes that is the other case I can think of20:21
@wikingalthough, it worked with the old serialization fw20:21
@HeikoSalthough not sure we have such a machine?20:21
@wikingso random should not be the case20:21
@HeikoSah ok20:21
@HeikoSyeah so then missing registration20:21
@wikingit's a legacy python stuff20:22
@HeikoSah I see20:22
@HeikoSwhich machine?20:22
@wikingsvmlight20:22
@wikingwith combinedfeatures/kernels20:22
@HeikoSah20:22
@wikingwhere stringkernels are being lalala20:22
@wikinganyhow... some things it revealed that were correct20:22
@wikingbut now i'm like ok20:22
@HeikoScombined kernel is that handled correctly with new params20:22
@wikingequals is equals20:22
@HeikoSit had a raw array iirc20:22
@wikingso something is not registered then20:22
@HeikoSyeah20:23
@HeikoSthere are calls20:23
@HeikoSm_parameters->add in there20:23
@wikingthis is the last haxor i have to fix for deadbeef20:23
@wiking+ pipeline serialization20:23
@HeikoSah wait20:23
@HeikoSit is also watched20:23
@wikingyeah20:23
@wikingstuff are watched there20:23
@wikingso that's why i'm now going through20:23
@HeikoSnot sure20:23
@wikingwhat is what20:23
@HeikoSprobably some detail20:23
@HeikoSbut that is the only reason I can think of20:24
@HeikoScool that the deadbeef is almost alive :)20:24
@wikingyeah20:24
@wikingi'm not sure20:24
@wikingif we want support of pipeline20:24
@wikingto be added as SG_ADD20:24
@wikingi mean std::variant20:24
@wikingas currently clone works20:24
@wikingand if i override serialization interface20:24
@wikingthen that'd work as well20:24
@wikingi guess the 'only' advantage there20:25
@wikingis param search no?20:25
@wiking(SG_ADD(variant))20:25
@wikingwhich is huge :)20:25
@wikingbut currently i dont see a good way extending any with variant support20:25
@HeikoSmmmh20:27
@HeikoSyeah model selection doesnt work if it is not registered20:27
@wikingthere is an .equals on the old parameter fw?20:27
@HeikoSI mean we want to clone/equals/save or?20:27
@HeikoSthere was20:28
@wikingclone/equals/save can work with overriding functionns20:28
@HeikoSyep20:28
@HeikoSthat is fine imo20:28
@wikingso that's not necessary to register params into the tags20:28
@HeikoSI am not sure in a pipeline we want to auto-learn parameters20:28
@wikingwell20:28
@wikingwould be good20:28
@wiking:)20:28
@HeikoSbut idk how that would play out20:28
@HeikoSyeah of course20:28
@wikingand other fws do it20:28
@wikinganyhow lemme check the equals thing for that20:28
@wikingthat should show me what we dont have registered20:29
@wiking:)20:29
@wikingmmmm Parameter does not have20:29
@wikingonly TParameter20:29
@HeikoSwell that is the issue with using these out-of-shogun concepts like variant20:30
@HeikoSeven though it is better20:30
@HeikoSbut it means problems with the parameter framework20:30
@wikingmmm iut's not outof shougn concept20:30
@wikingit's simple c++1720:30
@wikingit's fully ok to use such thinng20:30
@wiking:)20:30
@HeikoSi agree20:31
@HeikoSbut then no parameters thats what I meant20:31
@wikingAttributeError: 'SwigPyObject' object has no attribute 'get_num_parameters'20:32
@wikingarg20:32
@wikingParameter is not swiged?20:33
@HeikoSnope20:33
@HeikoSiirc there is some stuff in sgobject to interface with the parameters20:34
-!- HeikoS [~heiko@87.pool85-48-187.static.orange.es] has quit [Ping timeout: 246 seconds]20:40
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection]21:02
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun21:09
-!- mode/#shogun [+o wiking] by ChanServ21:09
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection]21:13
-!- wiking [~wiking@c-185-45-237-122.customer.ggaweb.ch] has joined #shogun21:36
-!- wiking [~wiking@c-185-45-237-122.customer.ggaweb.ch] has quit [Changing host]21:36
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun21:36
-!- mode/#shogun [+o wiking] by ChanServ21:36
-!- HeikoS [~heiko@11.pool85-48-187.static.orange.es] has joined #shogun22:39
-!- mode/#shogun [+o HeikoS] by ChanServ22:39
-!- HeikoS [~heiko@11.pool85-48-187.static.orange.es] has quit [Quit: Leaving.]23:20
-!- HeikoS [~heiko@11.pool85-48-187.static.orange.es] has joined #shogun23:20
-!- mode/#shogun [+o HeikoS] by ChanServ23:20
-!- HeikoS [~heiko@11.pool85-48-187.static.orange.es] has quit [Client Quit]23:25
--- Log closed Wed Apr 17 00:00:39 2019

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