--- Log opened Mon Jun 19 00:00:19 2017 | ||
-!- TingMiao [uid229534@gateway/web/irccloud.com/x-vyiqfpverhoibiix] has quit [Quit: Connection closed for inactivity] | 00:31 | |
-!- mikeling [uid89706@gateway/web/irccloud.com/x-vsiagqligqjmnnkz] has joined #shogun | 02:58 | |
mikeling | wiking: ping | 03:20 |
---|---|---|
@wiking | pong | 03:20 |
@wiking | i'm just catching up with the emails | 03:20 |
@wiking | if you want you can give me the short version here :) | 03:20 |
mikeling | Hey! Do you have a nice weekend ? | 03:20 |
mikeling | I just want to ask review for this https://github.com/shogun-toolbox/shogun/pull/3812 pr | 03:21 |
@wiking | yeah was good | 03:21 |
@wiking | checking | 03:21 |
@wiking | aaah | 03:21 |
mikeling | if you got time on hand :) | 03:21 |
@wiking | but buut but | 03:21 |
@wiking | whats with DynamicArray :) | 03:21 |
@wiking | let's have that finally conclude | 03:21 |
mikeling | I'm owrking on it | 03:21 |
@wiking | because this is insane | 03:21 |
@wiking | nono | 03:21 |
@wiking | where are you at NOW | 03:21 |
@wiking | and then i help you | 03:21 |
@wiking | beceause this is week 3 | 03:21 |
@wiking | and time is running | 03:21 |
mikeling | Ok, so for DynamicArray | 03:21 |
mikeling | all the unit test passed, but serialization still doesn't work | 03:22 |
@wiking | ok | 03:22 |
@wiking | clone? | 03:22 |
mikeling | no | 03:23 |
@wiking | no what? | 03:23 |
@wiking | does not pass? | 03:23 |
@wiking | is this your latest commit 1da5b417039bbf01b2b7f0aa17febb81cd5e1f31 | 03:23 |
@wiking | ? | 03:23 |
@wiking | or do you have a more recent one that you have not pushed yet | 03:23 |
mikeling | the clone had passed but https://travis-ci.org/shogun-toolbox/shogun/jobs/242812998#L5231 | 03:23 |
@wiking | push whatever you have atm | 03:23 |
mikeling | I haven't update the pr due to the serialization still failed | 03:24 |
@wiking | ok so serialization is the only issue | 03:24 |
@wiking | clone passes | 03:24 |
@wiking | right? | 03:24 |
mikeling | yep | 03:24 |
@wiking | ok | 03:24 |
@wiking | which is the last commit? | 03:24 |
@wiking | 1da5b417039bbf01b2b7f0aa17febb81cd5e1f31 | 03:24 |
@wiking | ? | 03:24 |
mikeling | yes | 03:25 |
@wiking | i'm gonna look into it now | 03:26 |
mikeling | ok, thank you! | 03:27 |
@wiking | mmm | 03:27 |
@wiking | but this does not have the fixes | 03:27 |
@wiking | inline T get_last_element() const | 03:28 |
@wiking | man | 03:28 |
@wiking | i mean why dont we have a ommit for that plz? | 03:28 |
@wiking | i mean that's like a 2 minutes fix | 03:28 |
@wiking | can you push those fixes | 03:28 |
@wiking | that you have yourself marked in the pr | 03:28 |
@wiking | inline void pop_back() | 03:28 |
mikeling | I know, but I thought we should fix the serialization first | 03:29 |
mikeling | it's not related to the serialization I guess | 03:29 |
mikeling | so I haven't update it | 03:29 |
mikeling | I remember you said I should avoid to update the pr if the ctest failed | 03:30 |
@wiking | array size | 03:31 |
@wiking | not removed | 03:31 |
@wiking | fufck | 03:31 |
@wiking | fuuuck | 03:31 |
@wiking | plz | 03:31 |
@wiking | plz | 03:31 |
@wiking | whatever you have now | 03:31 |
@wiking | plz push it | 03:31 |
@wiking | because this commit is still noisy | 03:31 |
@wiking | /** number of elements */ | 03:31 |
@wiking | int32_t num_elements; | 03:31 |
@wiking | /** the number of currently used elements */ | 03:32 |
@wiking | int32_t array_size; | 03:32 |
@wiking | i want a commit that is clean | 03:32 |
@wiking | but like now | 03:32 |
@wiking | i cannot believe that we are still where we were | 03:32 |
@wiking | last week | 03:32 |
@wiking | this time | 03:32 |
@wiking | :( | 03:32 |
mikeling | wiking: which array size | 03:32 |
mikeling | in https://github.com/shogun-toolbox/shogun/pull/3832/files#diff-1a43b9169d617ac582b2a21332230795R1669? | 03:32 |
mikeling | it will been used as the size of array, not the element number | 03:32 |
mikeling | hmm, something like | 03:33 |
mikeling | you want to assign 10 element length to that array | 03:33 |
@wiking | mmm | 03:33 |
@wiking | i asked you last week | 03:33 |
@wiking | why in one case | 03:33 |
@wiking | we have that | 03:33 |
@wiking | and why we dont in the other case | 03:33 |
@wiking | and why the comment saying | 03:33 |
@wiking | that its the very same things | 03:33 |
@wiking | you said tha tit's leftover thing | 03:34 |
mikeling | I just recheck it and found i was wrong | 03:34 |
@wiking | ok then that needs fixign | 03:34 |
@wiking | in the comments | 03:34 |
mikeling | done, I just add a comment under the array_size | 03:42 |
@wiking | cool | 03:42 |
@wiking | i'm gonna now do one thing | 03:42 |
@wiking | first clone test the bool refactor | 03:42 |
@wiking | that shouldn't change too much | 03:43 |
@wiking | and then check the std::vector | 03:43 |
mikeling | I create a unit test for SerializationAscii in https://gist.github.com/MikeLing/665b961fae759a58535ac07b1b93e39a. | 04:07 |
mikeling | Does it help? | 04:07 |
@wiking | just a sec | 04:07 |
@wiking | i'm testing now something | 04:08 |
mikeling | ok | 04:08 |
-!- sukey [~nodebot@ks312251.kimsufi.com] has quit [Remote host closed the connection] | 05:30 | |
-!- shogitter [~nodebot@ks312251.kimsufi.com] has quit [Read error: Connection reset by peer] | 05:30 | |
@wiking | mikeling, you do understand that this is testing nothing https://gist.github.com/MikeLing/665b961fae759a58535ac07b1b93e39a | 06:06 |
@wiking | right? | 06:06 |
@wiking | if not please think about why... | 06:07 |
@wiking | mikeling, hint... ctor | 06:13 |
-!- sukey [~nodebot@ks312251.kimsufi.com] has joined #shogun | 06:17 | |
-!- mode/#shogun [+o sukey] by ChanServ | 06:17 | |
@wiking | sukey, flip | 06:17 |
@sukey | (ノಥДಥ)ノ︵┻━┻・/ | 06:17 |
-!- shogitter [~nodebot@ks312251.kimsufi.com] has joined #shogun | 06:17 | |
-!- shogun-buildbot [~shogun-bu@7nn.de] has quit [Quit: buildmaster reconfigured: bot disconnecting] | 06:23 | |
-!- shogun-buildbot [~shogun-bu@7nn.de] has joined #shogun | 06:23 | |
mikeling | wiking: sorry, I just afk. I use the wrong to register parameter? I should use SG_ADD instead of register_param | 06:31 |
@wiking | noup | 06:31 |
@wiking | again i gave you ahint | 06:31 |
@wiking | ctor | 06:31 |
@wiking | what else do you do there | 06:31 |
mikeling | Push array | 06:33 |
@wiking | yes | 06:34 |
@wiking | so why do you think | 06:34 |
@wiking | that | 06:34 |
@wiking | ASSERT_TRUE(object->equals(deserializedObject, accuracy)); | 06:34 |
@wiking | should not be true | 06:34 |
@wiking | if you create with the default ctor | 06:34 |
@wiking | the very same object/ | 06:34 |
@wiking | ? | 06:34 |
mikeling | Yes…… | 06:34 |
mikeling | It will create same object | 06:34 |
@wiking | whatever you load from the file | 06:35 |
@wiking | it will always contain those 3 elements | 06:35 |
@wiking | because you push those in the default ctor | 06:35 |
mikeling | I see | 06:35 |
@wiking | and the equal does not work either | 06:47 |
@wiking | ... | 06:47 |
-!- geektoni [~geektoni@93-34-234-212.ip52.fastwebnet.it] has joined #shogun | 08:54 | |
-!- geektoni [~geektoni@93-34-234-212.ip52.fastwebnet.it] has left #shogun [] | 08:55 | |
-!- geektoni [~geektoni@93-34-234-212.ip52.fastwebnet.it] has joined #shogun | 09:06 | |
-!- iglesiasg [~iglesiasg@217.119.234.214] has joined #shogun | 09:13 | |
-!- mode/#shogun [+o iglesiasg] by ChanServ | 09:13 | |
-!- iglesiasg [~iglesiasg@217.119.234.214] has quit [Quit: leaving] | 09:22 | |
-!- iglesiasg [~iglesiasg@217.119.234.214] has joined #shogun | 09:22 | |
-!- mode/#shogun [+o iglesiasg] by ChanServ | 09:22 | |
-!- johklu [c1abba08@gateway/web/freenode/ip.193.171.186.8] has joined #shogun | 10:53 | |
johklu | Hi, wiking | 10:53 |
@wiking | johklu, hello hello | 10:53 |
@wiking | wie gehts? | 10:53 |
johklu | did you find out something? | 10:54 |
@wiking | johklu, oh i have messaged you last week | 10:54 |
@wiking | that i have pushed a fixed for you | 10:54 |
johklu | oh, sorr | 10:54 |
@wiking | i'm just wondering how do you use currently shogun... | 10:54 |
@wiking | do you compile yourself? | 10:54 |
johklu | no, our sysadmin did it | 10:55 |
@wiking | mmmm | 10:55 |
@wiking | :D | 10:55 |
@wiking | ok so because i changed a bit | 10:55 |
@wiking | the interface of | 10:55 |
johklu | (I didn't have permissions) | 10:55 |
@wiking | CommUlongStringKernel | 10:55 |
@wiking | i mean CommWordStringKernel | 10:56 |
@wiking | so now | 10:56 |
@wiking | get_dictionary() will return an SGVector<float64_t> | 10:56 |
@wiking | so basically in R | 10:56 |
@wiking | you could do | 10:56 |
@wiking | dictionaryWeights <- kernel$get_dictionary() | 10:56 |
@wiking | and then the dictionaryWeights would be an array of floats | 10:56 |
@wiking | now of course this is only available in the latest source | 10:57 |
@wiking | which of course requires you to check out the latest develop branch of the code | 10:57 |
@wiking | and compile that one :) | 10:57 |
johklu | ok, i'll try -thanks! | 10:58 |
@wiking | this is the change | 10:58 |
@wiking | https://github.com/shogun-toolbox/shogun/commit/c65c2c54362c1964d79df67a651e71f55fefd2be | 10:58 |
@wiking | that added this | 10:58 |
@wiking | but note | 10:58 |
@wiking | you need to compile the latest develop branch of shogun | 10:58 |
@wiking | and not 6.0.0 | 10:58 |
@wiking | :) | 10:58 |
johklu | yes - understood :) | 10:59 |
@wiking | cool cool | 11:00 |
@wiking | if you are still having some issue | 11:00 |
johklu | one more question: can I now also get the k-mers (i.e. the subsequences) along with the weights? | 11:00 |
@wiking | lemme knwo | 11:00 |
@wiking | lemme check | 11:01 |
@wiking | i mean i have no idea about this kernel | 11:01 |
@wiking | so i'm just checking the code :) | 11:01 |
johklu | Thanks! | 11:02 |
@wiking | nw | 11:02 |
@wiking | kmer_mask ? | 11:04 |
@wiking | is what you are looking for? :D | 11:04 |
@wiking | ok wait | 11:06 |
@wiking | i'm just reading | 11:06 |
@wiking | http://shogun.ml/api/latest/classshogun_1_1CCommWordStringKernel.html | 11:06 |
@wiking | so you are using SortWordString right? | 11:06 |
johklu | yes | 11:08 |
@wiking | ok so | 11:08 |
@wiking | what will happen | 11:08 |
@wiking | as far as i get | 11:09 |
@wiking | i mean again i have no real clue about this :) | 11:09 |
@wiking | SortWordString will sort your input | 11:09 |
@wiking | meaning your features | 11:09 |
@wiking | and as far as i get | 11:10 |
@wiking | the weights are going to be in that order | 11:10 |
@wiking | in CommWordStringKernel | 11:10 |
johklu | yes, that would make sense | 11:11 |
@wiking | so i mean after | 11:11 |
@wiking | the svm train | 11:11 |
@wiking | your features | 11:12 |
@wiking | (train features) | 11:12 |
@wiking | are actually should be sorted | 11:12 |
johklu | yes - but the problem is, that if at all I get them as 16bit integers | 11:13 |
@wiking | o | 11:13 |
@wiking | ah | 11:13 |
johklu | and I haven't found a function to convert them back into the original strings | 11:13 |
@wiking | okok i see | 11:13 |
@wiking | lemme see what you use for conversion | 11:13 |
@wiking | StringWordFeatures | 11:13 |
@wiking | ? | 11:13 |
@wiking | and then call | 11:13 |
@wiking | obtain_from_char | 11:13 |
@wiking | ? | 11:13 |
@wiking | i mean this is the python code | 11:14 |
@wiking | charfeat=StringCharFeatures(DNA) | 11:14 |
@wiking | charfeat.set_features(fm_train_dna) | 11:14 |
@wiking | feats_train=StringWordFeatures(charfeat.get_alphabet()) | 11:14 |
@wiking | feats_train.obtain_from_char(charfeat, order-1, order, gap, reverse) | 11:14 |
@wiking | i reckon the R code is going along this line | 11:14 |
@wiking | right? | 11:14 |
johklu | yes, exactly | 11:16 |
@wiking | kk | 11:16 |
@wiking | CaBa, here? :) | 11:16 |
@wiking | johklu, ok 2 things | 11:18 |
@wiking | 1) i have to run now 2) i'll get back to u asap once i have something; plz drop a mail to wiking@maeth.com | 11:18 |
@wiking | so that you get the info as soon as | 11:18 |
@wiking | without loosing it on irc :) | 11:18 |
@wiking | gotta run now... sorry | 11:18 |
johklu | ok thanks! | 11:20 |
-!- geektoni [~geektoni@93-34-234-212.ip52.fastwebnet.it] has quit [Quit: Leaving.] | 11:43 | |
-!- wiking_mob [~Mutter@14.100.132.20] has joined #shogun | 13:02 | |
-!- wiking_mob [~Mutter@14.100.132.20] has quit [Quit: Mutter: www.mutterirc.com] | 13:10 | |
-!- geektoni [~geektoni@93-34-234-212.ip52.fastwebnet.it] has joined #shogun | 14:35 | |
-!- HeikoS [~heiko@eduroam-int-pat-8-191.ucl.ac.uk] has joined #shogun | 15:21 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 15:22 | |
-!- HeikoS [~heiko@eduroam-int-pat-8-191.ucl.ac.uk] has quit [Remote host closed the connection] | 15:33 | |
-!- HeikoS [~heiko@eduroam-int-pat-8-191.ucl.ac.uk] has joined #shogun | 15:34 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 15:34 | |
-!- HeikoS [~heiko@eduroam-int-pat-8-191.ucl.ac.uk] has quit [Ping timeout: 240 seconds] | 15:39 | |
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has joined #shogun | 15:52 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 15:53 | |
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has quit [Ping timeout: 240 seconds] | 16:01 | |
-!- HeikoS [~heiko@eduroam-int-pat-8-191.ucl.ac.uk] has joined #shogun | 16:02 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 16:02 | |
-!- HeikoS [~heiko@eduroam-int-pat-8-191.ucl.ac.uk] has quit [Client Quit] | 16:03 | |
-!- HeikoS [~heiko@eduroam-int-pat-8-191.ucl.ac.uk] has joined #shogun | 16:12 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 16:12 | |
@iglesiasg | HeikoS: aloha | 16:14 |
mikeling | HeikoS: hi | 16:15 |
mikeling | do you have time to take a look at this https://github.com/shogun-toolbox/shogun/pull/3812? | 16:16 |
mikeling | and please give me some hints about to_binary() and to_mutipleclass() for CLabels | 16:16 |
mikeling | thank you | 16:17 |
@HeikoS | iglesiasg: hi | 16:18 |
@HeikoS | mikeling: I will check soon, in a talk right now, ok? | 16:18 |
mikeling | ok | 16:18 |
@HeikoS | mikeling: but one thing already: make it "to_multiclass" | 16:19 |
@HeikoS | mikeling: sure this is the right PR? | 16:20 |
@HeikoS | global fixture? | 16:20 |
mikeling | yeah... | 16:20 |
mikeling | It has been created for a long time | 16:20 |
@HeikoS | what does it have to do with labels? | 16:20 |
mikeling | they(the pr and CLabels) are not so related, I just want to ask review for it due to it has been there for a long time and I update it during this weekend | 16:23 |
mikeling | you know, I have fall behind other GSoC student | 16:23 |
mikeling | so, I just want to catch them up | 16:23 |
@HeikoS | mikeling: I see | 16:23 |
mikeling | update the pr I have | 16:24 |
mikeling | and try to make things move on | 16:24 |
@HeikoS | mikeling: the way out of this is: focus on finishing things, dont start too many at once | 16:24 |
@HeikoS | but yeah closing old prs is a good idea | 16:24 |
@HeikoS | wiking: are you back yet? | 16:24 |
mikeling | for the DynamicArray, wiking told me where is the the problem already | 16:25 |
mikeling | Paramter.h/cpp doesn't know how to serialize an std::vector | 16:25 |
mikeling | But I think it will take longer time to deliver | 16:25 |
@iglesiasg | HeikoS: this popped in my scholar updates last week: https://link.springer.com/chapter/10.1007/978-3-319-54858-6_30 | 16:25 |
@iglesiasg | HeikoS: "a new MCMC algorithm, called Gauss-Newton MCMC algorithm, is proposed which is essentially an M-H algorithm with a Gaussian proposal PDF tailored to the posterior PDF using the gradient and Hessian information of the negative log posterior" | 16:26 |
@HeikoS | mikeling: I think there might be a work-around where you wrap an std::vector around pre-allocated memory after de.serialization | 16:26 |
@HeikoS | CSGObject::Serializable_post is for that | 16:26 |
@HeikoS | wiking: ^ | 16:26 |
@iglesiasg | HeikoS: new MCMC, but the idea sounds familiar :P | 16:27 |
@HeikoS | iglesiasg: cool sounds related to stuff we discussed before :) | 16:27 |
@HeikoS | iglesiasg: i cant read it as it is 100GBP :D | 16:28 |
@iglesiasg | HeikoS: haha yeah I haven't read it either | 16:28 |
mikeling | HeikoS: mmm what's the meaning of work-around? | 16:28 |
@iglesiasg | HeikoS: I checked the abstract, and the part that I pasted made me :-O | 16:28 |
@iglesiasg | HeikoS: I mean, that must be something completely equivalent to the Langevin+differential geometric MCMC | 16:29 |
@HeikoS | mikeling: a trick to make it work :) | 16:30 |
@HeikoS | iglesiasg: probably | 16:30 |
@HeikoS | iglesiasg: I mean this happens all the time | 16:30 |
@iglesiasg | HeikoS: research is broken | 16:30 |
@HeikoS | lol | 16:30 |
@iglesiasg | just kidding | 16:30 |
@HeikoS | iglesiasg: btw I want to organise next hackathon soon | 16:31 |
@iglesiasg | they do cite Girolami, Calderhead so at least not 100% sketchy | 16:31 |
@iglesiasg | HeikoS: sure | 16:31 |
@iglesiasg | oh btw, there was also something recent on neuroscience with some topology math. It looked fancy, but I am not sure whether it is in fact really relevant in neuroscience | 16:32 |
@iglesiasg | HeikoS: are we making it in Zurich for sure, or is the place still open for discussion? | 16:33 |
@HeikoS | where is that? | 16:33 |
@iglesiasg | HeikoS: will send you the link in a minute | 16:33 |
@HeikoS | yeah Zurich is a good one if we get no funds | 16:33 |
@HeikoS | if we do get some, maybe budapast? | 16:33 |
@HeikoS | budapest | 16:33 |
@iglesiasg | do we know someone from a uni there? Old Shoguner? | 16:34 |
@iglesiasg | I think it is nice when we can do it partially in uni | 16:34 |
@iglesiasg | but yeah, otherwise we can probably find some hacker space or so. Good ambiance for the hackaton too | 16:35 |
@iglesiasg | HeikoS: if I haven't done the notebook preview by then, pinky promise I will do it before the next hackaton finishes :P I haven't forgotten about it | 16:35 |
@iglesiasg | HeikoS: link to the neurosience paper I mentioned: http://journal.frontiersin.org/article/10.3389/fncom.2017.00048/full | 16:36 |
@iglesiasg | HeikoS: softer explanations: https://www.youtube.com/watch?v=rhJca_nZTSg http://bluebrain.epfl.ch/op/edit/page-141408.html | 16:37 |
@HeikoS | iglesiasg: yeah that would be good | 16:37 |
@HeikoS | iglesiasg: I think wiking has ideas there :) | 16:38 |
@HeikoS | sorry what is this neuro paper about? I mean why do you share it? | 16:38 |
-!- HeikoS [~heiko@eduroam-int-pat-8-191.ucl.ac.uk] has quit [Quit: Leaving.] | 16:38 | |
@iglesiasg | I thought your phd was in neuroscience... | 16:39 |
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has joined #shogun | 16:57 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 16:57 | |
CaBa | wiking: ping | 16:57 |
geektoni | HeikoS: hi, I've seen your email. Thanks for the suggestions :) I'll update it soon. | 17:01 |
@HeikoS | geektoni: thanks! | 17:02 |
@HeikoS | geektoni: that thing is helpful! | 17:02 |
@HeikoS | I spent so much time asking for code style feedback ;) | 17:02 |
geektoni | HeikoS: ;) We have a solution now ;) | 17:05 |
@HeikoS | iglesiasg: still around? | 17:06 |
@HeikoS | lisitsyn: there? | 17:06 |
mikeling | HeikoS: mmm, could you tell me more about work-around? | 17:14 |
mikeling | I still don't understand it | 17:14 |
@HeikoS | mikeling: yes | 17:14 |
@HeikoS | mikeling: so when you de-serialize, you cannot directly load into the std::vector | 17:14 |
@HeikoS | but what you can do is to load into some other memory fragment, and then wrap that with std::vector | 17:15 |
@HeikoS | mikeling: e.g. https://stackoverflow.com/questions/14807192/can-i-use-an-stdvector-as-a-facade-for-a-pre-allocated-raw-array | 17:16 |
mikeling | checking | 17:17 |
@HeikoS | you just have to make sure that in the de-serialization, the memory is loaded to a place that you know, and then pass that to std::vector afterwards | 17:17 |
@HeikoS | de-serialization should work via just extracting the pointer of std::vector | 17:17 |
@iglesiasg | HeikoS: yeah! | 17:17 |
@HeikoS | there is pre and post methods for serialization actually | 17:17 |
@HeikoS | iglesiasg: ? | 17:17 |
@iglesiasg | HeikoS: still around | 17:17 |
@HeikoS | iglesiasg: ah yes :) | 17:17 |
@iglesiasg | HeikoS: you asked ^ :D | 17:17 |
@HeikoS | iglesiasg: API question | 17:18 |
@HeikoS | see email | 17:18 |
@HeikoS | iglesiasg: about labels | 17:18 |
@iglesiasg | will check | 17:18 |
mikeling | HeikoS: So I need to override the load_serializable() in DynamicArray() | 17:21 |
mikeling | ? | 17:21 |
-!- iglesiasg [~iglesiasg@217.119.234.214] has quit [Quit: leaving] | 17:25 | |
@HeikoS | mikeling: no I think there is a post/pre method called already | 17:28 |
@HeikoS | mikeling: but first, you need to conceptually understand what I am saying | 17:28 |
@HeikoS | mikeling: so do you understand what the problem is? | 17:30 |
@HeikoS | mikeling: i.e. that the loading tries to modify memory that belongs to std::vector | 17:30 |
mikeling | HeikoS: mmm, you mean when we register std::vector, we actually warp its content by another memory fragment, which can be recognises by parameter.h | 17:33 |
mikeling | and when we load it | 17:34 |
@HeikoS | mikeling: no | 17:34 |
mikeling | we first load the content into that memory fragment, and then pass to std::vector? | 17:34 |
@HeikoS | this is a hack that only happens when loading | 17:35 |
@HeikoS | as in saving, there is no problem | 17:35 |
@HeikoS | so you just register the std::vector's memory pointer | 17:35 |
@HeikoS | but then when loading: | 17:35 |
mikeling | ok, so we load the content into that memory fragment and then pass to std::vector? | 17:36 |
@HeikoS | you could make the framework load the content into an allocated block manually | 17:36 |
@HeikoS | and then construct the std:.vector from that | 17:36 |
@HeikoS | exactly | 17:36 |
@HeikoS | mikeling: I am not sure this will work generally | 17:36 |
@HeikoS | but you could definitely try it | 17:36 |
@HeikoS | i.e. make it work for an example | 17:37 |
mikeling | get it | 17:37 |
@HeikoS | and then we think how to generalize | 17:37 |
@HeikoS | cool! | 17:37 |
@HeikoS | so for now, take the single class where you used the std::vector | 17:37 |
@HeikoS | and then override the pre/post serializable methods to account for that | 17:37 |
@HeikoS | and lets see whether it works | 17:37 |
mikeling | BTW, we create a serialization test for DynamicArray in https://github.com/shogun-toolbox/shogun/pull/3852 | 17:38 |
mikeling | I guess it's good to go | 17:38 |
mikeling | but wiking haven' t back. So could you merger that? | 17:38 |
mikeling | then we can test if my change make it works :) | 17:38 |
@HeikoS | checking the PR | 17:40 |
@HeikoS | mikeling: commented! | 17:43 |
mikeling | HeikoS: thank you, I will update it right now | 17:44 |
@HeikoS | mikeling, micmn, did you reply to Gina already re the numfocus introduction? | 17:50 |
mikeling | HeikoS: oh, I forget it. Actually I have some questions about it | 17:51 |
micmn | not yet! is there a deadline? | 17:51 |
@HeikoS | micmn, mikeling asap please :) | 17:52 |
@HeikoS | mikeling: just ask | 17:52 |
geektoni | micmn: June 23 :) | 17:52 |
micmn | geektoni: thx! :) | 17:53 |
mikeling | about question like "What motivated you to want to do GSoC with this project?", is that about shogun? or SymPy? | 17:53 |
@HeikoS | geektoni: thanks :) | 17:53 |
micmn | I'll need to take a good picture then :p | 17:54 |
@HeikoS | geektoni: you answered already? | 17:54 |
@HeikoS | mikeling: lol why would it be about sympy? | 17:54 |
@HeikoS | mikeling: no this is about you and shogun and gsoc | 17:54 |
@HeikoS | it introduces you guys to the numfous community | 17:54 |
@HeikoS | which is cool because the world will know about the things you are doing with us | 17:54 |
@HeikoS | read the sympy examples to get a freeling for it | 17:54 |
@HeikoS | feeling | 17:54 |
mikeling | ok | 17:55 |
geektoni | HeikoS: not yet. | 17:55 |
@HeikoS | geektoni: would be good to get that out soon | 17:57 |
@HeikoS | in general a good idea to get back immediately about such publicity things, they tend to be forgotten easily | 17:57 |
geektoni | HeikoS: okk. I'll do it asap. | 17:59 |
@HeikoS | geektoni: thanks! | 17:59 |
-!- TingMiao [uid229534@gateway/web/irccloud.com/x-ghmmxrkjjmoxjwnr] has joined #shogun | 18:03 | |
@HeikoS | TingMiao: you already answered Gina? | 18:07 |
TingMiao | i could not find shogun in the project list:( | 18:15 |
@HeikoS | TingMiao: what do you mean? | 18:25 |
TingMiao | https://usercontent.irccloud-cdn.com/file/QZH7m4Xu/image.png | 18:25 |
TingMiao | I finished other questions but cannot find shogun in project list | 18:26 |
mikeling | HeikoS: just reply to Gina | 18:27 |
TingMiao | Fine and I have sent the email:) | 18:27 |
@HeikoS | TingMiao: thanks Ting! | 18:28 |
TingMiao | :) | 18:29 |
@HeikoS | TingMiao, micmn, geektoni, mikeling can you cc me and mentors in the email ? | 18:33 |
micmn | sure | 18:35 |
mikeling | HeikoS: where should i put the helper function? In Utils.h maybe? | 18:47 |
@HeikoS | mikeling: yes, or come up with something nice | 19:00 |
-!- johklu [c1abba08@gateway/web/freenode/ip.193.171.186.8] has quit [Quit: Page closed] | 19:00 | |
mikeling | HeikoS: ok, https://github.com/shogun-toolbox/shogun/pull/3852/files | 19:16 |
@wiking | HeikoS, here? | 19:48 |
@HeikoS | wiking: jojo | 19:49 |
@wiking | HeikoS, ok so we have a problem with mikeling | 19:49 |
@wiking | Parameter::add_vector | 19:49 |
@HeikoS | wiking: yeah he told me | 19:49 |
@HeikoS | so here is a workaround idea | 19:49 |
@wiking | ah ok | 19:49 |
@wiking | have you managed to give him directions? | 19:49 |
@HeikoS | rather than loading into the memory block of std::vector | 19:49 |
@HeikoS | why not load into a manually allocated block | 19:49 |
@HeikoS | and then wrap that with std::vector | 19:49 |
@wiking | ? | 19:49 |
@HeikoS | that could be done in serializable pre and post | 19:50 |
@HeikoS | then we can still use the old serialization code but also change the type to std::vectpr | 19:50 |
@HeikoS | then once we can serialize std::vector, we can remove that thing | 19:50 |
@wiking | i see | 19:50 |
@wiking | and then just forget forever | 19:50 |
@wiking | adding | 19:50 |
@HeikoS | I am not sure that all works out, I asked mikeling to draft a working example | 19:50 |
@wiking | Paramter::add(std::vector... | 19:50 |
@HeikoS | for a single class | 19:50 |
@wiking | as hopefully soon we could drop Parameter | 19:50 |
@wiking | as is | 19:51 |
@wiking | i? | 19:51 |
@HeikoS | wiking: I think add(std::vector) wont work | 19:51 |
@wiking | is that the reasoning here? | 19:51 |
@HeikoS | the problem is that you cannot really go and modify std::vectors contents | 19:51 |
@wiking | you can | 19:51 |
@wiking | :) | 19:51 |
@wiking | std::vector.data | 19:51 |
@wiking | allows u this | 19:51 |
@HeikoS | sure | 19:51 |
@HeikoS | but the size etc? | 19:51 |
@HeikoS | I think it would be better to just load into heap and then wrap | 19:52 |
@HeikoS | and give the memory to the std::vector | 19:52 |
@wiking | mmm | 19:52 |
@wiking | i mean | 19:52 |
@wiking | if you can do | 19:52 |
@HeikoS | there is the pre and post thing | 19:52 |
@HeikoS | for serialization | 19:52 |
@wiking | std::vector.data = &array[0] | 19:52 |
@wiking | then it's all good | 19:52 |
@wiking | otherwise | 19:52 |
@wiking | you need to do the copy | 19:52 |
@HeikoS | I think you can build it around an existing memory block | 19:53 |
@HeikoS | without copying | 19:53 |
@wiking | because | 19:53 |
@wiking | as soon as you do | 19:53 |
@wiking | std::vector.resize() | 19:53 |
@wiking | who's gonna managed that area? | 19:53 |
@HeikoS | wiking: actually | 19:53 |
@HeikoS | just thinking | 19:53 |
@wiking | more importantly how | 19:53 |
@HeikoS | why dont we do this: | 19:53 |
@HeikoS | in the pre-serialization method | 19:53 |
@HeikoS | we re-allocate the vector size | 19:53 |
@HeikoS | and then directly modify the memoty | 19:53 |
@HeikoS | memory | 19:53 |
@HeikoS | but we dont allocate it | 19:53 |
@HeikoS | though I am afraid that is what Parameter.h does | 19:54 |
@HeikoS | let me check | 19:54 |
@HeikoS | uh | 19:55 |
@HeikoS | so the loading allocates everything | 19:55 |
@HeikoS | the SGVector | 19:56 |
@HeikoS | and each of the elements | 19:56 |
@HeikoS | wiking: so I think we either do the hack I mentioned | 19:56 |
@HeikoS | or we change the array after we updated the serialization | 19:56 |
@wiking | well | 19:56 |
@wiking | the only thing here is | 19:56 |
@wiking | that if you dont wanna do copy | 19:56 |
@wiking | then what happens with resize/push_back | 19:57 |
@wiking | i.e. if it works | 19:57 |
@wiking | then it's good | 19:57 |
@HeikoS | if we do this Parameter::add(std:.vector) then we need to add/touch so much of that horrible code | 19:57 |
@wiking | if not then one needs copy | 19:57 |
@HeikoS | wiking: I think one needs to pass ownership to std::vector | 19:57 |
@HeikoS | since yes no copy | 19:57 |
@wiking | mmm 'pass ownershiip' | 19:57 |
@wiking | std::vector.data() = | 19:57 |
@wiking | anyhow | 19:57 |
@wiking | let's see if it's possible | 19:57 |
@HeikoS | yep | 19:57 |
@HeikoS | wiking: I think mikeling needs some help there though | 19:58 |
@HeikoS | that is tricky stuff | 19:58 |
@wiking | you mean with pre/post? | 19:58 |
@wiking | yeah | 19:58 |
@HeikoS | so you might actually want to do that yourself (draft) and then pass that to him | 19:58 |
@wiking | and again i'm just wondering | 19:58 |
@HeikoS | to make it work with the cases | 19:58 |
@wiking | whether the idea here is htat one day we can just drop this whole Parameter horror | 19:58 |
@wiking | right? | 19:58 |
@wiking | and that's why we dont wanna deal with add(std::vector) | 19:58 |
@HeikoS | yes lets not do that | 19:59 |
@HeikoS | its gonna be messy | 19:59 |
@HeikoS | rather hack around for now | 19:59 |
@HeikoS | it is only one datatype for now | 19:59 |
@wiking | [01:56] <wiking> whether the idea here is htat one day we can just drop this whole Parameter horror | 19:59 |
@wiking | [01:56] <wiking> right? | 19:59 |
@HeikoS | yes | 19:59 |
@wiking | :) | 19:59 |
@wiking | ok | 19:59 |
@HeikoS | that should be dropped | 19:59 |
@wiking | good | 19:59 |
@HeikoS | I think the order is | 19:59 |
@wiking | just wanted to see this line | 20:00 |
@wiking | we wanna kill this | 20:00 |
@wiking | asap | 20:00 |
@HeikoS | 1.) register tags everywhere | 20:00 |
@wiking | (Parameter) | 20:00 |
@HeikoS | 2.) serialization works | 20:00 |
@wiking | yeye | 20:00 |
@HeikoS | 3.) clone works | 20:00 |
@wiking | i know the problemcircle | 20:00 |
@HeikoS | 4.) equals works | 20:00 |
@HeikoS | 5.) remove SG_ADD everywhere | 20:00 |
@HeikoS | 6.) Drop Parameter, etc | 20:00 |
@wiking | and the burdens there | 20:00 |
@HeikoS | yeah thats too much for a single step/push | 20:01 |
@HeikoS | so I think wrapping memory might be the best try for now | 20:02 |
@HeikoS | if that doesnt work, we can re-think | 20:02 |
@HeikoS | but I think you need to draft that | 20:02 |
@HeikoS | there is already the pre/post methods, they can be used for that | 20:02 |
@HeikoS | for a single class first, and then seeing how to generalise | 20:02 |
@HeikoS | but I feel it cannot be too hard. All is just continuous memory vectors of different types | 20:02 |
@wiking | single class? | 20:05 |
@wiking | this should be handled within DynamicArray itself: ) | 20:05 |
@HeikoS | wiking: for the draft | 20:07 |
@HeikoS | then obviously CSGObject | 20:07 |
@HeikoS | and all std::vector members | 20:07 |
@wiking | HeikoS, another question | 20:22 |
@wiking | we have a user(!) | 20:22 |
@wiking | who's using CommonWordStringKernel and would need to map back uint16 strings to k-mers | 20:23 |
@wiking | do u know if there's such method in shogun ? | 20:23 |
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has quit [Ping timeout: 246 seconds] | 20:24 | |
-!- mikeling is now known as mikeling|afk | 20:49 | |
-!- geektoni [~geektoni@93-34-234-212.ip52.fastwebnet.it] has quit [Remote host closed the connection] | 21:14 | |
-!- mikeling|afk [uid89706@gateway/web/irccloud.com/x-vsiagqligqjmnnkz] has quit [Quit: Connection closed for inactivity] | 22:58 | |
-!- TingMiao [uid229534@gateway/web/irccloud.com/x-ghmmxrkjjmoxjwnr] has quit [Quit: Connection closed for inactivity] | 23:29 | |
--- Log closed Tue Jun 20 00:00:21 2017 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!