--- Log opened Wed Jun 22 00:00:10 2011 | ||
@sonney2k | blackburn, again good luck today and nite all | 00:15 |
---|---|---|
blackburn | sonney2k: thanks :) | 00:15 |
blackburn | good night | 00:15 |
-!- f-x [~user@117.192.212.107] has quit [Remote host closed the connection] | 01:24 | |
-!- blackburn [~blackburn@188.168.4.110] has quit [Read error: Operation timed out] | 01:46 | |
-!- in3xes [~in3xes@180.149.49.227] has quit [Ping timeout: 263 seconds] | 08:56 | |
-!- f-x [~user@117.192.200.211] has joined #shogun | 11:24 | |
alesis-novik | sonney2k, are you around? | 11:37 |
@sonney2k | alesis-novik, whats up? | 12:15 |
@sonney2k | f-x, around? | 12:16 |
f-x | sonney2k: here | 12:16 |
alesis-novik | I was wondering if a) the current git version links properly | 12:16 |
@sonney2k | f-x, did you read my comment about merging with pull --rebase? | 12:16 |
f-x | sonney2k: yes.. will do that from now.. i thought there was no difference until now.. | 12:17 |
alesis-novik | and b) what's the recommended use of SGVector/SGMatrix as parameters or returned stuff | 12:17 |
@sonney2k | f-x, yeah everyone had to learn that lesson | 12:17 |
@sonney2k | f-x, please don't forget the minor fixes I requested when merging your patch | 12:18 |
@sonney2k | alesis-novik, compiling to test | 12:18 |
@sonney2k | alesis-novik, b) just SGVector<float64_t> foo(); and void foo(SGVector<int32_t> x); | 12:19 |
alesis-novik | sonney2k, I get that part, but what about memory allocation and shallow copy vs deep copy | 12:20 |
@sonney2k | alesis-novik, never copy if possible | 12:20 |
@sonney2k | and allocation with new[] | 12:21 |
@sonney2k | alesis-novik, it compiles... | 12:21 |
alesis-novik | So the idea is to rely on the user not to break stuff | 12:21 |
@sonney2k | maybe you need to run git clean -dfx | 12:21 |
@sonney2k | yes. there is no alternative when one does not want to copy all the time | 12:21 |
@sonney2k | in the end it is like using java and references all the time | 12:22 |
alesis-novik | sonney2k, ok, I'll get my code to do that. Ideally I'll also use SGVector and SGMatrix for fields as well, seems a lot less messy | 12:22 |
f-x | sonney2k: In StreamingStringFeatures, there will only be one string right? | 12:24 |
f-x | it seems many functions from StringFeatures won't apply | 12:24 |
f-x | like get_transponse etc | 12:25 |
f-x | *transpose | 12:25 |
f-x | and what about the subsets? | 12:26 |
-!- blackburn [~blackburn@188.168.2.21] has joined #shogun | 12:29 | |
blackburn | it's f-ing over! | 12:29 |
alesis-novik | Congratulations blackburn | 12:30 |
alesis-novik | sonney2k, yep, that fixed it | 12:30 |
blackburn | alesis-novik: thanks! | 12:30 |
blackburn | sonney2k: are we interested in R? ;) | 12:40 |
blackburn | I know two guys - one interested in R, one interested in common lisp :D | 12:57 |
bettyboo | <:*) | 12:57 |
@sonney2k | blackburn, congrats! | 13:16 |
@sonney2k | blackburn, yes we have R support :) | 13:16 |
blackburn | sonney2k: thanks :) | 13:16 |
bettyboo | ha ha | 13:16 |
@sonney2k | blackburn, hope you passed with some good mark | 13:16 |
blackburn | sonney2k: 4/5 | 13:16 |
@sonney2k | blackburn, as you intended | 13:16 |
@sonney2k | great | 13:16 |
blackburn | well it wasn't really fair :) it could be 5/5 | 13:17 |
blackburn | the problem is - I know a little *real* math like I do with dim.reduction now and I simply can't 'rote learn' these useless things :D | 13:18 |
@sonney2k | blackburn, ahh doesn't matter - what matters is that you passed good enough and that you have now spare time | 13:18 |
@sonney2k | f-x, no subsets just the string as is | 13:19 |
blackburn | sonney2k: and in fact I'm not going to have 'red diploma' - 'summa cum laude' analogue - so 4 is good for me too :D | 13:20 |
bettyboo | ;> | 13:20 |
blackburn | this week I will finish LMDS! | 13:21 |
-!- f-x [~user@117.192.200.211] has quit [Ping timeout: 260 seconds] | 13:23 | |
blackburn | sonney2k: I think I should revise my plan for mid-term | 13:24 |
-!- sploving [~root@124.16.139.196] has joined #shogun | 13:33 | |
alesis-novik | Anyone know if the SGVector and SGMatrix things are working with octave_modular? | 13:41 |
blackburn | I don't | 13:42 |
-!- in3xes [~in3xes@180.149.49.227] has joined #shogun | 13:44 | |
-!- f-x [~user@117.192.195.207] has joined #shogun | 14:06 | |
sploving | hello blackburn | 14:13 |
-!- in3xes [~in3xes@180.149.49.227] has quit [Quit: Ooops..!!] | 14:23 | |
alesis-novik | Bah, everything was working, then I upgraded to use SGVector and SGMatrix and now I'm getting Seg faults... This is frustrating | 14:39 |
-!- heiko [~heiko@infole-06.uni-duisburg.de] has joined #shogun | 14:51 | |
-!- sploving [~root@124.16.139.196] has left #shogun [] | 15:15 | |
-!- in3xes [~in3xes@180.149.49.227] has joined #shogun | 15:24 | |
-!- f-x [~user@117.192.195.207] has quit [Ping timeout: 260 seconds] | 15:35 | |
-!- f-x [~user@117.192.198.147] has joined #shogun | 15:41 | |
-!- f-x is now known as Guest90839 | 15:41 | |
-!- Guest90839 [~user@117.192.198.147] has quit [Ping timeout: 260 seconds] | 15:47 | |
alesis-novik | Weird. When testing sampling from Gaussian in c++ it seems to work fine. In octave it gives weird values(with stuff like e-158) | 15:48 |
-!- f-x` [~user@117.192.210.16] has joined #shogun | 15:55 | |
-!- heiko [~heiko@infole-06.uni-duisburg.de] has quit [Ping timeout: 258 seconds] | 16:12 | |
-!- heiko [~heiko@infole-06.uni-duisburg.de] has joined #shogun | 16:25 | |
-!- in3xes_ [~in3xes@59.163.196.121] has joined #shogun | 16:38 | |
-!- in3xes [~in3xes@180.149.49.227] has quit [Ping timeout: 240 seconds] | 16:40 | |
-!- in3xes_ is now known as in3xes | 16:40 | |
-!- heiko [~heiko@infole-06.uni-duisburg.de] has quit [Ping timeout: 258 seconds] | 17:02 | |
-!- f-x` [~user@117.192.210.16] has quit [Remote host closed the connection] | 17:53 | |
-!- heiko [~heiko@infole-06.uni-duisburg.de] has joined #shogun | 17:58 | |
-!- heiko [~heiko@infole-06.uni-duisburg.de] has quit [Ping timeout: 258 seconds] | 18:47 | |
alesis-novik | sonney2k, are you around? | 19:23 |
alesis-novik | when you read this, could you tell me if its better to try not to copy to SGVector/Matrix or be consistent. | 19:26 |
alesis-novik | In Gaussian in get_mean I could just assign it, but in get_cov I reconstruct the covariance, thus it falls on the user to take care of memory | 19:27 |
alesis-novik | so is it better to use different things or just copy in both? | 19:27 |
-!- heiko [~heiko@infole-06.uni-duisburg.de] has joined #shogun | 19:28 | |
alesis-novik | Also, I think I've build up a nice big patch. Should I just submit a pull request now, so I can start doing small incremental changes from now on? | 19:28 |
@sonney2k | Re | 20:20 |
@sonney2k | alesis-novik, try to avoid copying whenever reasonably possilbe | 20:21 |
@sonney2k | if not possible mark it in the documentation | 20:21 |
@sonney2k | *and* set the do_free flag to true | 20:21 |
@sonney2k | alesis-novik, and yes send a pull request | 20:29 |
@sonney2k | alesis-novik, what about octave-modular - use git blame and give me bug reports don't wine alone in the dark ;-) | 20:29 |
CIA-32 | shogun: Baozeng Ding master * rd75d754 / examples/undocumented/java_modular/check.sh : change check.sh to accept an optional argument (.java file to check) - http://bit.ly/kEJiwe | 20:33 |
alesis-novik | sonney2k, I was wondering if there's a specific reason why 1-by-1 matrices are not valid for SGMatrix when using python-modular? | 20:48 |
@sonney2k | alesis-novik, with 1-by-1 you mean a matrix with 1 col / 1 row? | 20:49 |
alesis-novik | sonney2k, yes | 20:50 |
@sonney2k | alesis-novik, then you must be doing sth. wrong | 20:50 |
@sonney2k | they are valid | 20:50 |
@sonney2k | x=array([[1.0]]) | 20:50 |
@sonney2k | y=RealFeatures(x) | 20:50 |
@sonney2k | y.get_feature_matrix() | 20:50 |
alesis-novik | Ok, I will try that. Ah, I might have forgotten to add another set of []. Silly me. | 20:51 |
@sonney2k | that explains it | 20:52 |
@sonney2k | the other thing is a vector | 20:52 |
alesis-novik | sonney2k, do you by any chance remember the octave equivalents for the SGVector and SGMatrix? | 20:54 |
@sonney2k | same thing | 20:54 |
@sonney2k | or do yo mean how to write it in octave? | 20:54 |
@sonney2k | [1,2,3] (vector) | 20:54 |
@sonney2k | [1,2,3;4,5,6] (matrix | 20:54 |
@sonney2k | ) | 20:54 |
alesis-novik | sonney2k, thanks. I think there is still something wrong with octave, but I'll check and submit any possible bugs after the pull request (so there's actually code to reproduce what I have done) | 20:57 |
@sonney2k | alesis-novik, I have a clear idea what could have happened with octave. | 20:57 |
@sonney2k | since we now don't always *copy* it might be that we overwrite sth | 20:58 |
@sonney2k | err free memeory that shouldn't be | 20:58 |
alesis-novik | I still need to clean up the code after the SGVector and SGMatrix changes | 20:58 |
-!- heiko [~heiko@infole-06.uni-duisburg.de] has quit [Quit: Leaving.] | 21:00 | |
alesis-novik | Hmm, just running init_shogun then quit produces seg fault in octave | 21:00 |
@sonney2k | alesis-novik, that is `normal' | 21:01 |
@sonney2k | bug in octave unfortunately | 21:01 |
@sonney2k | this bug can only be fixed in octave 3.4 and when someone fixes swig's octave bindings for that version | 21:02 |
blackburn | normal segfault *lol* | 21:02 |
@sonney2k | basically loading multiple extensions in octave that depend on each other somehow makes octave crash on exit | 21:02 |
alesis-novik | sonney2k, one more question about SGMatrix :) If I use set_cov(SGMatrix<float64_t> cov), but don't actually store the cov value, should I set the do_free flag on exit? | 21:02 |
bettyboo | alesis-novik, lolomat | 21:02 |
@sonney2k | but apart from that it will work | 21:02 |
@sonney2k | alesis-novik, what do you do with cov when not storing it internally? | 21:04 |
alesis-novik | sonney2k, I'm decomposing it and storing eigenvectors and eigenvalues | 21:04 |
@sonney2k | blackburn, any idea? I didn't think of this case though alesis-novik's proposal of setting do_free makes sense | 21:05 |
blackburn | sonney2k: don't understand, where it could be set? | 21:05 |
blackburn | inside set_cov()? | 21:05 |
@sonney2k | yes | 21:05 |
blackburn | but what if we don't want to free it | 21:06 |
blackburn | ? | 21:06 |
@sonney2k | ? | 21:07 |
blackburn | I mean we have some matrix and passing it to that method | 21:07 |
@sonney2k | ok and then? | 21:07 |
blackburn | what if we don't want to free that matrix? | 21:07 |
@sonney2k | btw if he sets do_free it won't work | 21:07 |
blackburn | hmm | 21:07 |
@sonney2k | it is a local variable | 21:07 |
blackburn | ah yes | 21:08 |
blackburn | don't know for sure.. | 21:09 |
@sonney2k | alesis-novik, for now just document this in set_cov - we have to think about ways to resolve this for the general case | 21:09 |
alesis-novik | sonney2k, just note it in the description? | 21:10 |
@sonney2k | blackburn, it is actually only a problem for swig related functions- because these will always pass *copies* of the objects | 21:10 |
@sonney2k | alesis-novik, yes | 21:10 |
@sonney2k | baby crying... will be back later. | 21:11 |
alesis-novik | blackburn, so, how are you feeling with all the exams done? | 21:12 |
blackburn | alesis-novik: very nice :) btw did you traveled home after exams? | 21:13 |
alesis-novik | I did last week. Found out the exam results while there. Had to travel around Lithuania as well (to visit everyone I wanted) | 21:14 |
blackburn | are you in uk now? | 21:15 |
alesis-novik | blackburn, yeah, back in Edinburgh | 21:16 |
-!- f-x [~user@117.192.212.119] has joined #shogun | 21:16 | |
blackburn | alesis-novik: have you any studies now? | 21:17 |
alesis-novik | The rent contract is until September and I need to take care of stuff to do with my coming PhD (get a new place, open bank account, etc.) | 21:17 |
blackburn | oh so you graduated already? | 21:17 |
@sonney2k | looks like the baby gave up uhmmm... | 21:18 |
@sonney2k | f-x, would you mind submitting the small patch now? | 21:18 |
alesis-novik | blackburn, I'm done with my exams, but not exactly graduated yet | 21:18 |
f-x | sonney2k: ok | 21:19 |
alesis-novik | Oh boy, this will get confusing fast... The constructor for Gaussian takes both mean and cov. We can just point the m_mean field where we need, but we will still have to decompose the covariance. | 21:19 |
@sonney2k | alesis-novik, hmmhh then be consistent and delete[] it? | 21:22 |
@sonney2k | at least that is what all the label, features, ... objects do: you set_* and then on destruction of the objects the set objects are destroyed | 21:23 |
alesis-novik | So decompose cov, copy mean and delete everything on destruction? | 21:24 |
@sonney2k | the only other alternative I can think of is a CSGMatrix (or so) that is derived from SGObject and does proper reference counting | 21:25 |
@sonney2k | alesis-novik, decompose cov, delete[] cov | 21:25 |
@sonney2k | store the mean ptr and delete[] mean on destruction | 21:25 |
@sonney2k | (no copy of mean vec) | 21:25 |
CIA-32 | shogun: Shashwat Lal Das master * r5367d36 / src/libshogun/features/StreamingFeatures.h : Changed return type of get_next_example to bool in StreamingFeatures. - http://bit.ly/lytU0S | 21:26 |
alesis-novik | sonney2k, ok, but I think the idea of a Vector and Matrix derived from SGObject would make things a lot clearer (though quite a bit would need to be rewritten and having no experience I have no idea how well would that work with swig) | 21:27 |
blackburn | these SGtypes issues hurts :D | 21:33 |
@sonney2k | blackburn, well it is the no copy / copy issue | 21:39 |
@sonney2k | alesis-novik, the problem is that it comes with a huge overhead | 21:39 |
@sonney2k | alesis-novik, if you used SimpleFeatures for cov you wouldn't have this problem | 21:39 |
@sonney2k | though it is an unecessary overhead ... | 21:40 |
blackburn | sonney2k: do you know some physics machine learning dataset? | 21:47 |
alesis-novik | Still, this is nothing compared to the software they use at CERN. That thing is horrible. | 21:47 |
@sonney2k | alesis-novik, please use the delete[] approach. we really everywhere assume that the set_* ptr is delete[] on object destruction so it makes sense to immediately delete it if not needed. | 21:49 |
blackburn | sonney2k: nevermind, another question: what is the license should be for dataset in shogun-data? | 21:49 |
@sonney2k | sonney2k, spring glass? | 21:49 |
@sonney2k | blackburn, great question some CC-* one I guess | 21:50 |
blackburn | sonney2k: I suggested one student with physics major to find some physics-machine-learning task and add it to shogun | 21:50 |
blackburn | in applications or examples | 21:51 |
@sonney2k | blackburn, good examples are always welcome | 21:52 |
blackburn | sonney2k: if you will have ideas about physics (I know it is crazy a little) - tell me | 21:52 |
alesis-novik | sonney2k, should I use free_vector()/free_matrix()? That seems to clean up nicely | 21:53 |
@sonney2k | blackburn, what do you think? if we would require that do_free is properly set - we always know when we 'own' the matrix | 22:02 |
@sonney2k | blackburn, however when doing return some_sgmatrix we would need to clear that flag | 22:03 |
blackburn | should we always call free_* for that? | 22:03 |
alesis-novik | Currently, I did as you suggested sonney2k: delete via free_matrix and set flat to true on returning copied values | 22:03 |
@sonney2k | blackburn, yeah in destructor we would then always put a free_* in there instead of delete[] | 22:03 |
blackburn | looks good to me | 22:04 |
@sonney2k | alesis-novik, keep it like this for now - the other thing requires quite a big overhaul we cannot do just now | 22:04 |
alesis-novik | sonney2k, well, it does work properly (at least in c++), so I see no problem | 22:05 |
blackburn | but we should be carefully whenever do_free or not, right? | 22:05 |
@sonney2k | this all could actually be sufficient | 22:05 |
@sonney2k | blackburn, yeah. I mean if someone does set_feature_matrix(mat) with mat not having do_free set the caller has to clean up | 22:06 |
@sonney2k | if he sets the thing we clean up | 22:06 |
@sonney2k | if we return the matrix we have to unset the do_free flag | 22:06 |
blackburn | I see | 22:07 |
@sonney2k | if we return a copy we have to set the do_free flag and copy | 22:07 |
@sonney2k | (copy or new object that is) | 22:07 |
@sonney2k | so that seems to cover all cases | 22:07 |
blackburn | looks like | 22:07 |
@sonney2k | alesis-novik, what do you think? could this work? | 22:08 |
alesis-novik | sonney2k, sounds good | 22:10 |
alesis-novik | by unset the flat you mean set it to false? | 22:11 |
@sonney2k | yes | 22:12 |
alesis-novik | Forgive my inexperience with git, but does rebase destroy the order of commits and thus should always be force pushed to the branch? | 22:33 |
blackburn | not it won't destroy commits | 22:34 |
alesis-novik | not the commits themselves, but the order | 22:36 |
blackburn | why it should? | 22:38 |
alesis-novik | because first applies the commits to the merged branch and applies your commits on top of that | 22:41 |
blackburn | I don't know :( | 22:48 |
@sonney2k | alesis-novik, yeah you shouldn't push this as it indeed changes the order of commits | 23:10 |
@sonney2k | the way I use it is have 2 branches (master aka upstream) and one devel branch | 23:11 |
@sonney2k | and then I pull from upstream into master and then checkout devel and rebase devel with master | 23:11 |
f-x | sonney2k: how should a function like obtain_by_sliding_window() for a streaming string class behave? should it return the new features as an SGString* variable? | 23:13 |
@sonney2k | f-x, don't do more for strings except getting the raw sting | 23:14 |
@sonney2k | string | 23:14 |
@sonney2k | no fancy stuff | 23:14 |
@sonney2k | just the string you read | 23:14 |
f-x | sonney2k: ok.. so basically just the reading part differs | 23:15 |
f-x | from SimpleFeatures | 23:15 |
@sonney2k | f-x, it is basically simplefeatures without the atod parsing | 23:15 |
f-x | sonney2k: right.. so all the bit representation stuff is 'fancy' for now? | 23:15 |
@sonney2k | f-x, well you will need alphabet and potentially a remapping from ascii -> binary | 23:17 |
f-x | sonney2k: and a check during reading whether each char belongs to the alphabet? | 23:18 |
@sonney2k | f-x, I am afraid yes (alphabet provides a function for that) - I would use alphabet to create a histogram and then check if that is invalid | 23:19 |
f-x | okay.. i'll see what functions from stringfeatures i need to retain.. | 23:20 |
f-x | so after each line read, call add_string_to_histogram(), and then check_alphabet()? | 23:25 |
CIA-32 | shogun: Sergey Lisitsyn master * rb38b907 / (4 files): ST* transition for Distribution base class and Histogram - http://bit.ly/lbaXIN | 23:30 |
@sonney2k | f-x, that makes at least sense for strings > 256 chars or so in length. belwo that checking each char manually is probably faster | 23:35 |
f-x | sonney2k: and we have something like SGString<ST> fv as a member? or should ST* be used? (like it is done for single_string now) | 23:39 |
f-x | i mean is there a reason for the different datatypes for features and single_string in StringFeatures? | 23:40 |
@sonney2k | f-x, I don't understand - just return a SGString<ST> - same type as you expect the inputs in (char,int,float...) | 23:41 |
f-x | sonney2k: alright.. didn't understand why single_string was of ST* type in StringFeatures.. never mind | 23:42 |
@sonney2k | ignore the single string and fancy stuff | 23:43 |
blackburn | sonney2k: how to delete current line in vim? sorry for lame question :) | 23:46 |
@sonney2k | blackburn, dd | 23:46 |
blackburn | sonney2k: ok how to undo | 23:46 |
blackburn | :D | 23:46 |
blackburn | u | 23:47 |
blackburn | sonney2k: vim is wonderful! | 23:47 |
@sonney2k | try gf when the cursor sits on a file name | 23:48 |
@sonney2k | or try k when you are on e.g printf | 23:48 |
blackburn | gf is not working :( | 23:49 |
blackburn | says can't find file distributions/Distribution.h in path | 23:49 |
blackburn | I guess it should be set up somehow | 23:49 |
@sonney2k | blackburn, you need to be in libshogun for that | 23:49 |
@sonney2k | in that path | 23:50 |
blackburn | i see | 23:50 |
CIA-32 | shogun: Sergey Lisitsyn master * r1c13dc4 / (2 files in 2 dirs): ST* transition for PPWM - http://bit.ly/jpUiKZ | 23:54 |
@sonney2k | blackburn, or do :set path=libshogun;.;/usr/include or so | 23:55 |
blackburn | sonney2k: will do tomorrow | 23:55 |
blackburn | sonney2k: distributions are working | 23:55 |
blackburn | except LinearHMM | 23:55 |
blackburn | will fix tomorrow too | 23:55 |
@sonney2k | blackburn, I am still working on sparse features... | 23:56 |
blackburn | sonney2k: oh.. how much code you have to fix here?! | 23:56 |
@sonney2k | blackburn, typemaps won't work for some reason | 23:56 |
@sonney2k | not being applied | 23:57 |
blackburn | I see | 23:57 |
blackburn | okay, will go to bed now, see you | 23:57 |
blackburn | sonney2k: nite | 23:57 |
-!- blackburn [~blackburn@188.168.2.21] has quit [Quit: Leaving.] | 23:57 | |
@sonney2k | blackburn, bye | 23:58 |
--- Log closed Thu Jun 23 00:00:13 2011 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!