--- Log opened Mon Jul 04 00:00:43 2011 | ||
-!- f-x [~user@117.192.209.232] has quit [Remote host closed the connection] | 02:10 | |
-!- in3xes_ [~in3xes@180.149.49.227] has joined #shogun | 06:41 | |
-!- in3xes [~in3xes@180.149.49.227] has quit [Ping timeout: 240 seconds] | 06:44 | |
CIA-32 | shogun: Soeren Sonnenburg master * raa41ac5 / (10 files): | 07:53 |
---|---|---|
CIA-32 | shogun: Merge pull request #167 from sploving/master | 07:53 |
CIA-32 | shogun: add some java kernel examples - http://bit.ly/khi5Cz | 07:53 |
-!- sploving [~root@124.16.139.196] has joined #shogun | 08:59 | |
sploving | hi sonney2k | 08:59 |
@sonney2k | sploving, hi | 09:11 |
@sonney2k | finally I see you in chat :) | 09:11 |
sploving | holiday ends? | 09:11 |
@sonney2k | I hope you are doing fine... | 09:11 |
@sonney2k | I wouldn't say that I was on holidays... | 09:11 |
@sonney2k | anyway please give me a quick update what the current problems for java_modular completion are? | 09:12 |
@sonney2k | I mean mid-term is approaching quickly | 09:12 |
sploving | now just some case about test-suite. I did not understand generator.py | 09:13 |
CIA-32 | shogun: Soeren Sonnenburg master * re2c834b / (32 files in 9 dirs): | 09:14 |
CIA-32 | shogun: Follow Shashwat Lal Das nice suggestion and use overloading for | 09:14 |
CIA-32 | shogun: get_vector and related functions. - http://bit.ly/izi6YT | 09:14 |
@sonney2k | sploving, before discussing that - translating examples are works? | 09:14 |
@sonney2k | I mean did you discover any issues? | 09:15 |
@sonney2k | sploving, still there? | 09:16 |
sploving | not any issues now. I pushed the examples works well | 09:16 |
@sonney2k | sploving, great | 09:16 |
sploving | arange(1,degree+1,dtype=double)[::-1] | 09:17 |
sploving | what does ::-1 mean? | 09:17 |
@sonney2k | reverse the vector | 09:17 |
sploving | like this small issue. that I donot understand some examples well. so I did not added them all | 09:17 |
@sonney2k | sploving, always ask | 09:17 |
@sonney2k | please | 09:17 |
@sonney2k | in the example above the vector is no e.g 1...10 but 10...1 | 09:18 |
@sonney2k | sploving, now regarding generator.py - what do you not understand? | 09:18 |
@sonney2k | generator.py reads all the .py files and then runs the examples one by one with the configurations mentioned in the top of the .py file | 09:19 |
@sonney2k | since these examples provide a function of same name and return some results - these are serialzed (pickled) | 09:19 |
@sonney2k | and written down to disc | 09:19 |
@sonney2k | that's all | 09:20 |
@sonney2k | now when tester.py is run - it reads these serialized results and also runs the examples and gets the function return values and then compares if results are the same | 09:20 |
@sonney2k | sploving, ok? | 09:21 |
sploving | sounds ok | 09:21 |
sploving | you mean generator.py writes all the results in the disc | 09:21 |
@sonney2k | sploving, yes | 09:21 |
@sonney2k | that is why I said you don't need to print but just provide functions that return the results | 09:22 |
sploving | tester.py also run the example. then their results are the same. because the examples are run twice? | 09:22 |
@sonney2k | they should be if everything is correct - yes | 09:22 |
sploving | then there is no need to compares them. An example is run twice, the results is certly the same | 09:24 |
@sonney2k | sploving, heh | 09:25 |
@sonney2k | one would think so | 09:25 |
@sonney2k | but it is not always true | 09:25 |
@sonney2k | if you are on a different architecture / library set | 09:25 |
@sonney2k | there can be differences | 09:25 |
@sonney2k | and of course someone might change an algorithm and you now want to test if it really gives the same result | 09:26 |
@sonney2k | and that is waht these regression tests are for | 09:26 |
@sonney2k | sploving, does that make sense? | 09:27 |
sploving | sonney2k, that sounds reponsible | 09:27 |
@sonney2k | sploving, so do you now know what to do? | 09:28 |
@sonney2k | sploving, IIRC these examples and test scripts and some documentation how to test java works etc is the remaining thing to be done for java for now | 09:29 |
@sonney2k | (lets ignore UJMP sparse matrix support until it is implemented upstream) | 09:29 |
sploving | documentation? | 09:29 |
sploving | not autogenerated? | 09:29 |
@sonney2k | sploving, no that one here http://www.shogun-toolbox.org/doc/installation.html | 09:30 |
@sonney2k | I mean you just have to write what is necessary | 09:30 |
@sonney2k | to run java examples and give a small example like here http://www.shogun-toolbox.org/doc/modular_tutorial.html | 09:31 |
@sonney2k | sploving, really not a lot maybe 1-3 paragraphs with that we expect things in CLASSPATH etc | 09:31 |
@sonney2k | sploving, certainly doable in a 1-2 hours | 09:32 |
@sonney2k | sploving, OK? | 09:32 |
sploving | sonney2k, I am afrained I could not finished them in a week | 09:33 |
@sonney2k | sploving, finish what? | 09:33 |
sploving | I am not a java expert. I am not familiar to write the tester script | 09:33 |
sploving | I mean examples , test-suite, and docs | 09:34 |
@sonney2k | sploving, ask mikio early then how to do the generator / tester scripts and write examples while you are waiting for his reply | 09:34 |
sploving | sonney2k, I think it is not difficult. but may take some time. | 09:35 |
sploving | so there is no need to ask | 09:36 |
sploving | I have a meeting next week | 09:36 |
@sonney2k | sploving, midterm is in 11 days so you have still 88 hrs :) | 09:36 |
sploving | in another city | 09:36 |
sploving | I have to prepare for it also | 09:36 |
@sonney2k | sploving, well please try hard - OK? | 09:37 |
sploving | Of course. I will try my best | 09:37 |
sploving | midterm is on next Monday, am I right? | 09:37 |
@sonney2k | ok - so just keep the patches coming and ask early... it is really not a lot of work for 11 days. I would say examples take 1-3 days, documentation 1 day at best | 09:37 |
@sonney2k | http://www.google-melange.com/gsoc/events/google/gsoc2011 | 09:38 |
@sonney2k | deadline is 15th | 09:38 |
@sonney2k | sploving, just start working now... I will be around if there are further burning questions | 09:38 |
@sonney2k | sploving, talk to you soon! | 09:38 |
sploving | okay. | 09:40 |
-!- blackburn [~blackburn@188.122.238.99] has joined #shogun | 09:55 | |
-!- blackburn [~blackburn@188.122.238.99] has quit [Ping timeout: 240 seconds] | 10:09 | |
-!- sploving [~root@124.16.139.196] has left #shogun [] | 11:12 | |
-!- serialhex [~quassel@99-101-148-183.lightspeed.wepbfl.sbcglobal.net] has quit [Read error: Connection reset by peer] | 11:58 | |
-!- in3xes1 [~in3xes@180.149.49.227] has joined #shogun | 13:37 | |
-!- in3xes_ [~in3xes@180.149.49.227] has quit [Ping timeout: 240 seconds] | 13:40 | |
@sonney2k | blackburn - this would be something for you file:///home/sonne/Downloads/11-07-04/waffles/web/tutorial/dimred.html | 14:02 |
@sonney2k | err sorry - http://waffles.sourceforge.net/tutorial/dimred.html | 14:03 |
-!- in3xes_ [~in3xes@180.149.49.227] has joined #shogun | 14:28 | |
-!- in3xes [~in3xes@180.149.49.227] has joined #shogun | 14:30 | |
-!- in3xes1 [~in3xes@180.149.49.227] has quit [Ping timeout: 276 seconds] | 14:32 | |
-!- in3xes_ [~in3xes@180.149.49.227] has quit [Ping timeout: 240 seconds] | 14:33 | |
-!- f-x [~user@117.192.204.74] has joined #shogun | 14:50 | |
-!- blackburn [~blackburn@188.122.238.99] has joined #shogun | 15:09 | |
@sonney2k | blackburn, seen that http://waffles.sourceforge.net/tutorial/dimred.html | 15:12 |
@sonney2k | ? | 15:12 |
blackburn | nope | 15:12 |
blackburn | why it could be interesting? :) | 15:13 |
blackburn | hm | 15:13 |
blackburn | yes manifold sculpting is impressive | 15:13 |
-!- serialhex [~quassel@99-101-148-183.lightspeed.wepbfl.sbcglobal.net] has joined #shogun | 15:29 | |
@sonney2k | blackburn, just because of the pictures :) | 15:53 |
blackburn | sonney2k: the most funny thing about these pictures - they could become ugly just if we set k=9 but not 10 or so | 15:57 |
blackburn | it is all unstable a bit | 15:58 |
@sonney2k | isn't that the case for all these dim red methods? | 15:58 |
blackburn | some of they could be non-parametric, I don't know for sure | 15:58 |
blackburn | PCA have no parameters like k hehe | 15:59 |
blackburn | and useless for swiss-roll things | 15:59 |
blackburn | hm I guess I have to really test my arpack wrapper | 16:01 |
-!- f-x [~user@117.192.204.74] has quit [Remote host closed the connection] | 16:21 | |
-!- in3xes_ [~in3xes@210.212.58.111] has joined #shogun | 16:31 | |
-!- in3xes [~in3xes@180.149.49.227] has quit [Ping timeout: 276 seconds] | 16:35 | |
-!- blackburn [~blackburn@188.122.238.99] has quit [Quit: Leaving.] | 16:35 | |
-!- blackburn [~blackburn@188.122.238.99] has joined #shogun | 16:35 | |
-!- in3xes_ is now known as in3xes | 16:57 | |
CIA-32 | shogun: Baozeng Ding master * r87f2965 / (4 files): add some kernel examples for java_modular - http://bit.ly/jBIwLv | 17:56 |
CIA-32 | shogun: Soeren Sonnenburg master * r414534f / (4 files): | 17:56 |
CIA-32 | shogun: Merge pull request #168 from sploving/master | 17:56 |
CIA-32 | shogun: add some kernel example for java_modular - http://bit.ly/kbD9S1 | 17:56 |
-!- f-x [~user@117.192.204.74] has joined #shogun | 18:55 | |
-!- b3ttyb00 [~bettyboo@bane.ml.tu-berlin.de] has joined #shogun | 19:51 | |
-!- bettyboo [~bettyboo@bane.ml.tu-berlin.de] has quit [Ping timeout: 240 seconds] | 19:52 | |
-!- in3xes [~in3xes@210.212.58.111] has quit [Ping timeout: 240 seconds] | 19:52 | |
-!- b3ttyb00 is now known as bettyboo | 19:52 | |
-!- in3xes [~in3xes@180.149.49.227] has joined #shogun | 20:03 | |
@sonney2k | f-x, regarding your patch - it is mostly fine | 21:25 |
@sonney2k | I am not really sure if we want SGVector business or not for these functions - I tend to say yes but it would be OK for now if you leave the float64_t* int stuff | 21:26 |
@sonney2k | (the code in dotfeatures is legacy in this respect too - I would convert it to SGVector too at some stage) | 21:26 |
f-x | sonney2k: about SGVector - I find the SGD code easier to read right now without it | 21:27 |
f-x | i converted it to use SGVector, but it was simpler to write using separate variables | 21:27 |
@sonney2k | f-x, well that can be improved: just consider you have the basic operations defined for SGVector | 21:27 |
@sonney2k | then it would be more readable w/ SGVector | 21:27 |
* blackburn tends to *not* implement even basic operations for SG* structures | 21:28 | |
@sonney2k | blackburn, why not? | 21:29 |
f-x | sonney2k: yeah, but then again call that stuff in CMath isn't yet made for SGVector, right? | 21:29 |
f-x | i haven't checked it out | 21:29 |
@sonney2k | blackburn, wouldn't it be nice to say vec.multiply(2) | 21:29 |
f-x | but its functions in SGD are called through separate args | 21:29 |
blackburn | sonney2k: looks nice but implementation issues | 21:29 |
@sonney2k | f-x, yeah - that code could go to SGVector ... | 21:29 |
@sonney2k | blackburn, which? | 21:29 |
blackburn | blas? or simple loops? | 21:30 |
blackburn | blas could be good for some operations, loops for other, right? | 21:30 |
blackburn | the other problem - in fact we have pretty 'low' level in algos | 21:31 |
@sonney2k | blackburn, so what is the problem? | 21:31 |
@sonney2k | one can use blas for float32_t / float64_t and loops otherwise | 21:32 |
blackburn | sometimes blas is not very reasonable | 21:32 |
blackburn | what if we just want to multiply 3-4 elements? | 21:32 |
blackburn | overhead of calling blas may be even higher than just simple loop | 21:33 |
@sonney2k | blackburn, yes but no one forces you to use these operations / to not call a loop based implementation | 21:33 |
blackburn | that is a problem too: we will mix it up | 21:33 |
blackburn | i.e. sth like | 21:34 |
blackburn | for (i=0; i<N; i++) | 21:34 |
blackburn | blablabla | 21:34 |
blackburn | vec.multiply(blablabla) | 21:34 |
blackburn | I'd rather use only some fors than mixing it up | 21:35 |
@sonney2k | blackburn, I don't see any problem so far... | 21:35 |
blackburn | I don't know | 21:36 |
blackburn | may be it just for me :) | 21:36 |
blackburn | I think that all the code should be on the same 'level' | 21:37 |
blackburn | and in fact we can't generalize it | 21:37 |
@sonney2k | blackburn, what is the problem to have specialized implementations for specific data types? | 21:40 |
* sonney2k is wondering what happened to blackburn who suggested this in the first place... | 21:41 | |
blackburn | haha | 21:41 |
blackburn | okay well my experience of working with arpack and algos changed me | 21:41 |
blackburn | for example | 21:41 |
blackburn | what are the operations for matrices? | 21:42 |
blackburn | mainly dot product | 21:43 |
@sonney2k | blackburn, just the basic ones we need in the algos | 21:43 |
blackburn | yes but sometimes not basic ones is needed | 21:43 |
blackburn | i.e. it is triangular matrix or so | 21:43 |
blackburn | in this case using general way will cause lower performance | 21:44 |
f-x | sonney2k: in SVMSGD, lambda=1/num_vec.. in the online version should i keep this as a parameter with some default constant value (1e-4 as in Leon's version) or something else? because the weights seem to depend quite a bit on it | 21:44 |
blackburn | so my point is to use 'expert-mode' of these things | 21:44 |
@sonney2k | blackburn, well that is very specific and you could either have a specific impl. in SGMatrix or separate | 21:44 |
blackburn | clapack, cblas, etc | 21:44 |
blackburn | not A.dot(b) | 21:45 |
@sonney2k | f-x, *sigh* that can really screw up everything - you should ask John about this - he is the expert | 21:45 |
@sonney2k | blackburn, yes always use expert mode of course | 21:46 |
blackburn | the pros of doing it this way is that if we want to multiply some part of matrix or so - we just change N->k or so | 21:46 |
f-x | sonney2k: in Leon's svmsgd2.cpp, he sets lambda=1e-4 which can be changed through a command line option.. hence i thought it could be something to let the user decide | 21:46 |
blackburn | if we want to do this trick with some a.dot(b) - we have to change it to some cblas routine, right? | 21:46 |
@sonney2k | f-x, I guess you have no other choice | 21:47 |
f-x | sonney2k: i guess.. anyway an email to john is on the way.. | 21:47 |
@sonney2k | blackburn, you can impl. a.dot(b) using cblas for float* types and for other types using a loop | 21:47 |
blackburn | my point is: encapsulating some operations won't really improve readability | 21:47 |
@sonney2k | blackburn, ehh why not? | 21:49 |
@sonney2k | when you can always write a.dot(b) not matter what type and get the best impl. underneath? | 21:49 |
blackburn | because even small changes: some cutting of matrix or so - will cause to change from that a.dot to cblas_dgemm, etc | 21:50 |
blackburn | if some apply_to_feature vector have MANY fors like LLE does | 21:51 |
blackburn | some a.dot will not really improve readability | 21:51 |
@sonney2k | blackburn, but for these you use specific impl's anyways | 21:51 |
blackburn | so I think we better use specific all the time :) | 21:51 |
blackburn | I mean we have two ways: some old-school hard-code mutha-fucka expert coding everywhere _or_ mix some first with a.dot(b) | 21:54 |
blackburn | don't you think so? | 21:54 |
@sonney2k | blackburn, there is one 'common' way of using a matrix/vector | 21:55 |
@sonney2k | and one for kewl shapes etc | 21:55 |
f-x | sonney2k: i just checked the code of vw - the default in that is 0.001. (again set through the command line) so it doesn't look like it will be much of a problem to use a similar thing in our implementation.. will wait for john's reply though | 21:55 |
@sonney2k | I would define the operations for the 'common' case only | 21:55 |
@sonney2k | f-x, I read your email :) | 21:55 |
f-x | sonney2k: oh ok :) | 21:55 |
@sonney2k | f-x, I would suggest to document that 1/num_examples is a good starting point | 21:56 |
@sonney2k | and then set the default value like SGD does | 21:56 |
f-x | sonney2k: okay, will do | 21:56 |
f-x | but i still suggest we use separate batch/online versions of algorithms | 21:56 |
f-x | because such things may be lost out when we're converting it into something depending on the online framework | 21:57 |
@sonney2k | blackburn, f-x now has the problem for very simple operations like multiply with scalar, add some vectors | 21:57 |
@sonney2k | blackburn, since these algorithms all not use a real vector data type things become unreadable quickly... | 21:57 |
blackburn | why? | 21:57 |
blackburn | oh I don't know | 21:58 |
@sonney2k | blackburn, all our interface functions cannot use SGVector etc / or if we use them we always have to vec.vector / vec.lenght | 21:58 |
blackburn | may be I was working on some fancy things too many hours | 21:58 |
@sonney2k | blackburn, well lets have a look when f-x is through the code | 21:58 |
@sonney2k | f-x, btw can I now merge the features patch? | 21:59 |
@sonney2k | f-x, did you do the small changes? | 21:59 |
blackburn | e.g. arpack wrapper uses cholesky, diagonal matrices, .. | 21:59 |
blackburn | no way to really hide it somehow | 21:59 |
@sonney2k | blackburn, yeah - surely not sth. fo SGMatrix :) | 21:59 |
blackburn | may be dgemm could be hided | 21:59 |
blackburn | and saxpy | 21:59 |
f-x | sonney2k: its unchanged, but it will compile.. problem is i made further (unrelated) changes to those files afterwards, so if I push and make a pull request now, those things will come up too.. | 22:00 |
@sonney2k | f-x, why do you do this? This patch is way to big anyways already | 22:00 |
@sonney2k | f-x, can't you just do small changes that I can somehow digest in a few minutes? | 22:01 |
@sonney2k | it is really growing too big for me - and hard to realize what all the consequences are | 22:01 |
* blackburn should learn some gdb and valgrind | 22:01 | |
f-x | sonney2k: i had to make those changes for the sgd.. anyway i'll revert back and merge just those minor changes, then update my copy using it | 22:01 |
@sonney2k | f-x, anyway what are these unrelated changes now? | 22:01 |
f-x | just give me half an hour | 22:01 |
f-x | sonney2k: i'll push those changes later - they won't come up in the pull request | 22:02 |
@sonney2k | btw, I am now reachable during normal working hours that is 7-15hrs UTC | 22:03 |
* blackburn should take some teeth medicine :( | 22:03 | |
@sonney2k | blackburn, vodka? | 22:03 |
blackburn | sonney2k: vodka helps but it produces headache at morning | 22:03 |
blackburn | I've got a pulpitis again hhr | 22:04 |
@sonney2k | poor blackburn | 22:08 |
blackburn | sonney2k: what do you use for navigating when some vim'ing? | 22:11 |
blackburn | just console? | 22:11 |
@sonney2k | I don't understand the question | 22:11 |
blackburn | well there are some nerdtree or so | 22:12 |
blackburn | I mean do you exit vim, change dir, etc | 22:12 |
@sonney2k | blackburn, I use gnome-terminal with multiple tabs open | 22:13 |
@sonney2k | one for vim, one for running examples etc | 22:13 |
blackburn | so cd... blabla | 22:13 |
blackburn | vim blabla | 22:13 |
blackburn | :wq | 22:13 |
blackburn | vim blabla2 | 22:13 |
blackburn | this way? | 22:13 |
blackburn | is there some way to 'dir' current directory in vim, open something? | 22:14 |
@sonney2k | I don't exit | 22:17 |
@sonney2k | but yes jsut vim /path/todir | 22:17 |
@sonney2k | or :e /path/to/dir | 22:17 |
blackburn | aha | 22:18 |
blackburn | that is exactly I was asking | 22:18 |
blackburn | eigs=[0.0000000000,0.0000000000,0.0000000000,0.0000000000] | 22:38 |
blackburn | Time passed 0.000718832015991 | 22:38 |
blackburn | fantastic speed lol | 22:38 |
blackburn | forgot to uncomment at least one eigensolver :D | 22:38 |
@sonney2k | :)) | 22:43 |
-!- blackburn [~blackburn@188.122.238.99] has quit [Quit: Leaving.] | 22:44 | |
-!- blackburn [~blackburn@188.122.238.99] has joined #shogun | 22:44 | |
@sonney2k | f-x, any news? | 23:16 |
* sonney2k is now only semi-awake | 23:17 | |
f-x | sonney2k: yes - i'm making the changes into another cloned branch | 23:18 |
f-x | i have to remove those macro declarations right? | 23:18 |
@sonney2k | f-x, ok I guess then this will be the first thing I can look at tomorrow morning | 23:18 |
f-x | ok.. the pull request should be there by then | 23:19 |
blackburn | sonney2k: better brush your teeth first, not shogun :D or will be having similar problems :) | 23:22 |
@sonney2k | blackburn, I know what you are talking about ... | 23:24 |
CIA-32 | shogun: Sergey Lisitsyn master * rccfa941 / src/libshogun/preprocessor/ClassicMDS.cpp : Fixed segfault at ClassicMDS eigenvalues vector - http://bit.ly/iy22Bq | 23:27 |
blackburn | or damn shift-invert mode | 23:27 |
blackburn | oh* | 23:27 |
blackburn | another day with no serious result, it doesn't converge now for some reason | 23:28 |
--- Log closed Tue Jul 05 00:00:46 2011 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!