| --- Log opened Fri Jul 28 00:00:14 2017 | ||
| -!- CaBa_ [~Diu7saig@lounge.imp.fu-berlin.de] has joined #shogun | 00:44 | |
| -!- CaBa [~Diu7saig@unaffiliated/caba] has quit [Remote host closed the connection] | 00:45 | |
| -!- iglesiasg [~iglesiasg@217.119.234.214] has joined #shogun | 09:21 | |
| -!- mode/#shogun [+o iglesiasg] by ChanServ | 09:21 | |
| -!- geektoni [~geektoni@93-34-128-40.ip49.fastwebnet.it] has joined #shogun | 09:23 | |
| -!- geektoni [~geektoni@93-34-128-40.ip49.fastwebnet.it] has quit [Quit: Leaving.] | 11:42 | |
| -!- geektoni [~geektoni@93-34-128-40.ip49.fastwebnet.it] has joined #shogun | 11:44 | |
| -!- geektoni [~geektoni@93-34-128-40.ip49.fastwebnet.it] has quit [Read error: Connection reset by peer] | 11:49 | |
| -!- HeikoS [~heiko@host-92-0-169-11.as43234.net] has joined #shogun | 13:07 | |
| -!- mode/#shogun [+o HeikoS] by ChanServ | 13:07 | |
| @HeikoS | olinguyen: hey! you there? | 13:07 | 
|---|---|---|
| -!- HeikoS [~heiko@host-92-0-169-11.as43234.net] has quit [Read error: No route to host] | 13:41 | |
| -!- HeikoS [~heiko@host-92-0-169-11.as43234.net] has joined #shogun | 13:42 | |
| -!- mode/#shogun [+o HeikoS] by ChanServ | 13:42 | |
| -!- HeikoS [~heiko@host-92-0-169-11.as43234.net] has quit [Quit: Leaving.] | 13:49 | |
| -!- HeikoS [~heiko@host-92-0-169-11.as43234.net] has joined #shogun | 13:55 | |
| -!- mode/#shogun [+o HeikoS] by ChanServ | 13:55 | |
| -!- HeikoS [~heiko@host-92-0-169-11.as43234.net] has quit [Ping timeout: 240 seconds] | 13:59 | |
| -!- olinguyen_ [488ddefa@gateway/web/freenode/ip.72.141.222.250] has joined #shogun | 14:12 | |
| -!- olinguyen_ [488ddefa@gateway/web/freenode/ip.72.141.222.250] has quit [Quit: Page closed] | 14:20 | |
| -!- iglesiasg [~iglesiasg@217.119.234.214] has quit [Quit: leaving] | 14:45 | |
| -!- zoq [~marcus_zo@urgs.org] has quit [Read error: Connection reset by peer] | 15:17 | |
| -!- zoq_ [~marcus_zo@urgs.org] has joined #shogun | 15:17 | |
| -!- zoq_ is now known as zoq | 15:32 | |
| -!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has joined #shogun | 15:39 | |
| -!- mode/#shogun [+o HeikoS] by ChanServ | 15:39 | |
| -!- geektoni [~geektoni@80.86.155.153] has joined #shogun | 16:22 | |
| @HeikoS | geektoni: jojo | 16:22 | 
| @HeikoS | how are things? | 16:22 | 
| geektoni | HeikoS: hey! | 16:22 | 
| geektoni | things are going fine :) | 16:22 | 
| geektoni | HeikoS: I've made some PRs for the new CrossValidation | 16:22 | 
| @HeikoS | yeah I saw | 16:23 | 
| @HeikoS | sorry for not reviewing yet | 16:23 | 
| @HeikoS | but it all works now right? | 16:23 | 
| geektoni | yes yes | 16:23 | 
| @HeikoS | I have a question actually | 16:23 | 
| @HeikoS | so you added this mkl weight class | 16:23 | 
| @HeikoS | which just like before, stores the MKL weights in each fold, right? | 16:23 | 
| geektoni | yes, it works like the previous one | 16:24 | 
| @HeikoS | ok | 16:24 | 
| @HeikoS | so my question: | 16:24 | 
| @HeikoS | if now a new algorithms comes along, say LARS | 16:24 | 
| @HeikoS | and there I want to monitor the residuals across the folds | 16:24 | 
| @HeikoS | then I need to add a new class? | 16:24 | 
| geektoni | yes, that is the idea | 16:25 | 
| @HeikoS | and from there, you might see my point: is it a good idea if I need to add a new class everytime I want to monitor something in x-validation? | 16:25 | 
| @HeikoS | wouldnt it be better if a user can specify that without having to touch the c++ code | 16:26 | 
| @HeikoS | i.e. monitorig vector valued values with a given name (that was made observable before) | 16:26 | 
| @HeikoS | so that one can monitor any parameter across the folds | 16:26 | 
| geektoni | well, the general observer for CrossValidation generate a vector with all the observations made | 16:27 | 
| geektoni | e.g index used for training/testing for each fold, evaluation for each folds etc. | 16:27 | 
| geektoni | so a user could "parse" it to obtain the information he wants | 16:27 | 
| @HeikoS | how would this look like (say in python= | 16:28 | 
| @HeikoS | for say LARS | 16:28 | 
| geektoni | HeikoS: https://gist.github.com/geektoni/6b3bd3aafe70fbe477db485faa9cfe74#file-cvobserver_example-cpp-L70 | 16:29 | 
| geektoni | this is the general idea | 16:29 | 
| geektoni | that's is C++ but for python will be the same | 16:30 | 
| @HeikoS | so this "f" | 16:30 | 
| @HeikoS | what is the type of that? | 16:31 | 
| geektoni | should be "fold" instead of "f" | 16:32 | 
| geektoni | anyway | 16:32 | 
| @HeikoS | so yeah fold has a type | 16:33 | 
| @HeikoS | which here has the method "get_train_indices()" | 16:33 | 
| @HeikoS | does it also have something like "get_vector_observation("mkl_weights")"? | 16:34 | 
| @HeikoS | get_vector_observation("LARS residuals")" | 16:34 | 
| @HeikoS | you see what I mean? | 16:34 | 
| geektoni | HeikoS: https://github.com/geektoni/shogun/blob/4d4b69620fdc29fb58fe9f309b5f70bf77d25aae/src/shogun/evaluation/CrossValidationStorage.h#L53 | 16:34 | 
| geektoni | yes yes I see | 16:35 | 
| @HeikoS | it would be cool if it had space values of machine parameters | 16:35 | 
| @HeikoS | but all in a runtime fashion | 16:35 | 
| geektoni | it does not have those method, because I wanted to provide only a "container", without too complex methods inside. | 16:36 | 
| geektoni | HeikoS: space values of machine parameters? | 16:36 | 
| @HeikoS | sorry | 16:38 | 
| @HeikoS | if it had a space for values of machine parameters | 16:38 | 
| @HeikoS | like a map of parameter_name -> SG* | 16:39 | 
| @HeikoS | then there can be MKL weights, LARS residuals | 16:39 | 
| @HeikoS | whatever | 16:39 | 
| @HeikoS | and the user before x-validation starts, tells the class that he would like to observe certain parameters for each fold | 16:39 | 
| @HeikoS | specified by tags or string | 16:39 | 
| @HeikoS | then the x-validation storage class just calls the getter on those and stores them | 16:40 | 
| geektoni | mmh | 16:40 | 
| @HeikoS | because I want to avoid that one has to re-compile shogun in order to observe the parameter of choice | 16:40 | 
| @HeikoS | geektoni: see what I mean? | 16:44 | 
| @HeikoS | geektoni: I also have a question about the m_trained_machine | 16:44 | 
| @HeikoS | so if you store the machine, did you clone in x-valiation? | 16:44 | 
| @HeikoS | i.e. is the machine a different instance in every instance of the storage object? | 16:44 | 
| @HeikoS | because if so, then no problem | 16:45 | 
| @HeikoS | user just extracts from the machine himself | 16:45 | 
| @HeikoS | and since data is shared across the machines (it is right?), there is no memory explosion problem | 16:45 | 
| geektoni | ok, so, the machine stored is not cloned currently | 16:46 | 
| geektoni | and, as you said, it should be | 16:46 | 
| @HeikoS | geektoni: I think that solved my above thing | 16:47 | 
| geektoni | anyway, yes, since we store the trained machine, the user can extract the data he needs from it, without touching the CrossValidationStorage class. | 16:47 | 
| @HeikoS | because user can just query the machine | 16:47 | 
| @HeikoS | cool | 16:47 | 
| @HeikoS | so then I suggest the MKL class goes away | 16:47 | 
| @HeikoS | and the machine is cloned, but the features are shared memory | 16:47 | 
| geektoni | so then also the Multiclass ones I imagine | 16:48 | 
| @HeikoS | yeah | 16:48 | 
| @HeikoS | I mean | 16:48 | 
| @HeikoS | for common cases, we can offer API that is convenience | 16:48 | 
| @HeikoS | but it should work via the "obtain_from_generic" thing in all cases | 16:48 | 
| @HeikoS | you get access to the trained machine for all folds | 16:48 | 
| @HeikoS | plus all preductions, ground truth, result, etc | 16:49 | 
| geektoni | mmh, so, in the end, we could just store the machine and nothing else | 16:50 | 
| geektoni | maybe apart from a few things | 16:50 | 
| @HeikoS | I think as it is | 16:54 | 
| @HeikoS | is good | 16:54 | 
| @HeikoS | just need to make things more explicit | 16:54 | 
| @HeikoS | i.e. have en example where we extract mkl weights using the "generic" interface | 16:54 | 
| @HeikoS | as well as say LARS weights | 16:54 | 
| @HeikoS | could do that even in a meta example | 16:54 | 
| geektoni | yeah, I was trying to do that this morning | 16:54 | 
| geektoni | I mean, I was trying to produce some meta examples which show how to use the observers | 16:55 | 
| geektoni | HeikoS: I've encountered some difficulties, though. The meta example generator (for C++) appends before each classes a 'C' and the observer classes does not have a 'C' before their name (also because they do not inherit from CSGObject), so everything fails badly when building the meta examples :P | 17:00 | 
| @HeikoS | ah | 17:01 | 
| @HeikoS | yeah I see | 17:01 | 
| geektoni | and I cannot change the class names | 17:01 | 
| @HeikoS | meta examples only support SGObject subclasses | 17:01 | 
| geektoni | yes yes | 17:01 | 
| @HeikoS | because SWIG | 17:01 | 
| @HeikoS | only does that | 17:01 | 
| @HeikoS | or does SWIG map your class as well? | 17:01 | 
| geektoni | SWIG exposes the observer | 17:01 | 
| @HeikoS | because if so, then we could easily change the meta generator | 17:02 | 
| @HeikoS | why is it not a subclass? | 17:02 | 
| @HeikoS | say if you wanted to serialize it? | 17:02 | 
| geektoni | because it is needed by SGObject itself | 17:02 | 
| @HeikoS | ay | 17:03 | 
| @HeikoS | sure | 17:03 | 
| @HeikoS | ok | 17:03 | 
| @HeikoS | we can hack the meta generator | 17:03 | 
| @HeikoS | but lets do that later | 17:03 | 
| @HeikoS | first get the patch merged, then work on the example | 17:03 | 
| geektoni | sure! | 17:04 | 
| geektoni | btw, I was currently porting the python's one | 17:04 | 
| @HeikoS | and? | 17:07 | 
| geektoni | nothing, it was just a clarification :) because there are already some meta examples which show how to use the previous xvalidation listeners. | 17:08 | 
| olinguyen | HeikoS: hey, are you around? | 17:44 | 
| -!- geektoni [~geektoni@80.86.155.153] has quit [Remote host closed the connection] | 18:29 | |
| @HeikoS | olinguyen: hi yes | 18:55 | 
| @HeikoS | have to go now, talk monday! | 19:23 | 
| -!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has quit [Ping timeout: 255 seconds] | 19:27 | |
| --- Log closed Sat Jul 29 00:00:15 2017 | ||
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!