| --- Log opened Wed May 31 00:00:53 2017 | ||
| @sukey | Pull Request #3824 "Replace DynArray with std::vector for io module" synchronized by MikeLing - https://github.com/shogun-toolbox/shogun/pull/3824 | 04:06 | 
|---|---|---|
| -!- mikeling [uid89706@gateway/web/irccloud.com/x-aehloslmslxbmvge] has joined #shogun | 04:14 | |
| @sukey | Pull Request #3824 "Replace DynArray with std::vector" - https://github.com/shogun-toolbox/shogun/pull/3824 | 04:44 | 
| @sukey | Pull Request #3824 "Replace DynArray with std::vector" synchronized by MikeLing - https://github.com/shogun-toolbox/shogun/pull/3824 | 06:39 | 
| -!- geektoni [~geektoni@93-34-234-212.ip52.fastwebnet.it] has joined #shogun | 08:41 | |
| mikeling | wiking: ping | 08:56 | 
| @sukey | Issue #3825 "The err about python interface" opened by xxnyufengzhe - https://github.com/shogun-toolbox/shogun/issues/3825 | 09:24 | 
| -!- HeikoS [~heiko@p5DDB9F19.dip0.t-ipconnect.de] has joined #shogun | 10:04 | |
| -!- mode/#shogun [+o HeikoS] by ChanServ | 10:04 | |
| -!- iglesiasg [~iglesiasg@217.119.234.214] has joined #shogun | 10:11 | |
| -!- mode/#shogun [+o iglesiasg] by ChanServ | 10:11 | |
| @HeikoS | olinguyen: hi there | 10:17 | 
| @HeikoS | wiking: jo | 10:17 | 
| -!- tctara__ [~quassel@128.199.61.169] has joined #shogun | 10:56 | |
| @sukey | Issue #3825 "The err about python interface" closed by karlnapf - https://github.com/shogun-toolbox/shogun/issues/3825 | 10:57 | 
| @wiking | mikeling, hey | 10:59 | 
| @wiking | HeikoS, ho | 10:59 | 
| @wiking | olinguyen, thnx for the update | 10:59 | 
| @HeikoS | wiking: jojo | 11:00 | 
| @HeikoS | wiking: you have time Friday? | 11:00 | 
| @HeikoS | to talk to Franz? | 11:00 | 
| @wiking | olinguyen TingMiao micmn mikeling dont forget the daylies :) | 11:00 | 
| @wiking | HeikoS, yes yes i replied to the email | 11:00 | 
| @wiking | 11am is good for me | 11:00 | 
| @HeikoS | wiking: ah cool | 11:00 | 
| @wiking | either GMT or CET | 11:00 | 
| @wiking | both are ok | 11:00 | 
| mikeling | wiking: Hey! Did you receive the email yesterday? about the daily report ? | 11:01 | 
| @HeikoS | ok, lets do 11am London time then, I aslo asked Gunnar but this is not too relevant | 11:01 | 
| @HeikoS | mikeling: could you create a google spreadsheet with all the dailies and send all the mentors a link? | 11:01 | 
| @wiking | mikeling, yes it was fine | 11:01 | 
| mikeling | HeikoS: sure | 11:01 | 
| @wiking | mikeling, it's just that we want it every day :) | 11:01 | 
| @wiking | and this was just a gentle reminder | 11:02 | 
| @wiking | you can do it whenever | 11:02 | 
| @wiking | within a day | 11:02 | 
| @wiking | end/beginning | 11:02 | 
| @wiking | whatever is fine | 11:02 | 
| mikeling | wiking: got it ;) | 11:02 | 
| @HeikoS | wiking: so shall I asl numfocus about hackathon money? | 11:02 | 
| @wiking | HeikoS, haven't you already?! | 11:03 | 
| @wiking | :) | 11:03 | 
| @wiking | yes yes you should | 11:03 | 
| mikeling | BTW, Does this comment looks good to you? https://github.com/shogun-toolbox/shogun/pull/3824#issuecomment-305081168 | 11:03 | 
| @wiking | mikeling, lemme check | 11:03 | 
| -!- Netsplit *.net <-> *.split quits: tctara_ | 11:03 | |
| mikeling | ok | 11:03 | 
| @wiking | HeikoS, i mean just be a bit more diplomatic like: we are thinking of... and it was great the last time... sooo if they could allalala | 11:03 | 
| @HeikoS | ok | 11:04 | 
| @HeikoS | wiking: Ill wait until they announce the thing and then do it, good? | 11:04 | 
| @wiking | sounds good | 11:04 | 
| mikeling | HeikoS: For CBinaryLabels and CMultilabelLabels issue, we already have CLabels as base class of all other label classes. Do we need to reconstruct the CLabels we have? | 11:05 | 
| @HeikoS | mikeling: ah yes good point | 11:05 | 
| @HeikoS | wiking: ^ | 11:05 | 
| @HeikoS | so my thoughts are | 11:05 | 
| @HeikoS | -delete all label specialization classes, only keep CLabels, make it not abstract | 11:06 | 
| @wiking | mikeling, yeah you can drop actually DynArray and use everywhere std::vector, or? | 11:06 | 
| @HeikoS | then, put code check value checks and conversions in there | 11:06 | 
| @HeikoS | and the algorithms can call things like "CLabels::use_as_binary()" | 11:06 | 
| @HeikoS | which then converts/checks | 11:07 | 
| mikeling | wiking: yep, I can use std::vector to instead of DynArray in most of places | 11:07 | 
| @HeikoS | and makes sure the getters return the appropriate things | 11:07 | 
| mikeling | but something went wrong when things come to DynamicArray and DynamicObjectArray | 11:07 | 
| @HeikoS | wiking: so my idea is to have the labels just like the new features: type free, runtime checks, transparent conversions behind the API | 11:08 | 
| @wiking | HeikoS, we used to have to something like | 11:08 | 
| @wiking | obtain from generic | 11:08 | 
| @wiking | or? | 11:08 | 
| @HeikoS | yes but that is horrible | 11:08 | 
| @wiking | : | 11:08 | 
| @wiking | :) | 11:08 | 
| @wiking | i'm just saying | 11:08 | 
| @HeikoS | no need for that | 11:08 | 
| @wiking | its the same as no? | 11:08 | 
| @wiking | :) | 11:08 | 
| @HeikoS | I mean why have classes if we do everything at runtime anyways? | 11:08 | 
| @HeikoS | just have one class | 11:08 | 
| @wiking | welll | 11:08 | 
| @wiking | not always true right? | 11:08 | 
| @HeikoS | and you can ask that class whether it can behave like "binary/multiclass" etc | 11:08 | 
| @wiking | i mean we create binaryLabels on compile time already or? | 11:09 | 
| @HeikoS | yeah but then the interface for passing labels is base class and then ALL algorithms dynamic cast them to the type they need | 11:09 | 
| @HeikoS | so there is no base interface anyways | 11:09 | 
| @HeikoS | I suggest just to have a CLabels class that can behave like any form of labels, depending on what is needed | 11:10 | 
| @HeikoS | so user just passes labels to algorithm | 11:10 | 
| @HeikoS | whether binary or multiclass | 11:10 | 
| @HeikoS | and then algorithm asks for certain representation | 11:10 | 
| @HeikoS | and then gets the SGVector/SGMatrix | 11:10 | 
| @wiking | HeikoS, and what, runtime exception if the label is not multiclass? | 11:10 | 
| @HeikoS | yes | 11:11 | 
| @wiking | dontlike | 11:11 | 
| @wiking | :) | 11:11 | 
| @HeikoS | this is already the case now | 11:11 | 
| @HeikoS | runtime exception | 11:11 | 
| @wiking | i like things to be compiled checked | 11:11 | 
| @wiking | :) | 11:11 | 
| @HeikoS | they are not atm anyways | 11:11 | 
| @wiking | ? | 11:11 | 
| @HeikoS | CMachine accepts CLabels | 11:11 | 
| @wiking | CSVM expects Label? | 11:11 | 
| @HeikoS | not CMulticlasslabels | 11:11 | 
| @HeikoS | and second | 11:11 | 
| @wiking | uglyfuck | 11:12 | 
| @wiking | :) | 11:12 | 
| @wiking | but true | 11:12 | 
| @HeikoS | if you put only -1,1 in multiclass labels, you get runtime error anyways | 11:12 | 
| @HeikoS | so thats like the worst of the two worlds | 11:12 | 
| @wiking | ok then yeah | 11:12 | 
| @HeikoS | but I think we should just abstract that out | 11:12 | 
| @wiking | doesn't make sense | 11:12 | 
| @HeikoS | like for features | 11:12 | 
| @wiking | but | 11:12 | 
| @wiking | and here is the but | 11:12 | 
| @wiking | now you will put all the logic | 11:12 | 
| @wiking | and code | 11:12 | 
| @wiking | into CLabels | 11:12 | 
| @wiking | right? | 11:12 | 
| @HeikoS | one possibility | 11:12 | 
| @wiking | it's reaaaaaally gonna be super ugly | 11:12 | 
| @HeikoS | another one is impl class | 11:12 | 
| @HeikoS | that is instantiated from CLabels | 11:13 | 
| @HeikoS | I mean multiple | 11:13 | 
| @HeikoS | that make the code modular | 11:13 | 
| @HeikoS | I mean yeah, this has to be designed well | 11:13 | 
| @HeikoS | we dont want all the code in one file | 11:13 | 
| @HeikoS | mikeling: are you following? | 11:16 | 
| @HeikoS | wiking: shall we draft some high level code? | 11:16 | 
| @wiking | yes | 11:17 | 
| @wiking | we should | 11:17 | 
| @HeikoS | wiking: ok let me start a gist | 11:17 | 
| mikeling | HeikoS: I'm trying :/ | 11:17 | 
| @wiking | mikeling, dont worry you'll get a .h | 11:17 | 
| @wiking | :) | 11:18 | 
| @wiking | mikeling, until then you can work on DynArray or/ | 11:18 | 
| @wiking | ? | 11:18 | 
| mikeling | wiking: I would like to leave DynArray for now due to DynamicArray and DynamicObjectArray inherit from DynArray and use some implementation of DynArray deeply? I suggest working on DynamicArray and DynamicObjectArray replacement first and then remove them all at once | 11:20 | 
| mikeling | but | 11:20 | 
| @wiking | mikeling, mmm inherit? | 11:20 | 
| @wiking | class CDynamicObjectArray : public CSGObject | 11:21 | 
| @wiking | you can replace | 11:21 | 
| @wiking | DynArray<CSGObject*> m_array; | 11:21 | 
| @wiking | to std::vector<CSGObject*> m_array; | 11:22 | 
| @wiking | most of the things would work | 11:22 | 
| @wiking | and some like | 11:22 | 
| @wiking | get_element_ptr | 11:22 | 
| @wiking | you need to trick | 11:22 | 
| mikeling | wiking: yeah | 11:22 | 
| @wiking | beause m_array[i] will actually get the ptr | 11:22 | 
| @wiking | not the object | 11:22 | 
| @wiking | same for DynamicArray | 11:22 | 
| mikeling | for the get_element_ptr | 11:22 | 
| @wiking | those both are doable | 11:23 | 
| @wiking | to remove DynArray | 11:23 | 
| @wiking | if you have some specific prolbme | 11:23 | 
| @wiking | please do ask | 11:23 | 
| @wiking | where you have problem dropping/replacing DynArray | 11:23 | 
| mikeling | wiking: ok, I will figure it out ASAP | 11:25 | 
| @wiking | mikeling, ok cool | 11:29 | 
| @wiking | i'm gonna have to run out for a bit now | 11:29 | 
| @wiking | but gonna be around in 20 mins | 11:29 | 
| @wiking | lisitsyn, i dont know if you are round | 12:12 | 
| @wiking | but in the next 5 hours | 12:12 | 
| @wiking | i'll kill that g2.8xlarge instance | 12:12 | 
| @wiking | sorry | 12:12 | 
| -!- TingMiao [uid229534@gateway/web/irccloud.com/x-vnwjnmfewebawlgx] has quit [Quit: Connection closed for inactivity] | 12:21 | |
| -!- geektoni [~geektoni@93-34-234-212.ip52.fastwebnet.it] has quit [Ping timeout: 260 seconds] | 12:24 | |
| @HeikoS | wiking, lisitsyn, mikeling, iglesiasg https://gist.github.com/karlnapf/939e8b1df0046f9fc22c4fc170012f42 | 12:29 | 
| @HeikoS | can you iterate? | 12:29 | 
| @wiking | ++ | 12:30 | 
| @wiking | :D | 12:30 | 
| @wiking | bool labels.validate_binary() | 12:31 | 
| @wiking | ugly | 12:31 | 
| @HeikoS | wiking: yeah that can go | 12:32 | 
| @HeikoS | I thought about multiple ways | 12:32 | 
| @HeikoS | this one is the one I liked moist | 12:33 | 
| @HeikoS | we can also explicitly instantiate the typed sublasses by users | 12:33 | 
| @HeikoS | but that wont play well with tags | 12:33 | 
| @HeikoS | can also do CBinaryLabels(labels) rather than labels.as_binary(), but that complicates things at other points as well | 12:34 | 
| @HeikoS | at some point, there needs to be this runtime type check, otherwise tags API wont work | 12:34 | 
| -!- HeikoS [~heiko@p5DDB9F19.dip0.t-ipconnect.de] has quit [Ping timeout: 245 seconds] | 12:45 | |
| -!- iglesiasg [~iglesiasg@217.119.234.214] has quit [Ping timeout: 260 seconds] | 14:06 | |
| mikeling | wiking: | 14:29 | 
| mikeling | ping | 14:29 | 
| -!- HeikoS [~heiko@x55b36ee2.dyn.telefonica.de] has joined #shogun | 14:30 | |
| -!- mode/#shogun [+o HeikoS] by ChanServ | 14:30 | |
| -!- HeikoS [~heiko@x55b36ee2.dyn.telefonica.de] has quit [Client Quit] | 14:30 | |
| mikeling | why we need use a pointer to init DynArray https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/base/DynArray.h#L385, | 14:30 | 
| mikeling | Is that for deciding how many memory should been alloced by the pointer type ? | 14:31 | 
| @wiking | mikeling, checking | 14:47 | 
| @wiking | i mean i have never touched this code so i dont know | 14:47 | 
| @wiking | mmm | 14:47 | 
| @wiking | seems github is now having some issue | 14:47 | 
| @wiking | 14:36 CEST | 14:47 | 
| @wiking | Major service outage. | 14:48 | 
| @wiking | ... | 14:48 | 
| @wiking | because DynArray is nothing else | 14:50 | 
| @wiking | but a template<class T> T* array | 14:50 | 
| @wiking | and DynArray is nothing else | 14:53 | 
| @wiking | but a wrapper around T* | 14:53 | 
| @wiking | which is basically an array of T objects | 14:53 | 
| @wiking | *objects of type T | 14:53 | 
| @wiking | and actually | 14:53 | 
| @wiking | i'm a bit shocked that we have still something like this in the code | 14:54 | 
| @wiking | else | 14:54 | 
| @wiking | array=(T*) malloc(size_t(p_resize_granularity)*sizeof(T)); | 14:54 | 
| @wiking | else | 14:54 | 
| @wiking | array=(T*) malloc(size_t(p_resize_granularity)*sizeof(T)); | 14:54 | 
| @wiking | meaning that we can use directly libc's malloc | 14:54 | 
| @wiking | somehow... | 14:54 | 
| mikeling | wiking: so, we could just use std::vector<T>(p_array_size) to instead of that? | 15:01 | 
| @wiking | yes | 15:01 | 
| @wiking | of course | 15:01 | 
| mikeling | those malloc process I mean | 15:01 | 
| mikeling | ok | 15:01 | 
| mikeling | got it | 15:01 | 
| @wiking | yes yes | 15:01 | 
| @wiking | you dont care any of those things | 15:01 | 
| @wiking | as that is done by std::vector | 15:01 | 
| @wiking | internally | 15:01 | 
| -!- geektoni [~geektoni@93-34-234-212.ip52.fastwebnet.it] has joined #shogun | 15:06 | |
| @sukey | Pull Request #3745 "Add PRange class to replace old SG_PROGRESS (WIP)" synchronized by geektoni - https://github.com/shogun-toolbox/shogun/pull/3745 | 15:20 | 
| -!- HeikoS [~heiko@x55b36ee2.dyn.telefonica.de] has joined #shogun | 15:37 | |
| -!- mode/#shogun [+o HeikoS] by ChanServ | 15:37 | |
| mikeling | wiking: what's this for? https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/lib/DynamicObjectArray.h#L437 | 15:38 | 
| mikeling | actually I'm not really familiar with the 'clone' of SGObject | 15:39 | 
| mikeling | could you tell me something about it please :) | 15:39 | 
| @wiking | yes | 15:41 | 
| @wiking | sorry | 15:41 | 
| @wiking | i'm just in a meeting | 15:41 | 
| mikeling | np | 15:44 | 
| -!- HeikoS [~heiko@x55b36ee2.dyn.telefonica.de] has quit [Ping timeout: 258 seconds] | 16:34 | |
| -!- zoq [~marcus_zo@urgs.org] has joined #shogun | 16:56 | |
| mikeling | wiking: still around ? | 17:39 | 
| @wiking | ye | 17:39 | 
| mikeling | 😃 do you have time to tell me something about https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/lib/DynamicObjectArray.h#L437 and | 17:40 | 
| mikeling | SGObject | 17:41 | 
| mikeling | clone | 17:41 | 
| @wiking | ah | 17:43 | 
| @wiking | that's all about how you copy an CDynamicObjectArray | 17:44 | 
| @wiking | maaybe... and i'm not so sure | 17:44 | 
| @wiking | htat you need to do some custom code where for the std::vector<> | 17:44 | 
| @wiking | but that has a copy ctro | 17:44 | 
| @wiking | *ctor so it should be rather easy to do | 17:45 | 
| @wiking | i mean for the time being just ignore this | 17:45 | 
| @wiking | and implement without it and then see how the clone is behaving | 17:45 | 
| @wiking | and then you'll see whether you should do something like: cloned->m_array = this->m_array; | 17:46 | 
| mikeling | Oh I see | 17:46 | 
| @wiking | we have a unit test for the clone command | 17:46 | 
| mikeling | Thank u | 17:46 | 
| @wiking | so it should give you a failure | 17:46 | 
| @wiking | it something is wrong | 17:46 | 
| -!- witness_ [uid10044@gateway/web/irccloud.com/x-drdyolffrskwsupg] has joined #shogun | 18:50 | |
| -!- geektoni [~geektoni@93-34-234-212.ip52.fastwebnet.it] has left #shogun [] | 19:08 | |
| -!- witness_ [uid10044@gateway/web/irccloud.com/x-drdyolffrskwsupg] has quit [Quit: Connection closed for inactivity] | 21:09 | |
| --- Log closed Thu Jun 01 00:00:54 2017 | ||
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!