| --- 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!