--- Log opened Thu Jul 18 00:00:36 2013 | ||
-!- FSCV [~FSCV@187.210.54.166] has quit [Quit: Leaving] | 01:01 | |
--- Log closed Thu Jul 18 01:10:47 2013 | ||
--- Log opened Thu Jul 18 01:16:21 2013 | ||
-!- shogun-toolbox [~shogun@7nn.de] has joined #shogun | 01:16 | |
-!- Irssi: #shogun: Total of 11 nicks [2 ops, 0 halfops, 0 voices, 9 normal] | 01:16 | |
-!- Irssi: Join to #shogun was synced in 6 secs | 01:16 | |
@iglesiasg | good night! | 01:21 |
---|---|---|
-!- iglesiasg [~Fernando@s83-179-44-135.cust.tele2.se] has quit [Quit: Leaving] | 01:21 | |
-!- Guest95788 [~lds@ks204975.kimsufi.com] has joined #shogun | 02:17 | |
-!- Guest95788 [~lds@ks204975.kimsufi.com] has left #shogun [] | 02:19 | |
-!- nube [~rho@36.252.175.251] has joined #shogun | 02:20 | |
-!- nube1 [~rho@36.253.200.47] has joined #shogun | 02:43 | |
-!- nube [~rho@36.252.175.251] has quit [Ping timeout: 276 seconds] | 02:43 | |
-!- zxtx [~zv@rrcs-76-79-81-162.west.biz.rr.com] has quit [Ping timeout: 248 seconds] | 02:55 | |
-!- hushell [~hushell@8-92.ptpg.oregonstate.edu] has quit [Ping timeout: 260 seconds] | 03:04 | |
-!- nube [~rho@36.252.74.87] has joined #shogun | 03:12 | |
-!- nube1 [~rho@36.253.200.47] has quit [Ping timeout: 264 seconds] | 03:13 | |
-!- pickle27 [~Kevin@d67-193-243-174.home3.cgocable.net] has joined #shogun | 03:14 | |
-!- hushell [~hushell@c-24-21-220-10.hsd1.or.comcast.net] has joined #shogun | 03:16 | |
-!- pickle27 [~Kevin@d67-193-243-174.home3.cgocable.net] has quit [Quit: Leaving] | 03:26 | |
-!- nube [~rho@36.252.74.87] has quit [Ping timeout: 246 seconds] | 04:42 | |
-!- nube [~rho@116.90.239.13] has joined #shogun | 05:35 | |
-!- zxtx [~zv@cpe-75-83-151-252.socal.res.rr.com] has joined #shogun | 07:00 | |
-!- gsomix__ [~gsomix@95.67.187.5] has joined #shogun | 07:33 | |
-!- gsomix_ [~gsomix@95.67.183.60] has quit [Ping timeout: 245 seconds] | 07:36 | |
-!- vgorbati [c3ee5cb1@gateway/web/freenode/ip.195.238.92.177] has joined #shogun | 08:47 | |
-!- iglesiasg [~Fernando@s83-179-44-135.cust.tele2.se] has joined #shogun | 09:11 | |
-!- mode/#shogun [+o iglesiasg] by ChanServ | 09:11 | |
@iglesiasg | morning everyone | 09:12 |
-!- foulwall` [~user@2001:da8:215:503:55a7:5925:5abd:ac97] has joined #shogun | 09:18 | |
-!- Yanglittle [b74040fc@gateway/web/freenode/ip.183.64.64.252] has joined #shogun | 09:55 | |
Yanglittle | hey is there any body? | 09:55 |
@iglesiasg | Yanglittle: yes, sure. What is it? | 09:58 |
hushell | iglesiasg: how are you? | 10:17 |
@iglesiasg | hushell: hey! good good, what about you? | 10:20 |
Yanglittle | the performance of mkl is lower than the best single kernel. is there any suggestions? | 10:27 |
@iglesiasg | Yanglittle: what is the single kernel? | 10:28 |
@iglesiasg | Yanglittle: and what kernels are you using in MKL? | 10:28 |
@iglesiasg | correct me if I am wrong, in MKL you input a set of kernels from which the algorithm will choose what weights to give to each one, right? | 10:28 |
Yanglittle | yeah. | 10:28 |
hushell | iglesiasg: good! seems you have finished the LMNN :) | 10:29 |
@iglesiasg | hushell: well, sort of the first version of it. I am preparing right now some unit tests before I send the pull request | 10:29 |
@iglesiasg | Yanglittle: so what is the kernel you are using in the single case and the ones you use in MKL? | 10:30 |
hushell | sounds good, you are doing fast! | 10:30 |
Yanglittle | both are chi2kernel | 10:30 |
@iglesiasg | hushell: so so :) | 10:30 |
hushell | iglesiasg: where can I watch your talk :D | 10:30 |
@iglesiasg | hushell: wiking and/or sonney2k will edit them and put them in youtube I think | 10:31 |
hushell | That's nice! | 10:33 |
hushell | I am going to sleep now, I'll go back to check my PR tomorrow | 10:34 |
@iglesiasg | ok, good night! | 10:34 |
@iglesiasg | hushell: what about Patrick btw? | 10:34 |
@iglesiasg | I read you said something he had moved | 10:34 |
hushell | He is kind of busy I think | 10:34 |
@iglesiasg | aaah ok | 10:34 |
hushell | but it's okay | 10:34 |
@iglesiasg | we need him to have a look at the new code | 10:35 |
hushell | I know what I should do right now :) | 10:35 |
hushell | He may miss the mid-term meeting | 10:35 |
@iglesiasg | I see | 10:35 |
hushell | but we can find sometime to have a discussion here | 10:35 |
@iglesiasg | Sure, it shouldn't be a major issue | 10:36 |
hushell | let me get the inference work first :) | 10:36 |
@iglesiasg | all right | 10:36 |
hushell | all right! CU | 10:36 |
-!- hushell [~hushell@c-24-21-220-10.hsd1.or.comcast.net] has quit [Quit: WeeChat 0.3.7] | 10:37 | |
Yanglittle | .. | 10:37 |
@iglesiasg | Yanglittle: so what is you MKL setting? | 10:37 |
@iglesiasg | are you giving different values of some parameter for the chi2kernel? | 10:37 |
Yanglittle | epsilon=1e-3, num_threads=1, mkl_epsilon=0.001, mkl_norm=2 , yes , i give many parameters for every different kernel. | 10:38 |
Yanglittle | i thought it should choose the best combination that perform better than the single one. | 10:38 |
@iglesiasg | I am no MKL expert actually | 10:39 |
Yanglittle | and who is .. | 10:40 |
@iglesiasg | my idea is that you give to MKL several kernels, and it will do a linear combination of these kernels that maximizes some measure | 10:40 |
@iglesiasg | but I am not sure how many kernels you ought input it and so on | 10:41 |
Yanglittle | i didn't find where to set the measure. | 10:41 |
@iglesiasg | well I guess that is not something you can set, but a property of MKL | 10:41 |
@iglesiasg | maybe there is some freedom and you can choose someting about that I am not sure. Did you check examples and the documentation? | 10:42 |
Yanglittle | i checked. | 10:42 |
Yanglittle | all the examples i have checked. | 10:43 |
@iglesiasg | iglesiasg: so you are using several chi2kernel with different values for the width parameter in MKL? | 10:45 |
@iglesiasg | Yanglittle: ^ | 10:45 |
Yanglittle | yes, that's it. | 10:46 |
@iglesiasg | Yanglittle: out of curiosity, do you know if that could be better than using one chi2kernel with the optimal choice of the width (chosen using model selection with cross-validation) | 10:48 |
@iglesiasg | Yanglittle: in the examples I can see that they normally use *different* kernels, not the same kernel with different parameters | 10:48 |
@iglesiasg | that's why I wondered | 10:48 |
Yanglittle | in the examples, it is the same feature with different kernels, but here i have different features from the same data. | 10:51 |
@iglesiasg | Yanglittle: the same feature with different kernels? | 10:52 |
Yanglittle | for example ,for the same features, use chi2kernel, powerkernel and so on, then to find the best combination. | 10:53 |
@iglesiasg | the features are the data | 10:54 |
Yanglittle | so ? | 10:57 |
@iglesiasg | that when you say I have different features from the same data I don't understand what do you mean exactly | 10:59 |
@iglesiasg | I mean, if you are using different data (features) for your MKL setting and your single kernel setting | 10:59 |
@iglesiasg | it is not a surprise that the single one can be better | 10:59 |
Yanglittle | for training examples, we extract feature F1, and feature F2, here F1 and F2 are different features. if i concatenate F1 and F2, there'll be one feature. | 11:04 |
-!- gsomix__ [~gsomix@95.67.187.5] has quit [Quit: Leaving] | 11:13 | |
-!- Yanglittle [b74040fc@gateway/web/freenode/ip.183.64.64.252] has quit [Ping timeout: 250 seconds] | 11:24 | |
-!- lambday [67157e4c@gateway/web/freenode/ip.103.21.126.76] has joined #shogun | 11:48 | |
-!- HeikoS [~heiko@nat-164-208.internal.eduroam.ucl.ac.uk] has joined #shogun | 12:02 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 12:02 | |
thoralf | HeikoShi :) | 12:02 |
@HeikoS | thoralfhi! :) | 12:02 |
-!- nube [~rho@116.90.239.13] has quit [Quit: Leaving.] | 12:02 | |
@iglesiasg | HeikoS: hey! I've got a question about unit tests | 12:09 |
@HeikoS | iglesiasg: hi, yes? | 12:09 |
@iglesiasg | HeikoS: say I want to test several functions of the class using the same toy data | 12:09 |
@iglesiasg | HeikoS: should I create just one test for all or one test for function? | 12:09 |
@iglesiasg | HeikoS: in the second case, is it fine to have another function in the test file to have the data creation just in one part? | 12:10 |
@HeikoS | iglesiasg: if you go with the classic unit tests, you should create tests that are as small as possible, i.e. one test for every function | 12:10 |
@iglesiasg | all right | 12:11 |
@iglesiasg | I like that better too | 12:11 |
@HeikoS | iglesiasg: but there are also other ways with the mocking framework, see wiking 's examples for that | 12:11 |
@HeikoS | iglesiasg: I would not use a shared function to create the data though | 12:11 |
@HeikoS | just copy/paste the code | 12:11 |
@HeikoS | unit tests should depend on as little external code as possible | 12:11 |
@iglesiasg | HeikoS: ok, but it feels bad to repeat code :S | 12:12 |
@HeikoS | iglesiasg: true, but thats the point, that you fully controll things | 12:12 |
@HeikoS | iglesiasg: just keep the toy data as small as possible to get a reasonable test | 12:12 |
@iglesiasg | HeikoS: ok | 12:13 |
@iglesiasg | thanks! | 12:13 |
@HeikoS | iglesiasg: no problem :) | 12:14 |
lambday | HeikoS: hi :) | 12:14 |
@HeikoS | lambday: hi! | 12:15 |
lambday | I've got a problem - even creating a simple SGSparseMatrix<complex64_t> gives segfaults | 12:15 |
lambday | HeikoS: I'm sending you the code | 12:15 |
lambday | exact same code with float creates no problem | 12:15 |
@HeikoS | lambday: what does the code? | 12:15 |
@HeikoS | cloning? | 12:15 |
@HeikoS | lambday: we have to remove the sparse matrices from the parameter framework again, nothing will work with them | 12:16 |
lambday | HeikoS: it just creates a SGSparseMatrix (I was writing unit-tests for operator*) | 12:16 |
@HeikoS | lambday: I see | 12:16 |
@HeikoS | show me | 12:16 |
-!- mode/#shogun [+o sonney2k] by ChanServ | 12:16 | |
lambday | HeikoS: https://gist.github.com/lambday/6028280 | 12:20 |
@sonney2k | foulwall`, around? | 12:21 |
@sonney2k | wiking, ping again? | 12:21 |
@HeikoS | lambday: | 12:21 |
@HeikoS | /home/heiko/Desktop/shogun/shogun/src/shogun/mathematics/eigen3.h:17:24: fatal error: Eigen/Eigen: No such file or directory | 12:21 |
@HeikoS | weiiiird | 12:21 |
lambday | whoa!! | 12:22 |
@HeikoS | lambday: this is where is it for me | 12:22 |
@HeikoS | /usr/include/eigen3/Eigen/Eigen | 12:22 |
lambday | HeikoS: that's really weird!!!! | 12:23 |
lambday | HeikoS: anyway you can comment that eigen3 part... its not needed anyway | 12:24 |
@HeikoS | lambday: ok | 12:24 |
lambday | my gdb says it gets screwed up in unref() in SGReferencedData.cpp I guess | 12:25 |
@HeikoS | lambday: but the second test fails | 12:25 |
@HeikoS | and it needs eigen | 12:25 |
lambday | HeikoS: umm... just comment that out :D even creating SGSparseMatrix with complex64_t gives segfaults :( | 12:25 |
@HeikoS | lambday: ok compiled | 12:26 |
lambday | HeikoS: segfault? :-s | 12:26 |
@HeikoS | yes, isolating the problem ... | 12:26 |
@HeikoS | test1 segfaults here | 12:27 |
lambday | test1?? the float 1?? | 12:27 |
@HeikoS | lambday: not sorry | 12:27 |
@HeikoS | wait :) | 12:27 |
lambday | hehe :D | 12:27 |
@iglesiasg | sonney2k: ping | 12:29 |
@sonney2k | iglesiasg, pong | 12:31 |
@iglesiasg | sonney2k: so you mentioned something the other day about the PR | 12:31 |
@iglesiasg | sonney2k: https://github.com/shogun-toolbox/shogun/pull/1237 | 12:32 |
-!- vgorbati [c3ee5cb1@gateway/web/freenode/ip.195.238.92.177] has quit [Quit: Page closed] | 12:32 | |
lambday | I'll be back in 5 mins | 12:32 |
@HeikoS | lambday: the problem is caused by the = operator which unrefs the old SGSparseVector<complex64_t>, (which does not exist) | 12:36 |
@sonney2k | iglesiasg, errm no I see this for the first time | 12:36 |
@sonney2k | iglesiasg, I commented about thoralf's PR | 12:36 |
@sonney2k | iglesiasg, IMHO with his we should drop all pthread stuff from the headers the same way you do it with eigen now | 12:37 |
@iglesiasg | sonney2k: ah all right | 12:37 |
@iglesiasg | thoralf: then you are interested about this ^ :) | 12:38 |
-!- nube [~rho@49.244.27.182] has joined #shogun | 12:38 | |
thoralf | Let me see. | 12:38 |
@iglesiasg | sonney2k: so about the LMNN PR, at the beginning I made the methods in LMNNImpl static | 12:38 |
@sonney2k | iglesiasg, but it might not be possible | 12:39 |
@iglesiasg | sonney2k: so there is no need in LMNN for a LMNNImpl member (I wanted to avoid include<LMNNImpl.h> in LMNN.h) | 12:39 |
thoralf | sonney2k, iglesiasg: I don't see comments on github. | 12:39 |
@sonney2k | iglesiasg, the train() function is way to long. you should split it up into at least 3 private sub-functions | 12:40 |
@iglesiasg | sonney2k: but that can be done also with declaring the class. So should I keep the methods static? Does it make a difference? | 12:40 |
@sonney2k | maybe one checking the paratmeters | 12:40 |
@iglesiasg | sonney2k: ok, that makes sense | 12:40 |
lambday | HeikoS: why it doesn't create problem for float64_t then? :( | 12:40 |
@HeikoS | lambday: ah, good question | 12:40 |
lambday | HeikoS: its exactly the same code :( | 12:40 |
@sonney2k | iglesiasg, basically the rule is if you need to write documentation then you better write a function which is named like your comment | 12:41 |
@iglesiasg | understood | 12:41 |
@sonney2k | iglesiasg, so maybe check_parameters, init_training, find_cutrent_impostors etc | 12:42 |
@HeikoS | sonney2k, iglesiasg this sometimes really fails, pls always write documentation | 12:42 |
@sonney2k | thoralf, no comment there | 12:42 |
@HeikoS | for users | 12:42 |
@sonney2k | HeikoS, ? | 12:42 |
@sonney2k | HeikoS, not applicable here | 12:42 |
@HeikoS | sonney2k: there are so many undocumented methods in shogun, just saying in gerneral | 12:42 |
@sonney2k | we are talking about a particular train method in a .cpp | 12:43 |
thoralf | sonney2k: Are any actions/comments required on my side? | 12:43 |
@HeikoS | sonney2k: ah sorry then | 12:43 |
@sonney2k | thoralf, with the opaque pointers iglesiasg digged out I would rather try to solve it this way | 12:43 |
@HeikoS | still, I like comments in code, you are right it should be clear by itself, but still should be commented here and there to make reading easier | 12:43 |
@sonney2k | thoralf, so shogun is self contained and doesn't need extra link flags | 12:43 |
@sonney2k | I mean | 12:44 |
@HeikoS | lambday: wow thats a really weird one | 12:44 |
thoralf | sonney2k: Okay, but my commit contained two issues. :) | 12:44 |
@sonney2k | when some C++ guy links agianst it | 12:44 |
lambday | HeikoS: complex64_t stores two doubles in two consecutive address.. | 12:45 |
thoralf | sonney2k, HeikoS: What I'm missing are not function comments (I can read them by myself) but some explaination of how classes intended to work. | 12:45 |
lambday | complex64_t v(1.0, 2.0); | 12:45 |
lambday | 0xffefffda0, val=1.000000 0xffefffda8, val=2.000000 | 12:45 |
lambday | HeikoS: :-/ | 12:45 |
@HeikoS | thoralf: every public thing should be documented in my eyes, and classes need descriptions you are right | 12:46 |
@HeikoS | lambday: yes, currently running debugger | 12:46 |
thoralf | sonney2k, HeikoS: Good examples are classes, which tell "this method solves <x_i, w> >= 1 + for ..." | 12:46 |
thoralf | etc. | 12:46 |
@HeikoS | thoralf: yes, agreed | 12:47 |
@sonney2k | thoralf, yeah your best guess is the example | 12:47 |
thoralf | HeikoS: Yes, but comments get outdated very fast when reafctoring. But the purpose of a class seldom changes. | 12:47 |
thoralf | HeikoS: Nobody changes comments once they are there. ;) | 12:48 |
@HeikoS | yes, we do not need many comments, just a few, since the get outdated, but class documentation has to be updated upon refactoring, no way around that | 12:48 |
@sonney2k | HeikoS, *amen* | 12:48 |
@sonney2k | it is really tough to do this | 12:49 |
@sonney2k | when you do a massive refactoring | 12:49 |
@sonney2k | you need to check all comments too | 12:49 |
@sonney2k | few people do this | 12:49 |
@sonney2k | and it is a lot of work | 12:49 |
@sonney2k | but yes I know... | 12:49 |
@HeikoS | sonney2k, thats true, but big picture comments dont change that often | 12:49 |
@HeikoS | like "this block does this and that where the idea is bla" | 12:50 |
@HeikoS | anyway | 12:50 |
@HeikoS | sonney2k: lambday found an interesting bug | 12:50 |
@HeikoS | maybe you have an idea? | 12:50 |
@sonney2k | which is? | 12:50 |
@iglesiasg | wiking, HeikoS : I see we need jinja2 now to build the unit tests | 12:50 |
thoralf | / First do initialization | 12:50 |
thoralf | init(); | 12:50 |
@iglesiasg | HeikoS: easy_install Jinja2 && pip install Jinja2? | 12:50 |
thoralf | / run training | 12:50 |
thoralf | train() | 12:50 |
thoralf | :) | 12:50 |
@sonney2k | thoralf, :P | 12:51 |
@HeikoS | thoralf: haha! :) | 12:51 |
@HeikoS | sonney2k: https://gist.github.com/karlnapf/6028411 | 12:51 |
@sonney2k | that is what I meant we shouldn't do | 12:52 |
@sonney2k | iglesiasg, I've read more of your code. In general please shorten your functions a bit - split them up into smaller logical units | 12:52 |
@sonney2k | this makes things easier believe me :) | 12:52 |
thoralf | Anyone here who did not read "Clean Code"? | 12:52 |
@iglesiasg | sonney2k: all right, will do | 12:52 |
@HeikoS | sonney2k: float64_t works, complex fails upon unrefing the "old" SGSParseVector in the matrix | 12:53 |
@iglesiasg | thoralf: I didn't | 12:53 |
@sonney2k | thoralf, me neither but I had a lecture from uncle bob just a week ago | 12:53 |
@sonney2k | HeikoS, uiii subtle! | 12:54 |
@sonney2k | HeikoS, lambday I know... it is my malloc hack | 12:55 |
lambday | sonney2k: malloc hack? | 12:55 |
@HeikoS | when the matrix is allocated? | 12:55 |
@HeikoS | sonney2k: I just tried replacing that by calloc but no help | 12:55 |
@sonney2k | lambday, I guess adding SG_SPECIALIZED_MALLOC(SGSparseVector<complex64_t>) to shogun/lib/memory.cpp (end of the file) will fix it | 12:55 |
lambday | sonney2k: aha! trying it | 12:56 |
thoralf | sonney2k: I just contains rules like "speaking names instead of comments", etc. But it also sets a "economical" state of mind for writing code, that can be understood. | 12:56 |
@HeikoS | sonney2k: man | 12:56 |
@HeikoS | where is this coming from? | 12:56 |
@sonney2k | HeikoS, not sure you want to know | 12:56 |
@HeikoS | what does this do? | 12:56 |
@sonney2k | HeikoS, we have these SG_MALLOC etc macros | 12:57 |
@sonney2k | which use malloc underneath | 12:57 |
@sonney2k | however there is one catch | 12:58 |
@HeikoS | lambday: that fixes it :) | 12:58 |
@sonney2k | when you use a try C++ object which needs an inplace constructor call | 12:58 |
thoralf | sonney2k: Back to my PR: It also contains fixes for running "make check-examples" without calling "make install" first. | 12:58 |
@sonney2k | as in you want to have an SGVector array | 12:58 |
@HeikoS | sonney2k: yes like SGReferencedData | 12:58 |
@sonney2k | etc | 12:58 |
@sonney2k | with malloc its constructor is not called | 12:59 |
thoralf | sonney2k: I think its very handy when using IDEs. | 12:59 |
@HeikoS | sonney2k: ok cool, learned another thing today | 12:59 |
@sonney2k | so you would need to use new FOO[10](); | 12:59 |
@sonney2k | note the () at the end | 12:59 |
@HeikoS | sonney2k: yep I see | 12:59 |
@sonney2k | it will call the constructor of FOO for all 10 elements | 12:59 |
@HeikoS | sonney2k: why dont we have SG_NEW then? | 13:00 |
@sonney2k | now we could either overload our malloc code to use new[]() on SG* (which I did) | 13:00 |
@iglesiasg | lambday: tests/unit/lib/computation/SerialComputationEngine_unittest.cc:48: undefined reference to `shogun::CDenseMatrixOperator<double>::CDenseMatrixOperator(shogun::SGMatrix<double>)' | 13:00 |
@iglesiasg | lambday: do you get that too? | 13:00 |
@HeikoS | since the behaviour is not really MALLOC like (it initialises things=) | 13:00 |
@iglesiasg | lambday: I think it is in your unit tests | 13:00 |
@sonney2k | or call new[]() directly | 13:00 |
@sonney2k | or drop SG_MALLOC and always use new* | 13:00 |
@HeikoS | sonney2k: but then its not traced | 13:00 |
@sonney2k | yeah | 13:01 |
@sonney2k | no tracing and no realloc | 13:01 |
@sonney2k | no idea | 13:01 |
@HeikoS | sonney2k: mmmh | 13:01 |
lambday | iglesiasg: I'll check | 13:01 |
@sonney2k | all not optimal | 13:01 |
@HeikoS | sonney2k: I mean I like SG_MALLOC, but couldnt we just have SG_NEW in addition which does the new thing and traces? | 13:01 |
@HeikoS | then it would also be clear how they are used: the same way as in c++ | 13:01 |
@iglesiasg | lambday: I get it running make in tests/unit | 13:01 |
lambday | HeikoS: did it fix? I get the same error :-/ | 13:02 |
@HeikoS | lambday: no fixes it for me | 13:02 |
@HeikoS | (at least for my small example) | 13:02 |
lambday | iglesiasg: I'll surely check and change it.. I must have missed a few things :-/ don't know how that worked here | 13:02 |
lambday | HeikoS: checking again | 13:03 |
@HeikoS | lambday: no all fine | 13:03 |
@HeikoS | just tried once more | 13:03 |
@sonney2k | HeikoS, no idea how to do it other than the way I do it with sgmalloc currently | 13:04 |
@HeikoS | sonney2k: new macro SG_NEW? | 13:05 |
@HeikoS | which calls constructors? | 13:05 |
@HeikoS | or even rename SG_MALLOC to SG_NEW | 13:05 |
@HeikoS | which would then be consistent with c++ api | 13:05 |
@HeikoS | but thats a subtlety | 13:05 |
@iglesiasg | lambday: maybe it is my bad, who knows | 13:05 |
@HeikoS | sonney2k, iglesiasg, ipython notebooks can even play sounds | 13:07 |
@HeikoS | http://nbviewer.ipython.org/urls/raw.github.com/Carreau/posts/master/07-the-sound-of-hydrogen.ipynb | 13:07 |
@sonney2k | HeikoS, then you have to know when to use what... no idea I tried to hide that but as you can see it can cause issues... | 13:07 |
@iglesiasg | HeikoS: funny! | 13:08 |
@sonney2k | HeikoS, that would be cool for pickle27's demo! | 13:08 |
@HeikoS | sonney2k: if we would call it SG_NEW, I think it would be fine, since c++ new does exactly what our SG_MALLOC does | 13:08 |
@HeikoS | sonney2k: say do you got another minute? | 13:09 |
@HeikoS | sonney2k: want to talk about model-selection framework | 13:09 |
@HeikoS | sonney2k: so currently there is a problem with setting registered parameters: we directly modify the memory | 13:10 |
@HeikoS | so no checks for illegal values, and no post-modification of things that depend on parameters | 13:10 |
@HeikoS | which is both bad | 13:10 |
@HeikoS | lisitsyn recently proposed automagic setters/getters based on registered parameters, | 13:11 |
@sonney2k | (sounds like the intro of a paper) | 13:11 |
@HeikoS | if we had them, maybe we could use them for the above case | 13:11 |
@HeikoS | developers could overload them and add checks if they want, or recompute maximum string length or whatever | 13:12 |
@HeikoS | sonney2k: another problem I currently have with the grid-search framework: | 13:12 |
@HeikoS | its way easier to just write a nested loop and use Shoguns cross-validation class to select parameters | 13:12 |
@sonney2k | HeikoS, so all user set paraemters would go through lisitsyn's setters/getters right? | 13:12 |
@HeikoS | sonney2k: yes | 13:13 |
@sonney2k | we just have to make sure that we don't cause some stupid slowdowns | 13:13 |
@HeikoS | and we could call those automatically also | 13:13 |
@HeikoS | I have to talk so sergey about this | 13:13 |
@HeikoS | just an idea | 13:13 |
@HeikoS | I played a bit with all this for examples and had a few problems with it | 13:13 |
@HeikoS | sonney2k: and the other thing: | 13:14 |
@HeikoS | all those trees are horrible, and sometimes its also unstable | 13:14 |
@HeikoS | so here is a provocative statement: lets drop the model-selection | 13:14 |
@HeikoS | provide proper (stable) cross-validation instead - it is the hard part of model selection anyway | 13:14 |
@HeikoS | and then users would have to write the loop themselves and use setters to change parameters | 13:15 |
@HeikoS | it seems so much easier and even more flexible (see SVM-C problem) | 13:15 |
@sonney2k | woa! | 13:16 |
@sonney2k | dropping your own gsoc project is quite sth1 | 13:16 |
@HeikoS | sonney2k: its somewhat extreme I know, but think about it | 13:16 |
@HeikoS | what would that mean | 13:16 |
@HeikoS | or: can we make things a bit easier to controll | 13:17 |
@HeikoS | after all, its only half of the gsoc project, since x-validation was a major part | 13:17 |
@HeikoS | its just the grid-search | 13:17 |
@HeikoS | writing a nested loop and use setters seems so much easier | 13:18 |
@HeikoS | and much less work for us: no model-selection api, easier parameter framework changes, no parameter tree cross-product, smaller examples etc | 13:19 |
@sonney2k | HeikoS, it is but I remember that we had lots of people asking back then for the grid search ms feature | 13:19 |
@HeikoS | sonney2k: so if we have an example that explains how to do that? its just two lines per parameter: loop and setter call | 13:20 |
@HeikoS | we still have x-validation so its easy to get a performanc emeasure of your choice | 13:20 |
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun | 13:20 | |
shogun-notifier- | shogun: Soeren Sonnenburg :develop * f3b43d5 / src/shogun/lib/SGReferencedData.cpp,src/shogun/lib/SGReferencedData.h: https://github.com/shogun-toolbox/shogun/commit/f3b43d57592c643ccde07202d163844cbf990ec4 | 13:20 |
shogun-notifier- | shogun: move pthread include from .h -> .cpp | 13:20 |
@sonney2k | HeikoS, people rarely use x-validation but rather fixed splits when they have enough data | 13:20 |
@HeikoS | sonney2k: well that can be emulated with the class easily | 13:21 |
@HeikoS | sonney2k: just thinking about how to make things a bit easier | 13:21 |
@HeikoS | sonney2k: but its just a thought, wanted to share it | 13:21 |
@sonney2k | HeikoS, I get you point but I don't know. There is no win-win here... | 13:21 |
@HeikoS | sonney2k: its just sooo hard to maintain the modelselection framework | 13:22 |
@HeikoS | I mean we have it and it works, so one doesnt *have* to use it | 13:22 |
@sonney2k | HeikoS, maybe explicit trees are not the best way then. maybe doing it recursively over the parameters would be easier | 13:22 |
@HeikoS | sonney2k: I agree, but I have the feeling that doing this with the parameter framework is somewhat of an overkill - so much code, so many things to test, so many cases, so much time spent. but its so easy to do it without the framework | 13:23 |
@sonney2k | thoralf, only 14 classes with pthread left :D | 13:23 |
@HeikoS | x-validation is harder to do, people shy away from that usually, but brute-force trying all parameters is something everyone knows | 13:24 |
@HeikoS | sonney2k: btw for MMD, I did not even attempt to integrate the kernel selection in the modelselection framework, way too complicated | 13:24 |
@HeikoS | sonney2k: and for GPs I am also unsure whether it would be easier to have class that is specialised on GPs only. Easier to handle etc | 13:25 |
@sonney2k | HeikoS, if it is that difficult than it is not useful | 13:25 |
@HeikoS | sonney2k: Ill start a discussion on github, lets see what the others think | 13:27 |
@HeikoS | sonney2k: how can I add issues labels on github? | 13:28 |
@HeikoS | got it | 13:29 |
shogun-buildbot | build #1460 of deb1 - libshogun is complete: Failure [failed test] Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb1%20-%20libshogun/builds/1460 blamelist: Soeren Sonnenburg <sonne@debian.org> | 13:33 |
-!- foulwall [~user@2001:da8:215:503:4467:308e:f09f:763] has joined #shogun | 13:36 | |
@sonney2k | foulwall, ping? | 13:36 |
foulwall | Hey sonney2k , I talked with lisitsyn about the demention reduction demo. | 13:37 |
-!- foulwall` [~user@2001:da8:215:503:55a7:5925:5abd:ac97] has quit [Ping timeout: 264 seconds] | 13:37 | |
foulwall | sonney2k: pong. | 13:37 |
@sonney2k | foulwall, yeah seen it | 13:37 |
@sonney2k | foulwall, so you can use his code right? | 13:37 |
foulwall | right, just add a image uploader | 13:37 |
@sonney2k | foulwall, I am wondering about ocr currently | 13:38 |
@sonney2k | are you still working on the ocr demo? | 13:38 |
foulwall | ah, forgot to send pr. | 13:38 |
-!- iglesiasg [~Fernando@s83-179-44-135.cust.tele2.se] has quit [Quit: Leaving] | 13:38 | |
foulwall | problems are fixed | 13:39 |
lisitsyn | foulwall: sorry but that's dimension reduction :) | 13:39 |
-!- iglesiasg [~iglesias@s83-179-44-135.cust.tele2.se] has joined #shogun | 13:39 | |
-!- mode/#shogun [+o iglesiasg] by ChanServ | 13:39 | |
foulwall | lisitsyn: :) | 13:39 |
@sonney2k | foulwall, please do then and show us the demo :) | 13:39 |
lisitsyn | demention is too close to dementia which is mental illness | 13:39 |
lisitsyn | :D | 13:39 |
foulwall | ok sonney2k | 13:39 |
foulwall | lisitsyn: haha | 13:40 |
@sonney2k | foulwall, you should give me a tour - so I can try to add a few algorithms my own with your framework | 13:43 |
-!- travis-ci [~travis-ci@ec2-54-234-188-131.compute-1.amazonaws.com] has joined #shogun | 13:44 | |
travis-ci | [travis-ci] it's Soeren Sonnenburg's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/9222493 | 13:44 |
-!- travis-ci [~travis-ci@ec2-54-234-188-131.compute-1.amazonaws.com] has left #shogun [] | 13:44 | |
@sonney2k | foulwall, not now but soon. if you could maybe put this into a README would be great so I could try my own | 13:44 |
@sonney2k | and it will be helpful for others later | 13:44 |
-!- lisitsyn [~lisitsyn@92-240-133-94.clients.tlt.100megabit.ru] has left #shogun [] | 13:44 | |
foulwall | ok sonney2k | 13:44 |
-!- lisitsyn [~lisitsyn@92-240-133-94.clients.tlt.100megabit.ru] has joined #shogun | 13:47 | |
-!- mode/#shogun [+o lisitsyn] by ChanServ | 13:47 | |
@sonney2k | wiking, maybe you read this later - we need a blacklist for failing classes for the serialization tests for the time beeing | 13:51 |
@sonney2k | then we can fix them one by one | 13:51 |
@sonney2k | wiking, I wrote some is_valid function - no idea if it works the intended way | 13:52 |
shogun-notifier- | shogun: Soeren Sonnenburg :develop * e6c551d / src/shogun/ (4 files): https://github.com/shogun-toolbox/shogun/commit/e6c551da1377e573790d2c344deef691e622af40 | 13:57 |
shogun-notifier- | shogun: move pthread .h -> .cpp | 13:57 |
@sonney2k | thoralf, 4 pthread's are missing now then all good :) | 13:57 |
shogun-buildbot | build #1461 of deb1 - libshogun is complete: Failure [failed test] Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb1%20-%20libshogun/builds/1461 blamelist: Soeren Sonnenburg <sonne@debian.org> | 14:17 |
@wiking | sonney2k: yeah i saw it | 14:19 |
@wiking | it should work .... we should add a different list as well for classes like DenseFeatures... where the function arg for new_sgserializable is not PT_NOT_GENERIC | 14:20 |
-!- travis-ci [~travis-ci@ec2-54-234-188-131.compute-1.amazonaws.com] has joined #shogun | 14:21 | |
travis-ci | [travis-ci] it's Soeren Sonnenburg's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/9223403 | 14:21 |
-!- travis-ci [~travis-ci@ec2-54-234-188-131.compute-1.amazonaws.com] has left #shogun [] | 14:21 | |
@iglesiasg | lambday, hey there! I just saw you issued a PR, that fixes already those tests we mentioned before? | 14:41 |
lambday | iglesiasg: yes | 14:41 |
lambday | :D | 14:41 |
lambday | iglesiasg: lol I just mentioned your name in that PR | 14:41 |
@iglesiasg | lambday, hehe | 14:42 |
@iglesiasg | lambday, thank you for fixing it so promptly! | 14:42 |
lambday | iglesiasg: but I can't get unit-tests compiled completely.. | 14:42 |
lambday | iglesiasg: hehe | 14:42 |
@iglesiasg | lambday, oh really, still? What is it? | 14:42 |
lambday | iglesiasg: I installed jinja2 but it gives segfaults for one of the clone methods and gets out of there | 14:43 |
lambday | sorry, clone tests | 14:43 |
lambday | HeikoS: | 14:43 |
lambday | iglesiasg: sorry I meant, compiled just fine.. couldn't check | 14:44 |
@iglesiasg | lambday, all right | 14:44 |
lambday | iglesiasg: could you please check once when it gets merged? :( | 14:46 |
@iglesiasg | lambday, yes, I will | 14:46 |
lambday | iglesiasg: thanks :) | 14:46 |
@iglesiasg | no problem ;) | 14:47 |
@sonney2k | wiking, so shall we add an additional blacklist set / dictionary? | 14:52 |
shogun-notifier- | shogun: lambday :develop * a892cdc / / (13 files): https://github.com/shogun-toolbox/shogun/commit/a892cdc09c96b8d11df48e687207d4312093e278 | 15:09 |
shogun-notifier- | shogun: fixes and added unit-tests in log-det | 15:09 |
shogun-notifier- | shogun: Heiko Strathmann :develop * cb4ceff / / (13 files): https://github.com/shogun-toolbox/shogun/commit/cb4ceff0f0aa6fe61ba3133e555f1bbe1299444d | 15:09 |
shogun-notifier- | shogun: Merge pull request #1252 from lambday/feature/log_determinant | 15:09 |
shogun-notifier- | shogun: | 15:09 |
shogun-notifier- | shogun: fixes and added unit-tests in log-det | 15:09 |
@HeikoS | lambday, iglesiasg yes the clone tests curently segfault | 15:10 |
lambday | HeikoS: alright.. | 15:10 |
lambday | HeikoS: by the way, I used a non-SG type struct in CG solver... | 15:10 |
@HeikoS | lambday: but thats good, bugs in clone are detected this way, for all classes from now :) | 15:10 |
lambday | HeikoS: yes.. :) | 15:10 |
@HeikoS | lambday: could you explain this a bit? | 15:10 |
lambday | HeikoS: I added a class IterativeSolverIterator which is not SG type | 15:11 |
lambday | HeikoS: and I used that in solve method inside CG solver | 15:11 |
@HeikoS | lambday: I see, that should be fine, just hide it to the outside world :) | 15:12 |
lambday | HeikoS: it takes Eigen3 things as params so didn't keep it in standard way | 15:12 |
lambday | HeikoS: hide as in? | 15:12 |
@HeikoS | lambday: not expose it through modular interfaces or through methods as a parameter | 15:12 |
@HeikoS | just internal c++ parameter | 15:13 |
lambday | HeikoS: alright.. I haven't added any modular interface for any of the classes yet (not sure how that is done yet).. | 15:13 |
lambday | I'll keep in mind when I do | 15:13 |
@HeikoS | lambday: dont worry its very easy | 15:13 |
@HeikoS | lambday: but this class is not parameter or return value of some method right? | 15:14 |
lambday | HeikoS: nope | 15:14 |
lambday | HeikoS: just used internally inside solve method of CG | 15:14 |
@HeikoS | lambday: you can do anything for internal things :) | 15:15 |
lambday | HeikoS: alright :D | 15:15 |
lambday | HeikoS: saw your comments.. will change the msgs :) | 15:17 |
@HeikoS | lambday: yeah sorry I should have been more clear on this | 15:17 |
@HeikoS | but it is always good to have the numbers if there is a problem | 15:18 |
lambday | HeikoS: yes.. more helpful for the users | 15:18 |
shogun-buildbot | build #1463 of deb1 - libshogun is complete: Failure [failed test] Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb1%20-%20libshogun/builds/1463 blamelist: Heiko Strathmann <heiko.strathmann@gmail.com> | 15:23 |
shogun-buildbot | build #1462 of deb1 - libshogun is complete: Failure [failed test] Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb1%20-%20libshogun/builds/1462 blamelist: lambday <heavensdevil6909@gmail.com> | 15:26 |
-!- gsomix [~gsomix@178.45.92.6] has joined #shogun | 15:27 | |
gsomix | sonney2k, hey | 15:27 |
@HeikoS | wiking: around? | 15:28 |
-!- travis-ci [~travis-ci@ec2-23-20-131-34.compute-1.amazonaws.com] has joined #shogun | 15:39 | |
travis-ci | [travis-ci] it's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/9225440 | 15:39 |
-!- travis-ci [~travis-ci@ec2-23-20-131-34.compute-1.amazonaws.com] has left #shogun [] | 15:39 | |
-!- iglesiasg_ [~iglesias@s83-179-44-135.cust.tele2.se] has joined #shogun | 15:45 | |
-!- iglesiasg [~iglesias@s83-179-44-135.cust.tele2.se] has quit [Read error: Connection reset by peer] | 15:45 | |
lambday | HeikoS: I'll be back later.. currently thinking what more tests can I add | 15:53 |
lambday | HeikoS: I'll add COCG by tonight I am hopinh | 15:53 |
@HeikoS | lambday: ok, thats time well spent :) | 15:53 |
lambday | HeikoS: hehe :D | 15:54 |
lambday | HeikoS: bye for now :) see you | 15:55 |
-!- lambday [67157e4c@gateway/web/freenode/ip.103.21.126.76] has quit [] | 15:55 | |
-!- foulwall [~user@2001:da8:215:503:4467:308e:f09f:763] has quit [Ping timeout: 264 seconds] | 16:00 | |
gsomix | sonney2k, sorry, was not availbale at morning/day. I'm working on csv, but have some questions. | 16:11 |
-!- nube [~rho@49.244.27.182] has quit [Ping timeout: 240 seconds] | 16:18 | |
iglesiasg_ | ok ,see you later people | 16:23 |
-!- iglesiasg_ [~iglesias@s83-179-44-135.cust.tele2.se] has quit [Quit: Leaving] | 16:24 | |
-!- pickle27 [~Kevin@d67-193-243-174.home3.cgocable.net] has joined #shogun | 16:24 | |
-!- foulwall [~user@2001:da8:215:6901:1548:83bb:4040:5bd7] has joined #shogun | 16:28 | |
foulwall | Hey sonney2k | 16:29 |
foulwall | pr sent, and you can check the ocr @ http://nn.7nn.de:8000/ocr/entrance | 16:30 |
-!- foulwall [~user@2001:da8:215:6901:1548:83bb:4040:5bd7] has quit [Ping timeout: 245 seconds] | 16:36 | |
-!- foulwall [~user@2001:da8:215:c252:e1fd:aee6:b45f:82d6] has joined #shogun | 16:41 | |
pickle27 | foulwall: very cool demo! | 16:42 |
thoralf | foulwall: Cool, feels like Microsoft Paint ;) | 16:42 |
-!- lambday [67157d4c@gateway/web/freenode/ip.103.21.125.76] has joined #shogun | 16:48 | |
-!- foulwall [~user@2001:da8:215:c252:e1fd:aee6:b45f:82d6] has quit [Ping timeout: 245 seconds] | 16:58 | |
-!- foulwall [~user@2001:da8:215:c252:b159:493b:b848:a6ab] has joined #shogun | 17:01 | |
foulwall | thanks pickle27 , thoralf | 17:02 |
foulwall | dive into dementia reduction demo:) | 17:04 |
@lisitsyn | foulwall: looks cool! | 17:27 |
@lisitsyn | foulwall: just one bug I spotted - when you paint some more prediction is changed | 17:27 |
@lisitsyn | but not the pixelized thing to the right | 17:28 |
foulwall | thanks lisitsyn , I'll have a check | 17:31 |
-!- van51 [~van51@athedsl-399972.home.otenet.gr] has joined #shogun | 17:41 | |
-!- foulwall [~user@2001:da8:215:c252:b159:493b:b848:a6ab] has quit [Ping timeout: 245 seconds] | 17:41 | |
gsomix | van51, hey | 17:48 |
van51 | gsomix: hello | 17:48 |
gsomix | van51, how are you? | 17:49 |
van51 | gsomix: fine :) how about you? | 17:49 |
gsomix | van51, me too, but I have question. | 17:49 |
van51 | gsomix: shoot | 17:50 |
gsomix | van51, what solution for quoting in DelimiterTokenizer you keep in your mind? | 17:50 |
van51 | gsomix: you mean to handle situations like "... \".. " ? | 17:51 |
gsomix | yep | 17:51 |
gsomix | I think, I need it. And I can try to do it myself. | 17:51 |
gsomix | But need your advice | 17:52 |
van51 | gsomix: I guess I would add a case if the current char is \ to not consider the next char as a delimiter | 17:52 |
van51 | gsomix: by setting a flag maybe | 17:53 |
van51 | gsomix: but I think it needs to be discussed more if it is to be inserted in the delimiter phase | 17:54 |
van51 | gsomix: as in what it would do in "\\" etc | 17:55 |
van51 | gsomix: have you discussed it with sonney2k? | 17:56 |
thoralf | gsomix: Could you do a trivial change for me? gcc complaing about "#include <cstdio>_" in io/LineReader.cpp | 17:56 |
van51 | gsomix: if you 're parsing each line through the tokenizer it really feels like the support for that should be added in there | 17:57 |
gsomix | thoralf, yeah, I'll fix it. | 17:57 |
thoralf | gsomix: No hurry, it's only a warning. | 17:57 |
thoralf | io/LineReader.cpp:10:18: warning: extra tokens at end of #include directive [enabled by default] | 17:57 |
van51 | gsomix: let me try to get through a compiler error and I'll see what I can do in the tokenizer class :) | 17:59 |
gsomix | van51, "have you discussed it with sonney2k?" nope, waiting for evening. | 17:59 |
gsomix | van51, ok! | 17:59 |
-!- shogun-notifier- [~irker@7nn.de] has quit [Quit: transmission timeout] | 18:10 | |
-!- lambday [67157d4c@gateway/web/freenode/ip.103.21.125.76] has quit [] | 18:13 | |
@HeikoS | lisitsyn, sonney2k around? | 18:18 |
@HeikoS | { return g == PT_NOT_GENERIC? new CRealFileFeatures(): NULL; } | 18:18 |
@HeikoS | I dont understand that | 18:18 |
@HeikoS | can I only create empty instances if the generic type is PT_NOT_GENERIC? | 18:19 |
-!- iglesiasg [~iglesias@2001:6b0:1:1041:6549:4678:d91c:7b6f] has joined #shogun | 18:20 | |
-!- mode/#shogun [+o iglesiasg] by ChanServ | 18:20 | |
@iglesiasg | guten Tag | 18:22 |
thoralf | Guten Tag :D | 18:23 |
@iglesiasg | :) | 18:23 |
@iglesiasg | do you guys have problems with git? | 18:27 |
@iglesiasg | git fetch upstream | 18:27 |
@iglesiasg | hangs forever here | 18:27 |
thoralf | iglesiasg: It took a while, but it works. | 18:29 |
@HeikoS | tada | 18:29 |
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun | 18:29 | |
shogun-notifier- | shogun: Heiko Strathmann :develop * 2163945 / src/shogun/kernel/BesselKernel.cpp: https://github.com/shogun-toolbox/shogun/commit/2163945fb06fbaad66322bd228f9399e932be5ec | 18:29 |
shogun-notifier- | shogun: removed double parameter | 18:29 |
shogun-notifier- | shogun: Heiko Strathmann :develop * ddcd0b6 / src/shogun/kernel/MultiquadricKernel.h,src/shogun/kernel/PyramidChi2.h: https://github.com/shogun-toolbox/shogun/commit/ddcd0b6917003be4199f047bc18ca0dad40b12e2 | 18:29 |
shogun-notifier- | shogun: fixed return of get_name | 18:29 |
shogun-notifier- | shogun: Heiko Strathmann :develop * 7bc238f / src/shogun/kernel/BesselKernel.cpp: https://github.com/shogun-toolbox/shogun/commit/7bc238f6c206ba24165c4cffb2661fdc26c689c4 | 18:29 |
shogun-notifier- | shogun: removed another double parameter | 18:29 |
shogun-notifier- | shogun: Heiko Strathmann :develop * faea6dd / src/shogun/base/SGObject.cpp: https://github.com/shogun-toolbox/shogun/commit/faea6dded5bb7c35ce63ec2f636f84a9a662217e | 18:29 |
shogun-notifier- | shogun: fixed typo | 18:29 |
shogun-notifier- | shogun: Heiko Strathmann :develop * a44ff18 / src/shogun/kernel/string/ (2 files): https://github.com/shogun-toolbox/shogun/commit/a44ff18fcdffeffb523d061b283b3cc39a235764 | 18:29 |
shogun-notifier- | shogun: cleaned up and fixed some uninitialised memory bugs. Proper parameter registering | 18:29 |
shogun-notifier- | shogun: Heiko Strathmann :develop * 0e4ef5e / src/shogun/kernel/string/ (2 files): https://github.com/shogun-toolbox/shogun/commit/0e4ef5e4bf8d784aa3ba55ae85b85933827ef671 | 18:29 |
shogun-notifier- | shogun: autoformatter, some more cleanups | 18:29 |
shogun-notifier- | shogun: removed PT_NOT_GENERIC thing again | 18:30 |
shogun-notifier- | shogun: Heiko Strathmann :develop * fd06ef2 / src/shogun/ (14 files): https://github.com/shogun-toolbox/shogun/commit/fd06ef255329b318f2d7bddbc7fa47bd279db80e | 18:30 |
shogun-notifier- | shogun: Merge pull request #1258 from karlnapf/develop | 18:30 |
shogun-notifier- | shogun: | 18:30 |
shogun-notifier- | shogun: A bunch of bugfixes detected by clone/equals automated tests | 18:30 |
shogun-buildbot | build #1464 of deb1 - libshogun is complete: Failure [failed test] Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb1%20-%20libshogun/builds/1464 blamelist: Heiko Strathmann <heiko.strathmann@gmail.com> | 18:32 |
shogun-buildbot | build #1466 of deb1 - libshogun is complete: Failure [failed test] Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb1%20-%20libshogun/builds/1466 blamelist: Heiko Strathmann <heiko.strathmann@gmail.com> | 18:34 |
@lisitsyn | HeikoS: still here? | 18:43 |
@HeikoS | lisitsyn: yes hi | 18:43 |
@lisitsyn | hey | 18:43 |
@lisitsyn | okay so you have a problem with realfilefeatures only right? | 18:43 |
@HeikoS | lisitsyn: any idea about the PT_Generic thing | 18:43 |
@HeikoS | lisitsyn: yes two issues: | 18:44 |
@HeikoS | first: | 18:44 |
@HeikoS | CSGObject* object = new_sgserializable("DynamicArray", PT_NOT_GENERIC); | 18:44 |
@HeikoS | returns NULL | 18:44 |
@lisitsyn | that's correct | 18:44 |
@lisitsyn | iirc dynamic array is templated, right? | 18:44 |
@HeikoS | exactly | 18:44 |
@HeikoS | so how to automatically extract that? :) | 18:45 |
@lisitsyn | like whether the class is templated? | 18:45 |
@HeikoS | lisitsyn: have a look at the file clone_unittest jinja | 18:45 |
@lisitsyn | we have some detection for that in class_list.cpp.py | 18:45 |
@HeikoS | lisitsyn: wiking has to add that to the test then :) | 18:46 |
@lisitsyn | I can do that | 18:46 |
@HeikoS | lisitsyn: cool :) | 18:46 |
shogun-buildbot | build #1465 of deb1 - libshogun is complete: Failure [failed test] Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb1%20-%20libshogun/builds/1465 blamelist: Heiko Strathmann <heiko.strathmann@gmail.com> | 18:46 |
@HeikoS | lisitsyn: so the test then has to be generated for all types of all templated classes | 18:46 |
@HeikoS | lisitsyn: cool! | 18:47 |
@HeikoS | lisitsyn: there is another problem: | 18:47 |
@HeikoS | CSGObject* copy=new_sgserializable(get_name(), this->m_generic); | 18:47 |
@HeikoS | thats done in clone | 18:47 |
@lisitsyn | yeah probably | 18:47 |
@HeikoS | but the problem is: if you have a class that inherits from a generic one with fixed T | 18:47 |
@HeikoS | it is not detected as generic | 18:47 |
@HeikoS | but m_generic is still set to T | 18:48 |
@HeikoS | so again, returns NULL | 18:48 |
@HeikoS | the way to fix that that I see is to manually set generic to PT_NOT_GENERIC when you derice from a generic class with fixed T | 18:48 |
@wiking | HeikoS: ping | 18:48 |
@HeikoS | lisitsyn: do you agree? | 18:48 |
@HeikoS | wiking: hi! | 18:48 |
@wiking | HeikoS: yes yes basically if u get null | 18:48 |
@wiking | you could start doing the rest | 18:48 |
@HeikoS | wiking: ah good to see you, 100s of questions :) | 18:48 |
@lisitsyn | HeikoS: yes sure | 18:48 |
@wiking | yeah yeah i kniw | 18:48 |
@lisitsyn | wiking: looks ukrainian | 18:49 |
@wiking | so CSGObject* object = new_sgserializable("GaussianKernel", PT_NOT_GENERIC); | 18:49 |
@HeikoS | wiking: so issue 2 first, manually do set_generic(PT_NOT_GENERIC) | 18:49 |
@lisitsyn | kniw :D | 18:49 |
@wiking | and object == NULL | 18:49 |
@wiking | then you could start like | 18:49 |
@wiking | CSGObject* object = new_sgserializable("GaussianKernel", PT_NOT_GENERIC); | 18:49 |
@wiking | CSGObject* object = new_sgserializable("GaussianKernel", PT_BOOL); | 18:49 |
@wiking | etc etc. | 18:49 |
@wiking | or? | 18:49 |
@HeikoS | wiking: but the problem is for example with RealFileFeatures: public CDenseFeatures<float64_t> | 18:49 |
@wiking | HeikoS: nono | 18:49 |
@HeikoS | wiking: yes thats the solution for problem 1 | 18:49 |
@wiking | HeikoS: that is actually not the case | 18:50 |
@lisitsyn | HeikoS: but that's not generic right? | 18:50 |
@HeikoS | wiking: but problem 2, how to solve that | 18:50 |
@HeikoS | lisitsyn: true, but it inherits from a generic class | 18:50 |
@HeikoS | and doesnt reset the m_generic flag | 18:50 |
@lisitsyn | uhmm I am a bit lost then | 18:50 |
@lisitsyn | ahhh | 18:50 |
@wiking | HeikoS: why don't you do this: | 18:50 |
@wiking | if the new_sgserializable(<whatever>, PT_NOT_GENERIC); | 18:51 |
@lisitsyn | so all our classes are generic once their parent is generic | 18:51 |
@wiking | returns NULL then you need to use PT_BOOL, PT_CHAR etc. | 18:51 |
@wiking | either you do this or do a list of classes that are 'special' | 18:51 |
@wiking | meaning that they are not generic... | 18:51 |
@wiking | like CDenseFeatures, CDenseSubsetFeatures etc. | 18:52 |
@wiking | or this wouldn't work? | 18:52 |
@lisitsyn | wiking: yes that solves this problem | 18:52 |
@lisitsyn | trouble arises when we have | 18:53 |
@HeikoS | wiking: which problem are you talking about, 1 or 2? | 18:53 |
@lisitsyn | sgobject -> ... -> generic -> not generic | 18:53 |
@HeikoS | lisitsyn: thats problem 2 | 18:53 |
@HeikoS | lets structure this a bit | 18:53 |
@lisitsyn | HeikoS: yes but 1 is easy to solve right? | 18:53 |
@HeikoS | first problem: | 18:53 |
@lisitsyn | ;) | 18:53 |
@wiking | ok what's the first problem? :) | 18:53 |
@wiking | and what is 2nd? | 18:53 |
@HeikoS | CSGObject* object = new_sgserializable("DynamicArray", PT_NOT_GENERIC); | 18:54 |
@HeikoS | returns NULL in the unit test template | 18:54 |
@wiking | HeikoS: yes | 18:54 |
@wiking | becuase | 18:54 |
@HeikoS | so we have to extract the PT_GENERIC for the class that we put in the template and fill it in accordingly | 18:54 |
@HeikoS | thats not hard right? | 18:54 |
@HeikoS | class_list.py can do this already | 18:54 |
@lisitsyn | easy yes | 18:54 |
@lisitsyn | class_list.py does that so I am on it | 18:54 |
@HeikoS | lisitsyn: cool, thanks! | 18:55 |
@HeikoS | second problem: | 18:55 |
@HeikoS | inheritance: sgbject->generic->non_generic | 18:55 |
@wiking | HeikoS: example plz | 18:55 |
@HeikoS | like for example CRealFileFeatures: public CDenseFeatures<float64_t> | 18:55 |
@HeikoS | this->m_generic is set to PT_FLOAT64 | 18:55 |
@HeikoS | so creating an empty instance of CRealFileFeatures with PT_NOT_GENERIC fails | 18:56 |
@wiking | HeikoS: this problem arises in the clone() method itself, or? | 18:56 |
@HeikoS | wiking: yes | 18:56 |
@wiking | so it's not related with the unit test itself | 18:56 |
@HeikoS | since when you clone, you want to create an empty instance of the same PT_GENERIC type | 18:56 |
@HeikoS | wiking: no | 18:56 |
@HeikoS | but similar issue | 18:56 |
@wiking | ah i see | 18:57 |
@wiking | shit :S | 18:57 |
@HeikoS | so my solution would be that classes that inherit from generic ones but are not templated have to set m_generic=PT_NOT_GENERIC by hand | 18:57 |
@HeikoS | this can be detected through the automated unit tests (they fail otherwise) | 18:57 |
@wiking | HeikoS: mmm that would make sense | 18:57 |
@HeikoS | but I wonder whether there is an automagic solution | 18:57 |
@wiking | i mean THAT class is actually PT_NOT_GENERIC | 18:57 |
@HeikoS | wiking: exactly | 18:58 |
@wiking | so semantically takeing the meaning of PT_NOT_GENERIC and PT_GENERIC | 18:58 |
@HeikoS | wiking: I mean it is not generic | 18:58 |
@wiking | the class that is inherited from a generic class, but itself is not generic | 18:58 |
@wiking | it should be PT_NOT_GENERIC | 18:58 |
@HeikoS | wiking: yes | 18:58 |
@HeikoS | so where are the PT_GENERIC set? | 18:58 |
@wiking | i'm for this solution | 18:58 |
@HeikoS | manually? | 18:58 |
@HeikoS | lisitsyn: what do you think? | 18:58 |
@HeikoS | wiking: I think thats fine. If people add new classes and forget that, unit tests will fail :D | 18:59 |
@HeikoS | wiking: how do I add new files with tests? | 18:59 |
@HeikoS | I tried (not hard) but failed :) | 18:59 |
@wiking | HeikoS: i would set it in the constructor of the class or it's init() function if it has... like CRealFileFeatures should set m_generic or whatever to PT_NOT_GENERIC by hand | 19:00 |
@wiking | HeikoS: ok what ya need | 19:00 |
@wiking | what kind of unit test? | 19:00 |
@HeikoS | I wanted to have some seperate tests for checking the output of get_name() that is executed before the others | 19:00 |
@wiking | just write on gist one TEST() block and i'll generate the automated template test for it | 19:01 |
@HeikoS | then test clone before clone_equals | 19:01 |
@HeikoS | and also test equals (on empty instances) before clone_equals | 19:01 |
@wiking | okok | 19:01 |
@HeikoS | and then finally, test all sorts of serialisations | 19:01 |
@wiking | that's fine | 19:01 |
@HeikoS | wiking: since currently clone_equals fails but one doesnt know the reason, the others would help there and are fast to run | 19:01 |
@wiking | no worries | 19:01 |
@wiking | can u write one example of each? | 19:01 |
@wiking | with any class | 19:02 |
@wiking | e.g. CRealFileFeatures | 19:02 |
@wiking | ? | 19:02 |
@wiking | put it on gist and i'll write the template + py script to generate the tests for all classes | 19:02 |
@HeikoS | wiking: for the first ones thats trivial | 19:03 |
@HeikoS | EXPECT_TRUE(strcmp(get_name(), {{class_name}})==0); | 19:03 |
@HeikoS | wiking: but ok I will do | 19:03 |
@wiking | HeikoS: i guess it should be not only a separate test but a separate file? | 19:04 |
@HeikoS | wiking: yes | 19:04 |
@wiking | or it could be part of the clone_unittest? | 19:04 |
@wiking | (i wouldn't go with that option...) | 19:04 |
@HeikoS | wiking: and could we soon try to run all those automated test with valgrind automagically? | 19:04 |
@HeikoS | wiking: no new file would be better I think | 19:04 |
@HeikoS | wiking: https://gist.github.com/karlnapf/6031039 | 19:09 |
@HeikoS | if these would be executed (in this order) before the clone_equals, this would help a lot | 19:09 |
@HeikoS | wiking, lisitsyn maybe talk to each other as sergey is modifying the generator scripts for the tests to consider all generic cases | 19:13 |
@lisitsyn | sorry was trying to repair my bike :D | 19:14 |
@wiking | lisitsyn: :DDDD | 19:14 |
@wiking | HeikoS: so the gist1 would be testing equails | 19:14 |
@lisitsyn | chain got disconnected | 19:14 |
@wiking | HeikoS: and gist2 would be testing clone itself | 19:14 |
@HeikoS | wiking: ehm :) | 19:15 |
@wiking | and after this clone+equails? | 19:15 |
@wiking | *equals | 19:15 |
@wiking | ah nooo | 19:15 |
@wiking | i see | 19:15 |
@wiking | okok | 19:15 |
@HeikoS | wiking: yes, first equals on empty instances, then clone itself, then clone&equals | 19:15 |
@HeikoS | so if we run them with valgrind, we will see where problems are coming from | 19:15 |
@wiking | okok | 19:18 |
@wiking | i'm on it | 19:18 |
shogun-notifier- | shogun: Heiko Strathmann :develop * b757a6d / src/shogun/kernel/string/SpectrumMismatchRBFKernel.cpp: https://github.com/shogun-toolbox/shogun/commit/b757a6d1d416d6df896e88b52f6d1ab6bd16010d | 19:18 |
shogun-notifier- | shogun: whitespace change | 19:18 |
shogun-notifier- | shogun: Heiko Strathmann :develop * a384e6b / src/shogun/features/RealFileFeatures.cpp,src/shogun/features/RealFileFeatures.h: https://github.com/shogun-toolbox/shogun/commit/a384e6b4400bdeb2d4158a45cbc81b9336a4c0cb | 19:18 |
shogun-notifier- | shogun: remove generic type by hand | 19:18 |
shogun-notifier- | shogun: Heiko Strathmann :develop * e0b2b58 / src/shogun/ (3 files): https://github.com/shogun-toolbox/shogun/commit/e0b2b5805ba326666121185044ac8decd3f95830 | 19:18 |
shogun-notifier- | shogun: Merge pull request #1259 from karlnapf/develop | 19:18 |
shogun-notifier- | shogun: | 19:18 |
shogun-notifier- | shogun: unset generic for RealFileFeatures | 19:18 |
@HeikoS | wiking, lisitsyn this fixes problem 2 :) | 19:18 |
@HeikoS | man sooo many bugy detected by this automated stuff | 19:19 |
@HeikoS | really good, we will be able to rely on those methods in the future, good for parallel stuff etc | 19:19 |
@lisitsyn | HeikoS: ok let me fix the P1 then | 19:19 |
shogun-buildbot | build #1468 of deb1 - libshogun is complete: Failure [failed test] Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb1%20-%20libshogun/builds/1468 blamelist: Heiko Strathmann <heiko.strathmann@gmail.com> | 19:23 |
shogun-buildbot | build #1467 of deb1 - libshogun is complete: Failure [failed test] Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb1%20-%20libshogun/builds/1467 blamelist: Heiko Strathmann <heiko.strathmann@gmail.com> | 19:36 |
@HeikoS | lisitsyn: MulticlassStrategy is missing in class_list.cpp any idea whsy? | 19:39 |
@lisitsyn | HeikoS: hmm | 19:39 |
@HeikoS | lisitsyn: abstract :) | 19:40 |
@lisitsyn | ah yes | 19:40 |
@HeikoS | getting tired her e:) | 19:42 |
@sonney2k | Re | 19:44 |
@sonney2k | HeikoS, had a good day? | 19:45 |
@HeikoS | sonney2k: ehm, why? ) | 19:45 |
@sonney2k | wiking, did you check the videos already? | 19:45 |
@sonney2k | HeikoS, hacked like hell? | 19:45 |
@HeikoS | sonney2k: yeah had some time today :) | 19:45 |
-!- travis-ci [~travis-ci@ec2-54-226-190-137.compute-1.amazonaws.com] has joined #shogun | 19:48 | |
travis-ci | [travis-ci] it's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/9233755 | 19:48 |
-!- travis-ci [~travis-ci@ec2-54-226-190-137.compute-1.amazonaws.com] has left #shogun [] | 19:48 | |
@HeikoS | sonney2k: flow of bugs doesnt stop :) | 19:48 |
@HeikoS | but I am half way through | 19:48 |
@HeikoS | the class list | 19:48 |
@sonney2k | HeikoS, it can only grow :) | 19:48 |
@HeikoS | now CGUIPluginEstimate | 19:48 |
@HeikoS | sonney2k: these tests by wiking are worth gold | 19:48 |
@sonney2k | wait everything CGUI* should not be in the test | 19:48 |
@HeikoS | we can actually make sure that all those things work | 19:48 |
@HeikoS | wiking: ^ | 19:48 |
@HeikoS | sonney2k: still contains uninitialsed variables | 19:49 |
@HeikoS | wiking, sonney2k we can leave them in there | 19:52 |
@HeikoS | its good to have these checks | 19:52 |
@sonney2k | iglesiasg, with the opaque pointer stuff - we should somehow mark the classes that we don't want to expose externally | 19:53 |
@sonney2k | so we don't install these headers | 19:53 |
@iglesiasg | sonney2k, sure | 19:53 |
@iglesiasg | sonney2k, so are we doing it to reduce compilation time mainly? | 19:54 |
@iglesiasg | sonney2k, or are there other reasons? | 19:54 |
@sonney2k | iglesiasg, I see 3 reasons | 19:55 |
@sonney2k | 1) reduce compilation time | 19:55 |
@sonney2k | 2) reduce swig wrapper code size | 19:55 |
@sonney2k | 3) don't have external library dependencies (like pthread/eigen...) in shogun code | 19:55 |
@iglesiasg | sonney2k, a couple of questions: 1) the classes for opaque pointers, should they inherit from SGObject? | 19:56 |
@sonney2k | iglesiasg, they can do whatever they want | 19:56 |
@iglesiasg | all right | 19:57 |
@iglesiasg | sonney2k, that answers the second question too I guess so no need :) | 19:57 |
@HeikoS | sonney2k: any reason why in GUI you dont ref parameters? SG_REF I mean | 19:57 |
@sonney2k | HeikoS, legacy code... | 19:58 |
@HeikoS | sonney2k: so its safe to add this? | 19:58 |
@sonney2k | HeikoS, I woudln't voluntarily touch this code | 20:00 |
@HeikoS | have to | 20:00 |
@HeikoS | uninitialised mrmory | 20:00 |
thoralf | HeikoS: Hehe, initialization should be safe for working code. | 20:04 |
thoralf | HeikoS: If it doesn't work afterwards, you found something really-weird[tm]. ;) | 20:04 |
@HeikoS | thoralf: indeed :) | 20:05 |
thoralf | HeikoS: I like these kind of bugs. :) | 20:05 |
@HeikoS | I mean all shogun objcets should not crash if you just call the base constructor and delete afterwards right? | 20:05 |
@iglesiasg | let's say all objects :) | 20:06 |
thoralf | "My fix shouldn't have any side effects. Why did it stopped working anyway?" | 20:06 |
thoralf | HeikoS: There are more objects like this. One second. | 20:06 |
@wiking | HeikoS: yes i can :) | 20:06 |
@HeikoS | wiking: thanks :) | 20:06 |
@HeikoS | thoralf: I will find them all | 20:07 |
thoralf | This one should be one of them: src/shogun/structure/SequenceLabels.cpp | 20:07 |
thoralf | Just an educated guess. Tell me if I was right. :) | 20:07 |
@HeikoS | thoralf: will do :) | 20:09 |
@HeikoS | very soon, we will have none of those | 20:09 |
gsomix | sonney2k, hey? | 20:09 |
thoralf | HeikoS: [ERROR] constructur CStructuredLabels() needs size argument | 20:09 |
thoralf | HeikoS: I guess it should be at least marked as SG_NOTIMPLEMENTED | 20:09 |
thoralf | :) | 20:09 |
thoralf | HeikoS: But actually that's no crash. | 20:10 |
@HeikoS | wiking: do you have an idea how we can test non-trivial class instances in an automatic way? | 20:12 |
@HeikoS | so not base constructor | 20:12 |
@sonney2k | gsomix, hey | 20:14 |
gsomix | sonney2k, how are you? | 20:14 |
@sonney2k | iglesiasg, problem is that I have this pthread class here | 20:14 |
@sonney2k | iglesiasg, all in .h (templated class) | 20:14 |
thoralf | HeikoS: Hmm. The test generator then needs to understand the semantic of the parameters *and* also needs to initialize them properly. | 20:14 |
thoralf | HeikoS: So if the parameters are also non-trivial? ;) | 20:14 |
@sonney2k | iglesiasg, now I am refactoring it into a CLock class providing all the functions there | 20:14 |
@iglesiasg | sonney2k, that sounds good. Is there any problem doing that? | 20:15 |
@sonney2k | iglesiasg, but it has a state / a type variable so my CLock.h depends on pthread but I don't want it too | 20:15 |
@sonney2k | to | 20:15 |
@sonney2k | gsomix, did swim my first few km | 20:15 |
@HeikoS | thoralf: yes | 20:15 |
@sonney2k | but too much wind | 20:15 |
@HeikoS | obviously devs have to write those | 20:16 |
thoralf | HeikoS: Anyway, automated tests are bad since they don't have real assertions. | 20:16 |
gsomix | sonney2k, I'm stuck with some details. are there some ideas how truly work with quotation? | 20:16 |
@HeikoS | I am thinking of something that is being provided but then automatically checked | 20:16 |
@sonney2k | gsomix, truly as in? | 20:16 |
thoralf | HeikoS: But you could generate code for different corner cases for every data type (lets say SGMatrix) and then manually write code like: new CFooBar(empty_sgmatrix), new CFooBar(one_element_sgmatrix), etc. | 20:17 |
thoralf | HeikoS: So everyone can re-use this code without bothering about trivial test cases. | 20:18 |
@sonney2k | gsomix, I think you can only follow https://en.wikipedia.org/wiki/Comma-separated_values#Basic_rules_and_examples | 20:18 |
thoralf | HeikoS: Eliminate code duplication when initializing tests. :) | 20:18 |
@sonney2k | gsomix, I don't really care if we don't support *all* of it though | 20:19 |
@sonney2k | the most basic format will be sufficient most of the time | 20:19 |
@sonney2k | gsomix, as in just ,'s | 20:19 |
@iglesiasg | sonney2k, any way to get rid of that state variable easily? | 20:20 |
@HeikoS | thoralf: this is more to check that all is set up fine for serialisation and clone | 20:20 |
thoralf | HeikoS: So forget automatic tests - just make it easy[tm] to write new tests. | 20:20 |
thoralf | HeikoS: I know. But you asked for automatic tests. ;) | 20:20 |
@HeikoS | thoralf: no, this actually help developers writing new classes since theyx are forced to do the basic things correctly | 20:21 |
@iglesiasg | sonney2k, if you make the methods in CLock used in the pthread class static, then the pthread class does not need a CLock member and it could make sense to have a pthread class member in CLock | 20:21 |
thoralf | HeikoS: Writing tests as an tutorial into shogun? | 20:22 |
@HeikoS | thoralf: thats always good :) | 20:22 |
thoralf | HeikoS: I think if you ("we") provide code for trival corner cases, this will help even sonney2k to write more test. ;) | 20:22 |
@sonney2k | iglesiasg, the only idea I have is to use a void* currently and alloc / cast it from the .cpp | 20:22 |
gsomix | sonney2k, hm, ok. I just want to ask when I should process quotation: either in BufferedReader or in DelimiterTokenizer? I think that it's work for tokenizer - it will be automagically for readers. | 20:23 |
@iglesiasg | it sounds pro-hacking :) | 20:23 |
@sonney2k | gsomix, ohh I thought that this is not even the tokenizer nor the reader | 20:24 |
@sonney2k | but the csvreader | 20:24 |
thoralf | HeikoS: Just imagine some kind of emplate: "CFoobar( __INSERT_SG_MATRIX_HERE__ )", then generate some code that iterates over all provided SG_MATRIX instances, instanciates and destroys instances. | 20:24 |
@HeikoS | thoralf: totally | 20:25 |
gsomix | sonney2k, in this case I should read line, then tokenize by <quote_char> and analyze it. right? | 20:25 |
@sonney2k | gsomix, I mean stuff like " " can just be stripped for everything that is not string | 20:25 |
thoralf | HeikoS: Some python script that generates CPP code. | 20:25 |
@HeikoS | thoralf: we have this, look at wikings tests | 20:26 |
@sonney2k | gsomix, and for strings you might need to merge multiple tokens if they contain a , (and this is the delimiter token) | 20:26 |
@sonney2k | and the strings are in " " | 20:26 |
thoralf | HeikoS: But why can't you use this to write automated tests for non-trivial constructors? | 20:26 |
@sonney2k | gsomix, so your job is easy for all non-string stuff | 20:27 |
@HeikoS | thoralf: I get the idea now, nice idea | 20:27 |
@HeikoS | so we have a set of objects of all sorts of types | 20:27 |
@HeikoS | that are then inserted into the constructors | 20:27 |
@HeikoS | sounds tricky, but might actually be helpful | 20:27 |
thoralf | HeikoS: All you need to do is to write a "template" for each constructor you want to test. | 20:27 |
thoralf | HeikoS: Why tricky? | 20:27 |
thoralf | HeikoS: just write: foreach my $sgmatrix (@sgmatrices) { print "void foo${i}Test() { CFoobar * f = new CFoobar( $placeholder ); delete f; }\n"; } | 20:29 |
@sonney2k | gsomix, csv is no 'standard' so supporting a couple of formats is totally sufficient | 20:30 |
@HeikoS | thoralf: we have a lot more classes in sghoun thats why I think its tricky | 20:30 |
thoralf | HeikoS: Okay, I understand. | 20:30 |
@sonney2k | gsomix, you should send a PR once you have the simplest variants working | 20:30 |
@sonney2k | gsomix, we can always improve | 20:30 |
thoralf | HeikoS: Need to go. See you tomorrow? | 20:30 |
@HeikoS | thoralf: bye! :) | 20:30 |
thoralf | HeikoS: I like your idea, maybe I could help. | 20:30 |
@sonney2k | gsomix, OK or questions? | 20:31 |
thoralf | HeikoS: At least for memory-checking it could be handy. | 20:31 |
@sonney2k | iglesiasg, better ideas? | 20:31 |
gsomix | sonney2k, questions. :) reader is responsible for determining the number of columns, not user. right? | 20:32 |
@sonney2k | iglesiasg, I mean this is what I have: https://gist.github.com/sonney2k/6031731 | 20:32 |
@HeikoS | thoralf: cool, lets discuss soon! | 20:32 |
gsomix | for csv | 20:32 |
@sonney2k | gsomix, sure | 20:32 |
@iglesiasg | sonney2k, did you read the one with static methods? | 20:33 |
@sonney2k | gsomix, but with an optional SGVector<index_t> argument where the user can specify which columns to take | 20:33 |
@sonney2k | iglesiasg, yeah but you have no state then right? | 20:33 |
@iglesiasg | true... stupid solution | 20:34 |
-!- zxtx [~zv@cpe-75-83-151-252.socal.res.rr.com] has quit [Ping timeout: 248 seconds] | 20:34 | |
-!- pickle27 [~Kevin@d67-193-243-174.home3.cgocable.net] has quit [Quit: Leaving] | 20:34 | |
@iglesiasg | I am thinking | 20:35 |
gsomix | sonney2k, ok. now I'm little stuck with sequential read. My BufferedReader does not guarantee, that stream position will be at end of token after read. | 20:36 |
@iglesiasg | sonney2k, but I don't understand. Why does it need the state from the pthread class? | 20:36 |
gsomix | is it problem? | 20:36 |
@sonney2k | iglesiasg, it is the lock | 20:37 |
@iglesiasg | sonney2k, the class CLock here is *not* the one to cover with opaque pointer then? | 20:37 |
@sonney2k | gsomix, I don't get it then. Doesn't your buffered reader read 1 line at a time? | 20:38 |
@sonney2k | iglesiasg, no no it is CSGObject / CMap etc | 20:38 |
@sonney2k | iglesiasg, these need some way to 'lock' things | 20:38 |
gsomix | sonney2k, nope. reader read big block of file in buffer. and then tokenizing it in memory. | 20:38 |
@sonney2k | against concurrent access (pthread) | 20:38 |
@iglesiasg | ok | 20:39 |
@sonney2k | gsomix, I thought you use it to just read full lines? I mean I know that it internally reads big blocks but then? | 20:39 |
@sonney2k | gsomix, what do you do? | 20:39 |
@iglesiasg | sonney2k, so the CSGObject, the CMap, etc have a CLock member | 20:40 |
@sonney2k | iglesiasg, problem is I need this pthread_spinlock_t or pthread_mutex_t in CLock | 20:40 |
@sonney2k | iglesiasg, yes | 20:40 |
@sonney2k | iglesiasg, I could certainly have a void* lock; in CLock | 20:41 |
@iglesiasg | sonney2k, but we don't need to expose the CLock to the interfaces either | 20:41 |
@sonney2k | and then allocate the real lock to this | 20:41 |
@sonney2k | iglesiasg, no but it is some .h still | 20:41 |
gsomix | sonney2k, then, after reading of big block, you can get token (part of the file between the delimiters) in useful form: string or number. | 20:42 |
gsomix | but stream position of your file is at end of big block. | 20:42 |
@iglesiasg | sonney2k, aham ok. Then the problem here is different. I do include eigen and STL stuff in the LMNNImpl header | 20:42 |
@sonney2k | iglesiasg, so you mean not to expose CLock to anything outside right? | 20:42 |
@iglesiasg | sonney2k, yes | 20:43 |
@sonney2k | gsomix, but why not get line by line? and then csv tokenize the line? | 20:43 |
@sonney2k | iglesiasg, so how do we mark classes then that are not to be exported? | 20:44 |
@sonney2k | not swigged etc? | 20:44 |
@iglesiasg | sonney2k, isn't some SWIG instruction to do that? | 20:44 |
@iglesiasg | I thought that was the whole point of it :) | 20:45 |
@iglesiasg | that there was something to tell SWIG not to create wrappers around some classes | 20:45 |
gsomix | sonney2k, yes, that's what I was thinking today. it will produce little more SGVectors. but not critical. | 20:45 |
gsomix | sonney2k, next question about ?File interface. Do we plan to change it? | 20:48 |
gsomix | I mean change pure arrays to SGVectors. | 20:49 |
@sonney2k | iglesiasg, ahh yes sure we just don't %include it | 20:49 |
@sonney2k | iglesiasg, but not that we also install the .h files | 20:50 |
@iglesiasg | sonney2k, that's it! | 20:50 |
@sonney2k | iglesiasg, and in principle everyone can just use the libshogun.so* and the *.h files and do everything from c++ w/ shogun | 20:50 |
@iglesiasg | sonney2k, yes | 20:51 |
@sonney2k | gsomix, what are you doing currently | 20:51 |
@sonney2k | ? | 20:51 |
@iglesiasg | sonney2k, although it would be actually nicer if the "opaque pointer classes" can only be used from a specific class | 20:51 |
@sonney2k | iglesiasg, in this case having a CLock class might be actually useful (it works under osx/linux ...) | 20:51 |
@sonney2k | iglesiasg, C++ has no package private so... | 20:52 |
@iglesiasg | yeah, no idea how to do that | 20:52 |
@iglesiasg | sonney2k, but anyway in this way we reduce the wrapper code size and thus, compilation time (I guess) | 20:53 |
@HeikoS | sonney2k: wow CHMM.cpp serious stuff ! | 20:55 |
@sonney2k | HeikoS, I want to minimize shogun's external .h files | 20:56 |
@HeikoS | sonney2k: agreed | 20:57 |
@sonney2k | HeikoS, as in we currently have tons of functions in .h files that we don't want to see exposed to the outside | 20:57 |
@HeikoS | yep | 20:57 |
@HeikoS | agreed | 20:57 |
@sonney2k | we had the issue with iglesiasg with eigen/std whatever external that was needed | 20:57 |
@iglesiasg | sonney2k, to the outside is basically SWIG interfaces, right? | 20:57 |
@sonney2k | but could well be hidden | 20:57 |
@HeikoS | sonney2k: how do you want to proceed on this? | 20:58 |
@sonney2k | iglesiasg, yeah basically what one can see from swig or via out libshogun interface (the .h files we ship and will install) | 20:58 |
@iglesiasg | they are still exposed in libshogun using opaque pointers, I think | 20:58 |
@sonney2k | HeikoS, the question is how to mark .h files external... | 20:58 |
@sonney2k | HeikoS, either we use some other extension - say .hpp | 20:59 |
@HeikoS | sonney2k: lisitsyn probably has best ideas on this | 20:59 |
@sonney2k | and only install .h files | 20:59 |
@lisitsyn | heyaa | 20:59 |
@HeikoS | sonney2k: I dont like that, too complicated | 20:59 |
@sonney2k | or we mark the files somehow | 20:59 |
@iglesiasg | lisitsyn, hey! | 20:59 |
@lisitsyn | the problem is .. | 20:59 |
@lisitsyn | iglesiasg: hey | 20:59 |
@sonney2k | HeikoS, as in DO_NOT_EXPORT | 20:59 |
@lisitsyn | we don't want to expose some .h? | 20:59 |
@iglesiasg | yes! | 20:59 |
@HeikoS | sonney2k: yep I like that more | 20:59 |
@sonney2k | lisitsyn, yes not install | 20:59 |
@lisitsyn | I think keeping that in filename would be better | 21:00 |
-!- pickle27 [~kevin@130.15.16.96] has joined #shogun | 21:01 | |
@sonney2k | HeikoS, apart from that woaah! You were on some crazy cleanup spray today. I don't see how stuff can work with what you suggest but anyway! wow! | 21:02 |
@sonney2k | lisitsyn, what did you do with tapkee? | 21:02 |
@sonney2k | lisitsyn, .hpp? or .internal | 21:02 |
@lisitsyn | sonney2k: I think we are installing it | 21:02 |
@sonney2k | lisitsyn, bah :/ | 21:02 |
@HeikoS | sonney2k: the unit tests dont segfault anymore now | 21:03 |
@sonney2k | HeikoS, and if we used a different file suffix | 21:03 |
@HeikoS | some fail, but thats fine | 21:03 |
@HeikoS | sonney2k: if we want to seriously use clone/equals we have to do those tests | 21:03 |
@lisitsyn | sonney2k: easiest way is to not install .hpp | 21:03 |
@HeikoS | sonney2k: I want to push things to be more stable | 21:03 |
@sonney2k | not .hpp but .h_internal or whatever | 21:03 |
@sonney2k | or .hpp | 21:03 |
@HeikoS | sonney2k: and I really think we should drop tons of code, I saw sooo many things today that will never ever work again | 21:03 |
@sonney2k | we could of course have some #define DO_NOT_EXPORT | 21:03 |
@sonney2k | and then put that in each file we don't want to expoert | 21:04 |
shogun-notifier- | shogun: Heiko Strathmann :develop * 23ee5e6 / src/shogun/base/SGObject.cpp: https://github.com/shogun-toolbox/shogun/commit/23ee5e6de9cdaa9f46562d3f6a18b7dbffbb385c | 21:04 |
shogun-notifier- | shogun: updated error message of clone fails | 21:04 |
shogun-notifier- | shogun: Heiko Strathmann :develop * 5c4d110 / src/shogun/features/streaming/StreamingHashedDocDotFeatures.cpp: https://github.com/shogun-toolbox/shogun/commit/5c4d110bdc45e70059beefa70ba15594ce2bc3e7 | 21:04 |
shogun-notifier- | shogun: fixed uninitialised memory issues | 21:04 |
shogun-notifier- | shogun: Heiko Strathmann :develop * 9f30ba8 / src/shogun/classifier/vw/VowpalWabbit.cpp: https://github.com/shogun-toolbox/shogun/commit/9f30ba8e669d44c077d3a6b4e3a1d156b78b81f2 | 21:04 |
shogun-notifier- | shogun: fixed uninitialised memory bugs | 21:04 |
@lisitsyn | do not export is worse I believe as you can't see what file is exported without looking into it | 21:04 |
shogun-notifier- | shogun: Heiko Strathmann :develop * 2298b8f / src/shogun/distance/KernelDistance.h: https://github.com/shogun-toolbox/shogun/commit/2298b8fc539cecb0b0559f773b097fcc6528bc47 | 21:04 |
shogun-notifier- | shogun: fixed null-pointer exception | 21:04 |
shogun-notifier- | shogun: Heiko Strathmann :develop * e542d2b / src/shogun/multiclass/ (3 files): https://github.com/shogun-toolbox/shogun/commit/e542d2b73d6cf7c464887a6dfb667963822f1a9b | 21:04 |
shogun-notifier- | shogun: fixed some uninitialised memory related bugs | 21:04 |
shogun-notifier- | shogun: Heiko Strathmann :develop * 15b307a / src/shogun/ui/GUIPluginEstimate.cpp,src/shogun/ui/GUIPluginEstimate.h: https://github.com/shogun-toolbox/shogun/commit/15b307a4001e688a3e57ffdf46fb5421b59c7fbf | 21:04 |
shogun-notifier- | shogun: added init method to fix uninitialsed memory bugs | 21:04 |
shogun-notifier- | shogun: Heiko Strathmann :develop * ab0d397 / src/shogun/ui/ (6 files): https://github.com/shogun-toolbox/shogun/commit/ab0d3977de71d7f031dfc8026580c7e7a39707df | 21:04 |
shogun-notifier- | shogun: fixed uninitialised memory bugs | 21:04 |
shogun-notifier- | shogun: Heiko Strathmann :develop * 783aa89 / src/shogun/ (11 files): https://github.com/shogun-toolbox/shogun/commit/783aa89bf8711c67a125218834c135e834178de0 | 21:04 |
shogun-notifier- | shogun: more uninitialised memory fixed | 21:04 |
shogun-notifier- | shogun: Heiko Strathmann :develop * 8a9fd52 / src/shogun/evaluation/ (4 files): https://github.com/shogun-toolbox/shogun/commit/8a9fd5297788bdfb056f9fa7afa4fb46f9d27efb | 21:04 |
shogun-notifier- | shogun: fixed some ultra subtle bugs that broke clone/equals | 21:04 |
@HeikoS | ah I should have squashed that sorry | 21:04 |
@sonney2k | HeikoS, seen lisitsyn's argument | 21:04 |
@sonney2k | HeikoS, I think he has a point | 21:04 |
@sonney2k | HeikoS, I would rather go for .hpp or some other suffix too | 21:05 |
@iglesiasg | sonney2k, yes me too | 21:05 |
@iglesiasg | I'd rather use another one than .hpp | 21:05 |
@sonney2k | iglesiasg, which? | 21:06 |
@sonney2k | .hsg ? | 21:06 |
@iglesiasg | sonney2k, I don't know if there is something standard used for this | 21:06 |
@iglesiasg | let's think first how would we use them | 21:06 |
@iglesiasg | would them files that are just included from .cpp files? | 21:07 |
@iglesiasg | what should we keep in there, class definition + implementation? | 21:07 |
shogun-buildbot | build #1469 of deb1 - libshogun is complete: Failure [failed test] Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb1%20-%20libshogun/builds/1469 blamelist: Heiko Strathmann <heiko.strathmann@gmail.com> | 21:07 |
@HeikoS | sonney2k, lisitsyn you know better how to do that than me :) | 21:08 |
@sonney2k | iglesiasg, these files should never be included from a .h file | 21:08 |
@sonney2k | iglesiasg, apart from that they can contain anythin | 21:08 |
@iglesiasg | sonney2k, agree | 21:09 |
shogun-buildbot | build #1471 of deb1 - libshogun is complete: Failure [failed test] Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb1%20-%20libshogun/builds/1471 blamelist: Heiko Strathmann <heiko.strathmann@gmail.com> | 21:10 |
@sonney2k | iglesiasg, I would move out all code from private (certain protected) functions into that stuff | 21:10 |
shogun-notifier- | shogun: Heiko Strathmann :develop * 0a0df56 / src/shogun/multiclass/ecoc/ECOCStrategy.cpp: https://github.com/shogun-toolbox/shogun/commit/0a0df56183d44f6af046ea033e115b5747c5b5cb | 21:10 |
shogun-notifier- | shogun: fix forgotten SG_REF | 21:10 |
shogun-notifier- | shogun: Heiko Strathmann :develop * 1207010 / src/shogun/multiclass/ecoc/ECOCStrategy.cpp: https://github.com/shogun-toolbox/shogun/commit/12070100762b7bcfbc2a475548a0ba69e6dc191b | 21:10 |
@iglesiasg | sonney2k, yes | 21:10 |
shogun-notifier- | shogun: Merge pull request #1261 from karlnapf/develop | 21:10 |
shogun-notifier- | shogun: | 21:10 |
shogun-notifier- | shogun: fix forgotten SG_REF that broke a python example | 21:10 |
@HeikoS | wiking, lisitsyn unit-tests are not segfaulting anymore, but some of them are failing, once wiking has added the other baseline tests, feel free to search for the problems | 21:11 |
@sonney2k | lisitsyn, HeikoS, iglesiasg I am for .hsg | 21:13 |
-!- travis-ci [~travis-ci@ec2-107-22-157-209.compute-1.amazonaws.com] has joined #shogun | 21:14 | |
travis-ci | [travis-ci] it's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/9235956 | 21:14 |
-!- travis-ci [~travis-ci@ec2-107-22-157-209.compute-1.amazonaws.com] has left #shogun [] | 21:14 | |
@HeikoS | going home, see you guys! | 21:14 |
@iglesiasg | HeikoS, bye! | 21:14 |
@iglesiasg | sonney2k, .hsg files are a thing or something you came up with? | 21:14 |
@iglesiasg | unassigned file extension | 21:14 |
@iglesiasg | ? | 21:15 |
@HeikoS | wiking: in fact, the remaining unit tests might be caused by the PT_NOT_GENERIC thing, the few I checked were caused by this | 21:15 |
@HeikoS | lisitsyn: ^ | 21:15 |
van51 | hello sonney2k | 21:15 |
@HeikoS | all of them are generic classes | 21:15 |
@lisitsyn | HeikoS: I am on it | 21:15 |
@lisitsyn | just near to be done actually | 21:16 |
@lisitsyn | I am writing template | 21:16 |
@HeikoS | lisitsyn: cool, how much longer does it take? will wait then | 21:16 |
van51 | sonney2k: first of all I'm sending a PR about the streaming version of the hashed sparse features | 21:16 |
@lisitsyn | HeikoS: may be 20 minutes I don't know | 21:16 |
@HeikoS | lisitsyn: ok going then :) see you tomorrow | 21:16 |
van51 | sonney2k: but I'm having a weird problem which I'll explain there, maybe you have an idea | 21:16 |
@lisitsyn | HeikoS: see you! | 21:16 |
shogun-buildbot | build #1472 of deb1 - libshogun is complete: Failure [failed test] Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb1%20-%20libshogun/builds/1472 blamelist: Heiko Strathmann <heiko.strathmann@gmail.com> | 21:17 |
van51 | sonney2k: secondly, Olivier in his email suggested that maybe I should do a cleanup of the StreamingVwFeatures class | 21:18 |
van51 | sonney2k: do you think I should do that? | 21:18 |
van51 | sonney2k: the next step would be to implement quadratic features | 21:18 |
shogun-buildbot | build #1473 of deb1 - libshogun is complete: Failure [failed test] Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb1%20-%20libshogun/builds/1473 blamelist: Heiko Strathmann <heiko.strathmann@gmail.com> | 21:19 |
van51 | sonney2k: when I get started with them, should they be an extension/extra method of the StreamingVwFeatures class? | 21:19 |
@sonney2k | iglesiasg, I came up with it would be a .h and sg for shogun internal | 21:19 |
@sonney2k | van51, hey there | 21:20 |
@iglesiasg | sonney2k, aaah ok. Then it is funny, because I found this :D http://file.downloadatoz.com/hsg-file-extension/ | 21:20 |
shogun-buildbot | build #1470 of deb1 - libshogun is complete: Failure [failed test] Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb1%20-%20libshogun/builds/1470 blamelist: Heiko Strathmann <heiko.strathmann@gmail.com> | 21:21 |
van51 | sonney2k: I g2g | 21:26 |
van51 | sonney2k: sorry for talking you so late.. | 21:26 |
van51 | sonney2k: comment here and I'll check the logs | 21:27 |
van51 | sonney2k: also I've sent the PR | 21:27 |
van51 | byes | 21:27 |
-!- van51 [~van51@athedsl-399972.home.otenet.gr] has quit [Quit: Leaving.] | 21:27 | |
gsomix | sonney2k, writing marcoses for csv reader. | 21:33 |
gsomix | sonney2k, I can send WIP PR, if it's needed. | 21:34 |
@sonney2k | gsomix, better do so we have sth to discuss | 21:35 |
gsomix | sonney2k, ok. | 21:37 |
gsomix | sonney2k, btw there is header LibSVMFile. | 21:37 |
@sonney2k | iglesiasg, ohh I have an issue wiht my CLock still | 21:38 |
gsomix | but where is code? | 21:38 |
@iglesiasg | sonney2k, what is it? | 21:38 |
@sonney2k | iglesiasg, the Map class is templated and it uses in its functions the lock.lock() etc functions *from the header* | 21:39 |
@sonney2k | iglesiasg, so I cannot use forward declarations of CLock | 21:39 |
@sonney2k | iglesiasg, and so my effort is rather pointless for CMap... | 21:39 |
@sonney2k | gsomix, not sure what you are asking | 21:40 |
-!- HeikoS [~heiko@nat-164-208.internal.eduroam.ucl.ac.uk] has quit [Quit: Leaving.] | 21:40 | |
@sonney2k | gsomix, do you mean how a libsvm == svmlight file looks like? | 21:40 |
gsomix | sonney2k, yeah, it will be useful for me. :) | 21:41 |
@sonney2k | gsomix, it is just | 21:42 |
@sonney2k | +1 index:value index:value | 21:42 |
@sonney2k | and +/-1 at the beginning is the label | 21:42 |
@iglesiasg | sonney2k, it looks messy in CMap | 21:43 |
@sonney2k | so result is a SGVector with the labels and SGSparseMatrix | 21:43 |
gsomix | sonney2k, aha, thanks. | 21:44 |
@sonney2k | gsomix, some may actually not have the labels though | 21:45 |
gsomix | sonney2k, and last question while you are here. protobuf is Google's framework? | 21:45 |
gsomix | err, format | 21:45 |
@sonney2k | gsomix, it is a general description language for data | 21:48 |
gsomix | sonney2k, http://code.google.com/p/protobuf/ this? | 21:48 |
@sonney2k | gsomix, it basically works like this: | 21:48 |
@sonney2k | gsomix, you define something like a C struct { }; with all the data in tehre | 21:49 |
@sonney2k | for *one* small struct only | 21:49 |
@sonney2k | in some .proto file | 21:49 |
@sonney2k | so for an sgvector that could actually be the whole e.g. repeated double vector=1; | 21:50 |
@sonney2k | and then you can take that .proto file and use protoc to compile it into a .cpp / .h file | 21:50 |
@sonney2k | and you get classes that you can fill with dat | 21:50 |
@sonney2k | a | 21:50 |
@sonney2k | and in the end can create a binary output stream to put on disc | 21:51 |
@sonney2k | same for loading | 21:51 |
gsomix | sonney2k, aham. | 21:51 |
@sonney2k | however there is one catch | 21:52 |
@sonney2k | you should not generate too big proto objects | 21:52 |
@sonney2k | since they need to be completely in memory | 21:52 |
@sonney2k | to be decoded / written to disc | 21:53 |
gsomix | sonney2k, there is not clear what is purpose for shogun. something like serialization for complex data? | 21:53 |
@sonney2k | gsomix, no write the data in some efficient but portable binary format | 21:54 |
@sonney2k | gsomix, protobuf exists for java python c ... | 21:54 |
gsomix | ah, ok | 21:55 |
@sonney2k | it is not for serialization | 21:55 |
@sonney2k | I mean what I would want to use it for | 21:55 |
@sonney2k | but rather for dumping objects | 21:55 |
@sonney2k | gsomix, I think we should allow one of the compressors we have in shogun to be applied on top anyways | 21:55 |
@sonney2k | but first things first | 21:56 |
@sonney2k | (see shogun/lib/Compressor.h) | 21:56 |
gsomix | sonney2k, ok. got it, thanks for briefing. | 21:56 |
-!- pickle27 [~kevin@130.15.16.96] has quit [Quit: Leaving] | 22:00 | |
-!- zxtx [~zv@rrcs-76-79-81-162.west.biz.rr.com] has joined #shogun | 22:06 | |
-!- travis-ci [~travis-ci@ec2-107-22-157-209.compute-1.amazonaws.com] has joined #shogun | 22:06 | |
travis-ci | [travis-ci] it's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/9239710 | 22:06 |
-!- travis-ci [~travis-ci@ec2-107-22-157-209.compute-1.amazonaws.com] has left #shogun [] | 22:06 | |
-!- foulwall [~user@2001:da8:215:c252:345c:3d3e:aa54:5dec] has joined #shogun | 22:29 | |
@wiking | ok | 22:50 |
@wiking | time to do some work on shogun | 22:50 |
@wiking | anybody still awake? | 22:50 |
@sonney2k | wiking, hey there! | 22:51 |
@wiking | sonney2k: yo | 22:51 |
foulwall | Hey sonney2k | 22:51 |
@sonney2k | wiking, how is it going with the videos? did you have a chance to look at them? | 22:51 |
@wiking | how's the island? | 22:51 |
@wiking | sonney2k: yep | 22:51 |
@sonney2k | foulwall, awake already? | 22:51 |
foulwall | Hello wiking | 22:51 |
@wiking | sonney2k: trying to cut them... but it'll need some nice postprocessing | 22:51 |
@wiking | sonney2k: i'll have them before august | 22:52 |
@wiking | but i cannot promise more than that | 22:52 |
@wiking | ok? | 22:52 |
@sonney2k | wiking, yes certainly - much faster than me! | 22:52 |
foulwall | nop, too hot here, I cannot fall asleep. | 22:52 |
@sonney2k | foulwall, heh comfy here around 22 C at day time | 22:54 |
@sonney2k | and 16C at night | 22:54 |
@sonney2k | wiking, yeah it is nice here. wind is a bit strong to swim but body surfing is fun too | 22:54 |
@wiking | sonney2k: i'm at 35+ day and 25+ night ;) | 22:54 |
@wiking | sonney2k: the island is covered with 3g? :P | 22:55 |
@sonney2k | wiking, poor guy | 22:55 |
@wiking | sonney2k: nah i love hot weather | 22:55 |
@wiking | so it's good for me | 22:55 |
@sonney2k | wiking, yes I bought a t-mobile prepaid just for that | 22:55 |
@wiking | sonney2k: hehehe cool | 22:55 |
@sonney2k | but for some reason I spent my 1G limit within 1 week already | 22:55 |
@wiking | lol | 22:55 |
@wiking | too much pr0n ;))))) | 22:56 |
@sonney2k | so now I am on 32K | 22:56 |
@sonney2k | and linux updates ;) | 22:56 |
@wiking | :D | 22:56 |
@wiking | ah shit | 22:56 |
@wiking | somebody fix this | 22:56 |
@wiking | as i keep forgetting it | 22:56 |
@sonney2k | wiking, no seriously I was sharing this amoung a couple of android / linux devices | 22:56 |
@sonney2k | I guess they all updated over night | 22:56 |
@wiking | or is this intentional: | 22:56 |
@wiking | io/LineReader.cpp:10:18: warning: extra tokens at end of #include directive [-Wextra-tokens] | 22:56 |
@wiking | #include <cstdio>_ | 22:56 |
@wiking | aaah yeah for sure they work autoupdating all the apps | 22:57 |
@sonney2k | wiking, no gsomix promised to fix this - but you are like #3 to report it | 22:57 |
@wiking | ah ok | 22:57 |
@wiking | fixing it now | 22:57 |
@wiking | good that github has webeditor ;) | 22:57 |
shogun-notifier- | shogun: Viktor Gal :develop * 26b76c6 / src/shogun/io/LineReader.cpp: https://github.com/shogun-toolbox/shogun/commit/26b76c6ae7f6290b57cb4c5744ee7933215f47da | 22:58 |
shogun-notifier- | shogun: Remove extra tokens at end of #include | 22:58 |
@wiking | done | 22:58 |
gsomix | wiking, tnx, you're my hero. :) | 22:59 |
-!- travis-ci [~travis-ci@ec2-107-22-157-209.compute-1.amazonaws.com] has joined #shogun | 23:00 | |
travis-ci | [travis-ci] it's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/9240022 | 23:00 |
-!- travis-ci [~travis-ci@ec2-107-22-157-209.compute-1.amazonaws.com] has left #shogun [] | 23:00 | |
@wiking | hehe | 23:00 |
@sonney2k | wiking, one question also to you - I want to move all code that we don't want to expose to swig / libshogun headers somehow into extra classes | 23:01 |
@wiking | liek? | 23:02 |
@wiking | which ones? | 23:02 |
@sonney2k | wiking, i.e. all private functions go into some helper classes | 23:02 |
@sonney2k | maybe even useless protetcted functions | 23:03 |
@sonney2k | that are then just forward declared | 23:03 |
@sonney2k | and no .h is included | 23:03 |
@wiking | mmm | 23:05 |
@wiking | that's a lot of tidious work | 23:05 |
@sonney2k | wiking, sure but it will decrease swig wrapper code size | 23:05 |
@sonney2k | and also improve compile speed | 23:05 |
@wiking | tru | 23:05 |
@iglesiasg | sonney2k, compilation speed wouldn't improve for any other reason apart from swig wrapper size, right? | 23:06 |
@sonney2k | wiking, the question now is I need to place things into other header files - lisitsyn suggested to use some other suffix and I was thinking about using .hsg (for header shogun internal) | 23:06 |
@sonney2k | iglesiasg, but also recompile time !! | 23:06 |
@iglesiasg | sonney2k, true, indeed | 23:06 |
@sonney2k | iglesiasg, you usually have all the heavy code in the private functions | 23:06 |
@iglesiasg | yes | 23:07 |
@iglesiasg | I am very supportive with this change! | 23:07 |
@iglesiasg | sonney2k, header shogun internal may be misleading though since these files will not be actually headers, right? I mean we will put in there both class definitions and implementations | 23:07 |
@sonney2k | iglesiasg, no just headers | 23:08 |
@wiking | sonney2k: nobody did this before? :) | 23:08 |
@sonney2k | iglesiasg, and in .cpp still the impl. | 23:08 |
@sonney2k | kid crying | 23:08 |
@sonney2k | sec | 23:08 |
@iglesiasg | wiking, do you mean in another project? | 23:09 |
@wiking | sonney2k: i mean i guess some bigger project has done this before maybe... we should check out what they came up with. before completely reinventing the wheel | 23:09 |
@iglesiasg | wiking, yes, I agree with you | 23:09 |
@iglesiasg | wiking, any idea where? | 23:09 |
gsomix | ohmfg, big http://en.wikipedia.org/wiki/Tettigoniidae at my ceiling | 23:09 |
@iglesiasg | wiking, opencv has matlab and python bindings I believe | 23:09 |
@iglesiasg | gsomix, run and save your life man! | 23:10 |
@wiking | since hopefully they're doing this for a while i.e. they even might have some know-how about this whole thing. | 23:10 |
@wiking | gsomix: yeah i caught today 2 of them | 23:10 |
@iglesiasg | fuck, I would scream like a girl for sure | 23:10 |
@iglesiasg | I am really scared of insects :( | 23:10 |
@wiking | iglesiasg: i know what i'll get u for your next bday ;D | 23:10 |
@iglesiasg | actually, yesterday I had a bad time with a bee | 23:10 |
@iglesiasg | no insects please! | 23:11 |
@wiking | iglesiasg: a scorpio in a jar? :P | 23:11 |
@iglesiasg | T_T | 23:11 |
@wiking | hehe no worries | 23:11 |
@wiking | it's already dead | 23:11 |
@wiking | :D | 23:11 |
@wiking | ok anyhow now back to the unit tests heiko requested | 23:12 |
@iglesiasg | I prefer a dog puppy ;) | 23:12 |
@lisitsyn | iglesiasg: ahh that's why you live in sweden | 23:13 |
@iglesiasg | lisitsyn, well, the insects are smaller in Spain | 23:14 |
@wiking | lisitsyn: :DDDD | 23:14 |
@iglesiasg | at least the ones I have come across | 23:14 |
@wiking | iglesiasg: but more deadlier :D | 23:14 |
@iglesiasg | wiking, really? I was never aware | 23:14 |
@wiking | i mean there's no actual scary shit in northern europe | 23:15 |
gsomix | iglesiasg, I'm scared a little. it's happened because of I have no glass in the window at my room. | 23:15 |
@wiking | the most scary stuff is a bear | 23:15 |
@wiking | :P | 23:15 |
@wiking | gsomix: hehehe invasion is about to start | 23:15 |
@lisitsyn | wiking: you speak like you met one | 23:15 |
@lisitsyn | don't say you did | 23:15 |
@lisitsyn | :D | 23:15 |
@wiking | lisitsyn: mmm not in sweden | 23:15 |
@sonney2k | wiking, yes QT is using this everywhere | 23:15 |
@wiking | lisitsyn: i've met one in a national park in the states... luckily i was on the high ground... so he just pissed off... but it was like 30m from me. | 23:16 |
@lisitsyn | hah damn man you have interesting life | 23:16 |
shogun-buildbot | build #1474 of deb1 - libshogun is complete: Failure [failed test] Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb1%20-%20libshogun/builds/1474 blamelist: Viktor Gal <vigsterkr@gmail.com> | 23:16 |
@wiking | lisitsyn: http://www.flickr.com/photos/vigsterkr/3671143607/in/set-72157620721450002 | 23:16 |
@wiking | lisitsyn: i had my camare on me.... | 23:16 |
@lisitsyn | wiking: crazy! | 23:17 |
@wiking | it's like 100mm focal | 23:17 |
@wiking | so it was really not that far | 23:17 |
@lisitsyn | wiking: you take quite nice photos | 23:17 |
@wiking | lisitsyn: that was long time ago | 23:17 |
@wiking | exactly before i started my phd | 23:17 |
@wiking | :( | 23:17 |
@iglesiasg | wiking, amazing! | 23:18 |
@sonney2k | wiking, so wiking yes this is standard and encouraged procedure - we just didn't know about it | 23:19 |
@wiking | maybe when i finish my phd i start finally again to take pix | 23:19 |
@wiking | sonney2k: oh i see that's cool | 23:19 |
@wiking | sonney2k: so we could take the ideas from qt | 23:19 |
@wiking | sonney2k: so that we dont run into the same pitfalls | 23:20 |
@sonney2k | but we need a scheme of marking external and interanl files | 23:20 |
@lisitsyn | wiking: what camera do you use? | 23:20 |
@iglesiasg | sonney2k, is there a link where they show this in qt or did you just find it in the code? | 23:20 |
@sonney2k | iglesiasg, it was in the wikipedia page you gave me | 23:21 |
@wiking | lisitsyn: i used to have a canon 400d, but it got stolen with my good objectives.... now i own a canon 5d mark ii | 23:21 |
@iglesiasg | sonney2k, lol none like myself to put me in evidence | 23:21 |
@sonney2k | https://en.wikipedia.org/wiki/Opaque_pointer | 23:22 |
@lisitsyn | wiking: you must have some money to have such a camera ;) | 23:23 |
@sonney2k | One type of opaque pointer commonly used in C++ class declarations is the d-pointer. The d-pointer is the only private data member of the class and points to an instance of a struct.... The d-pointer is heavily used in the Qt and KDE libraries. | 23:23 |
@wiking | lisitsyn: well i dont spend too much on anything else... so i saved money for a long time.... and it's a big plus if your wife is doing stop motion animation where a pro camera is the minimum requirement ;P | 23:25 |
@wiking | sonney2k: yeah i'm just reading this http://zchydem.enume.net/2010/01/19/qt-howto-private-classes-and-d-pointers/ | 23:25 |
@lisitsyn | wiking: I see :) | 23:25 |
@wiking | http://techbase.kde.org/Policies/Library_Code_Policy#D-Pointers | 23:27 |
@wiking | as well | 23:27 |
@lisitsyn | trickery | 23:27 |
-!- zxtx [~zv@rrcs-76-79-81-162.west.biz.rr.com] has quit [Ping timeout: 246 seconds] | 23:28 | |
@sonney2k | wiking, it will actually help us to have some stable ABI even | 23:28 |
-!- foulwall` [~user@dirtycod.es] has joined #shogun | 23:28 | |
@wiking | yeah | 23:29 |
@wiking | indeed | 23:29 |
@wiking | i was just reading that part | 23:29 |
-!- foulwall [~user@2001:da8:215:c252:345c:3d3e:aa54:5dec] has quit [Ping timeout: 264 seconds] | 23:30 | |
@iglesiasg | time to get home, I will take a look about the conversation and the d-pointers links later | 23:32 |
@iglesiasg | see you! | 23:32 |
-!- iglesiasg [~iglesias@2001:6b0:1:1041:6549:4678:d91c:7b6f] has quit [Quit: Ex-Chat] | 23:33 | |
@sonney2k | foulwall`, please cache the ocr demo | 23:35 |
@sonney2k | foulwall`, it takes ages to get feedback - and maybe print the detected number not as popup but as some text beneath | 23:35 |
@sonney2k | foulwall`, but it looks excellent apart from that!! | 23:35 |
@sonney2k | wiking, only problem is templated classes | 23:37 |
@sonney2k | wiking, they don't fit - because then one cannot use a class forward declaration | 23:37 |
@sonney2k | since in a truly templated class everythin is in the .h | 23:37 |
@sonney2k | and so in the implementations one woudl need to access the forward declared class' member functions | 23:38 |
@sonney2k | alrighty | 23:39 |
@sonney2k | I need my 5hrs sleep | 23:39 |
@sonney2k | cu! | 23:39 |
foulwall` | sonney2k, did you check the new version? | 23:46 |
foulwall` | http://nn.7nn.de:8000/ocr/entrance | 23:47 |
@sonney2k | foulwall`, ahh yes much better | 23:52 |
@sonney2k | foulwall`, but one issue when one clicks recognize | 23:52 |
@sonney2k | and then paints sth | 23:52 |
@sonney2k | and clicks recognize | 23:52 |
@sonney2k | the image is not updated | 23:52 |
@sonney2k | not the prediction | 23:53 |
foulwall` | I'll fix that in today's pr | 23:55 |
@sonney2k | foulwall`, and the circle is sometimes white | 23:56 |
@sonney2k | when painting | 23:56 |
-!- travis-ci [~travis-ci@ec2-107-22-157-209.compute-1.amazonaws.com] has joined #shogun | 23:57 | |
travis-ci | [travis-ci] it's Viktor Gal's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/9243700 | 23:57 |
-!- travis-ci [~travis-ci@ec2-107-22-157-209.compute-1.amazonaws.com] has left #shogun [] | 23:57 | |
@sonney2k | and while we are at it - we should probably collect the drawn images that a user classifies to improve accuracy | 23:57 |
* sonney2k Zzzzz | 23:58 | |
foulwall` | Oh, thanks for telling me :) night sonney2k | 23:58 |
--- Log closed Fri Jul 19 00:00:37 2013 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!