IRC logs of #shogun for Thursday, 2018-11-29

--- Log opened Thu Nov 29 00:00:22 2018
-!- witness [uid10044@gateway/web/irccloud.com/x-jucdwzctntkscizw] has joined #shogun05:58
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has joined #shogun10:14
-!- mode/#shogun [+o HeikoS] by ChanServ10:14
@HeikoSlefteris: hi10:54
lefterishello10:54
@HeikoSlefteris: sorry I was unavailable the last few days10:55
@HeikoSjust checking the updates on your pr10:55
@HeikoSthere is this issue with the enums10:56
lefterisNo problem. I am checking other stuff in the shogun to get a feel how things work. I will soon push the minkowski distance meta example.10:56
lefterisThe enum issue is I believe a problem with the auto generation of the examples.10:56
@HeikoSlefteris: in what sense?10:57
lefterisin the case of generating cpp examples the enums are converted to int10:57
@HeikoSyes10:57
lefterisIf you pass the enum converted to int to a factory then it works fine but if you pass the enum to a class then there is a problem10:58
lefterisbecause the class constructor expects a enum type and not an int10:58
@HeikoSyes10:59
@HeikoSlefteris: there are reasons for this10:59
@HeikoSthey have to do with java and c# interfaces10:59
@HeikoSand the way swig generates enum constants10:59
@HeikoSand type safety10:59
lefterisyes, I tried to make some changes yesterday and could not make the java examples work11:00
@HeikoSand then the way the type dispatching within "put" works11:00
@HeikoSand this casting the enums to int in cpp makes the enum example work11:00
@HeikoS(as well as all the other examples we have so far)11:00
lefterismaybe the way I wrote the example is problematic11:00
lefteris?11:01
@HeikoSyou are talking about the char feature example?11:01
lefterisyes11:01
@HeikoSlet me check11:01
@HeikoSbtw11:01
@HeikoSenum class also had a problem11:01
@HeikoS(I just cannot remember what it was)11:01
@HeikoSI tried that11:02
@HeikoSmmh11:02
@HeikoSone thing that is a problem is the huge refactoring effort11:02
lefterisyeah and I am not sure if they are going to make changes to the new compiler versions. That is why I pushed a problematic PR so you can help me with that11:02
@HeikoSyeah definitely good idea11:03
@HeikoSah!11:03
@HeikoSok so11:03
@HeikoShttps://github.com/shogun-toolbox/shogun/pull/4423/files#diff-f02a7e184cd89a2eb90e74b280d12620R411:03
@HeikoSthis is the reasoning:11:03
@HeikoSthe casting to int does not work with constructors that expect an enum11:03
lefterisyes11:04
@HeikoSas some languages are type safe11:04
@HeikoSbut11:04
@HeikoSwe actually want to get rid of all constructor calls11:04
@HeikoSthat might sound a bit crazy at first, but it has some reasons11:04
@HeikoSthat have to do with swig and modularizing the library11:04
@HeikoScheck out almost all the other meta examples11:05
lefterisok, I understand11:05
@HeikoSdont have any ctor calls11:05
@HeikoSbut rather use put11:05
lefterisyes, I saw that11:05
@HeikoSand put has a dispatcher for the enums11:05
@HeikoSlet me try to find it11:05
lefterisok thanks11:05
@HeikoScheck out LibLinear.cpp:6211:07
lefterisok11:07
@HeikoSyou see something like SG_ADD( (machine_int_t*) solver_type, ... )11:07
@HeikoSthis registers the class field without the parameter framework (macro is in SGObject.h, but details can be ignored for now)11:08
lefterisok11:08
@HeikoSwhen the field is registered, one can access with via "put"11:08
@HeikoSbut only with the *exact* type11:08
@HeikoSso put(my_enum) wont work11:08
@HeikoSgives a runtime error11:08
@HeikoSbut put(my_machine_int) works11:08
lefterisok i see11:09
@HeikoSif you check the swig code for java/csharp11:09
@HeikoSyou will see that it translates enums to ints11:10
@HeikoSso a call put(my_enum) from swig java will actually be a put(int)11:10
@HeikoSso in order to unify the meta example api, we cast to machine_int in cpp11:10
lefterisok11:10
@HeikoSat the expense of not being able to call ctors/methods that expect an enum11:11
lefterisi see11:11
@HeikoSbut since we are aiming to instantiate classes using factories, that is no problemo11:11
@HeikoSeventually, we plan to hide all but the base classes from swig11:11
@HeikoSto make compilation faster11:12
lefterisyes11:12
@HeikoSso from the interfaces we only see11:12
@HeikoSFeatures11:12
@HeikoSMachine11:12
@HeikoSKernel11:12
@HeikoSetc11:12
lefteristhere is line 98 in factory.h11:12
@HeikoSbut not11:12
@HeikoSDenseFeatures11:12
@HeikoSGaussianKernel11:12
@HeikoSyes that is a factory that was added for another string example11:12
lefterisDo you remember this example?11:13
@HeikoSsure let me check11:13
lefteristhanks11:13
lefterisI tried to use string_features but I got an error - I don't remember now what was it. However, I will try to do that again11:14
@HeikoSwas added here: https://github.com/shogun-toolbox/shogun/pull/434511:15
lefterisok thanks11:15
@HeikoSwuwei[m]: are you here?11:16
@HeikoSwuwei[m]: did you end up using the string_features factory ever?11:16
@HeikoSI canont find an example where this is used11:16
lefterisYeah, I could not find too. I will try to use that and update the PR.11:17
@HeikoSlefteris: you stepped into a bit of a mess there with those enums ;)11:17
@HeikoSlefteris: you can always add another factory (if it makes sense and solves your problem)11:17
@HeikoSadding string features to the new api is definitely a challenge but something that we need to do11:17
lefterisNo problem. It's good think to find difficulties so we can fix them11:18
@HeikoSyep11:18
@HeikoSwe want to get rid of the type StringFeatures in the examples eventually11:18
lefterisCan I ask about the procedure of adding integration test data?11:18
@HeikoSso this means we also dont want to add class specific calls such as this one11:19
@HeikoShttps://github.com/shogun-toolbox/shogun/pull/4423/files#diff-f02a7e184cd89a2eb90e74b280d12620R1711:19
@HeikoSinstead, you would use a "get" call11:19
lefterisok no problem I will work on that11:19
@HeikoSStringFeatures.cpp:1720 shows you waht is registered11:20
@HeikoSand then if something is not registered, but computed11:20
@HeikoSsay11:20
@HeikoSreturn_t my_object:compute_something11:20
@HeikoSbut this method is not part of the base class11:20
@HeikoSthen we have a neat little trick11:20
@HeikoSwhere one can register a method to be accessible via "get"11:20
@HeikoSlefteris: check this PR how to use it11:21
@HeikoShttps://github.com/shogun-toolbox/shogun/pull/435811:21
@HeikoSlefteris: integration data?11:22
lefterisyes, I updated the minkowski intergation test data. I have a PR in the shogun-data repo11:22
lefterisso11:23
lefterisif you merge this PR then I have to pull the changes in the submodule in the shogun repo and then add the new example?11:23
@HeikoSso the commit you put into data has a hash11:24
lefterisand create a PR to the shogun repo11:24
@HeikoSsince you have sent a PR with it, github "knows" the hash now11:24
@HeikoSnow in the develop repo11:24
@HeikoSyou commit "data"11:24
@HeikoSwhich defines which hash of the data submodule to use11:24
@HeikoSso the way it works is you11:24
@HeikoS1, send data PR11:25
@HeikoS2. send main PR11:25
@HeikoS3. we wait for CI (currently down, but it would usually run the tests with the updated data hash)11:25
@HeikoS4. we merge data11:25
@HeikoS5 we merge main PR11:25
lefterisok11:25
lefterisOne last question - I use ubuntu and I have the issue with the eigenvalues/vectors11:26
@HeikoSah yes11:27
@HeikoSwhich version of ubuntu?11:27
lefteris18.0411:27
@HeikoSI wonder whether we have a buildbot for that ,let me check11:27
@HeikoShttp://buildbot.shogun-toolbox.org:8080/11:28
lefteristhe thing is that based on the library that you use you get different tests failling11:28
@HeikoSwhats the nickname of 18.04?11:28
lefterisBionic Beaver11:28
@HeikoSlefteris: yes, eigensolver implementations are OS dependent11:29
@HeikoSsuper annoying11:29
@HeikoSthe sign changes11:29
lefterisyeah11:29
@HeikoShttp://buildbot.shogun-toolbox.org:8080/#/builders/2711:29
@HeikoSbut we have a green test build for  it11:30
@HeikoSwhat test is it?11:30
@HeikoSmmh11:30
@HeikoSno wait11:30
lefterisconverter-diffusionmaps11:30
lefterispipeline-pipeline11:30
@HeikoShttp://buildbot.shogun-toolbox.org:8080/#/builders/41/builds/7211:30
lefteristhese two fail for me11:30
@HeikoSthis is it11:30
@HeikoSI'd say for now, just don't worry about them11:31
@HeikoSthey are troublemakers11:31
@HeikoSyou see that our bioni build doesnt even compile11:32
lefterisyeah i thought so. Maybe using intel MKL will change that.11:32
lefterisok. thank you Heiko for the help. things are clearer now11:33
@HeikoSyes the errors are definitely coming from lapack calls11:33
@HeikoSand we have been messing around with using MKL by default last year11:33
@HeikoSneeds some love11:33
@HeikoSwe are a bit undermanpowered atm11:33
@HeikoSI hope that wiking manages to get the CI back up running11:34
@HeikoSwe moved it to azure cloud which should make many things easier11:34
@HeikoSbut will see11:34
@HeikoSlefteris: let me know how things go with the example11:34
@HeikoSand thanks for the efforts!11:34
wuwei[m]HeikoS: hi11:34
lefterisyes I understand. I am a bit slow now because I still wait for my new computer. I have a 10 years old workstation for now - Dell is slow delivering computers11:35
@HeikoSlol ok11:35
@HeikoSI mostly develop shogun remotely11:35
@HeikoSon some server11:35
wuwei[m]I remember I have a WIP string factory example11:35
@HeikoSwhenever I have access to one11:35
@HeikoSwuwei[m]: but we never merged something?11:35
@HeikoSlisitsyn: are we c++17 already?11:36
@HeikoSor did we not in the end?11:36
lisitsynuhmmm11:36
lisitsynI don't know11:36
@HeikoSlisitsyn: I forgot what we decided in belgrade :D11:36
lisitsyn:)11:36
lisitsynI think it is just fine to go C++1711:36
@HeikoSehehe11:36
@HeikoSI know that11:36
@HeikoSbut what about the others?11:36
@HeikoSI seem to remember that we decided to wait a bit more11:36
wuwei[m]I havn't sent the pr11:36
wuwei[m]I got some issues before11:37
wuwei[m]but let me check11:37
@HeikoSok11:37
lisitsynHeikoS: I think we stick to what latest ubuntu supports11:37
wuwei[m]HeikoS: I was stuck with WeightedDegreeStringKernel11:42
@HeikoSwuwei[m]: ah I see11:42
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has quit [Ping timeout: 240 seconds]11:47
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has joined #shogun13:53
-!- mode/#shogun [+o HeikoS] by ChanServ13:53
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has quit [Ping timeout: 240 seconds]14:06
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has joined #shogun14:59
-!- mode/#shogun [+o HeikoS] by ChanServ15:00
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has quit [Read error: No route to host]15:03
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has joined #shogun15:03
-!- mode/#shogun [+o HeikoS] by ChanServ15:03
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has quit [Ping timeout: 250 seconds]16:24
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has joined #shogun16:25
-!- mode/#shogun [+o HeikoS] by ChanServ16:26
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has quit [Client Quit]16:30
-!- HeikoS1 [~heiko@p4FED5912.dip0.t-ipconnect.de] has joined #shogun16:30
-!- HeikoS1 [~heiko@p4FED5912.dip0.t-ipconnect.de] has quit [Client Quit]16:32
-!- lefteris [836fb90d@gateway/web/freenode/ip.131.111.185.13] has quit [Quit: Page closed]16:34
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has joined #shogun18:36
-!- mode/#shogun [+o HeikoS] by ChanServ18:36
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has quit [Quit: Leaving.]19:07
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has joined #shogun20:12
-!- mode/#shogun [+o HeikoS] by ChanServ20:12
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has quit [Ping timeout: 250 seconds]20:24
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has joined #shogun21:30
-!- mode/#shogun [+o HeikoS] by ChanServ21:30
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has quit [Ping timeout: 240 seconds]22:03
--- Log closed Fri Nov 30 00:00:24 2018

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