--- Log opened Fri Sep 25 00:00:34 2015 | ||
-!- besser82 [~besser82@fedora/besser82] has quit [Ping timeout: 246 seconds] | 02:10 | |
-!- besser82 [~besser82@fedora/besser82] has joined #shogun | 02:11 | |
-!- mode/#shogun [+o besser82] by ChanServ | 02:11 | |
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has joined #shogun | 02:21 | |
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has quit [Ping timeout: 240 seconds] | 02:25 | |
-!- HeikoS [~heiko@144.82.196.166] has joined #shogun | 11:49 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 11:49 | |
@HeikoS | lisitsyn: hi | 12:59 |
---|---|---|
lisitsyn | HeikoS: hey | 12:59 |
@HeikoS | lisitsyn: have a question for you | 12:59 |
@HeikoS | problem: I have new algorithms and would like to put them online | 13:00 |
lisitsyn | aha | 13:00 |
@HeikoS | problem: shogun is too big and nobody can be asked to install it | 13:00 |
@HeikoS | so I cannot put it in there, no point | 13:00 |
@HeikoS | so I am thinking of rather writing micro libraries | 13:00 |
lisitsyn | hmm yeah | 13:00 |
@HeikoS | that are super super easy to install | 13:00 |
@HeikoS | and use | 13:00 |
@HeikoS | BUT | 13:00 |
lisitsyn | maybe this makes sense | 13:00 |
@HeikoS | I want to allow people to use them from different languages | 13:01 |
@HeikoS | just like shogun | 13:01 |
@HeikoS | since nobody uses C | 13:01 |
@HeikoS | or can be asked | 13:01 |
@HeikoS | how can I do this nicely? | 13:01 |
@HeikoS | what is your thoguhts on this? | 13:02 |
lisitsyn | what langs do you want? | 13:02 |
@HeikoS | same as Shogun more or less | 13:02 |
@HeikoS | in order: python, R, Matlab, Java | 13:02 |
@HeikoS | but I dont want to build the interfaces by hand | 13:02 |
@HeikoS | the thing is | 13:03 |
@HeikoS | interface does not need to be object oriented | 13:03 |
@HeikoS | since the mini lib is very small | 13:03 |
@HeikoS | just some functions with couple of parameters to be called | 13:03 |
@HeikoS | that can be embedded into something else | 13:03 |
lisitsyn | ok I see | 13:03 |
lisitsyn | well if you need that many langs | 13:03 |
lisitsyn | you'd need swig probably | 13:03 |
@HeikoS | lisitsyn: ok say I used swig | 13:03 |
lisitsyn | but if you have just a few functions | 13:03 |
lisitsyn | we can have something on our own | 13:04 |
@HeikoS | what do you mean? | 13:04 |
lisitsyn | well matlab C bindings, python C bindings | 13:04 |
@HeikoS | I see | 13:04 |
@HeikoS | how realistic is a mini version of a meta library that exposes simple C functions via swig? | 13:05 |
lisitsyn | well it sounds pretty easy | 13:05 |
lisitsyn | HeikoS: I would design it like that: | 13:06 |
lisitsyn | swig - C API - C++ code | 13:06 |
@HeikoS | ok | 13:07 |
@HeikoS | and the objects passed would just be vectors and matrices | 13:08 |
@HeikoS | and basic types | 13:08 |
@HeikoS | lisitsyn: how much sense do you think it makes to put this into a meta library for exactly that use? | 13:09 |
lisitsyn | I see some problem it would become shogun | 13:09 |
lisitsyn | :D | 13:09 |
lisitsyn | I am thinking how to avoid that | 13:09 |
@HeikoS | lisitsyn: if Shogun was modular | 13:10 |
@HeikoS | then I would not have to do it | 13:10 |
lisitsyn | modular like? | 13:10 |
@HeikoS | but right now it makes no sense for me to put stuff in --- to hard to use | 13:10 |
@HeikoS | a person quickly wants to use my algorithm | 13:10 |
@HeikoS | takes < 5 mins to get it running | 13:10 |
lisitsyn | ok I see | 13:10 |
@HeikoS | or another scenario | 13:12 |
@HeikoS | someone wants to use the code in a ML toolbox or another project | 13:12 |
@HeikoS | takes just a few minutes to integrate it | 13:12 |
@HeikoS | just like say eigen | 13:12 |
@HeikoS | or scikit learn | 13:12 |
@HeikoS | mini libraries with a particular purpose and easy to use | 13:13 |
lisitsyn | HeikoS: ok let me think | 13:18 |
lisitsyn | HeikoS: will you be here in a hour? | 13:18 |
@HeikoS | yes | 13:18 |
lisitsyn | ok I'll call you then :) | 13:19 |
@HeikoS | lisitsyn: cool! | 13:19 |
lisitsyn | I'll get to work now | 13:19 |
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has joined #shogun | 13:26 | |
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has quit [Ping timeout: 246 seconds] | 13:31 | |
-!- uchihaitachi08 [~sameer@203.110.243.23] has joined #shogun | 13:33 | |
@HeikoS | lisitsyn: heya | 14:39 |
lisitsyn | HeikoS: hey | 14:40 |
lisitsyn | yeah I am back :) | 14:40 |
lisitsyn | ok lets discuss the stuff | 14:40 |
@wiking | morning | 15:28 |
@wiking | :) | 15:28 |
* wiking in boston | 15:28 | |
lisitsyn | hah | 15:38 |
lisitsyn | HeikoS: ping! :) | 15:38 |
lisitsyn | wiking: no moar kiev? | 15:38 |
@HeikoS | lisitsyn: yo! | 15:45 |
@HeikoS | wiking: morning! | 15:46 |
lisitsyn | HeikoS: I had other idea | 15:46 |
@HeikoS | shooot | 15:46 |
lisitsyn | do you think you gonna call these methods very often? | 15:47 |
lisitsyn | whatever methods you have | 15:47 |
lisitsyn | train? apply? | 15:47 |
@HeikoS | lisitsyn: not really | 15:47 |
@HeikoS | they are expensive | 15:47 |
@HeikoS | so a simple API that hides a more expensive machinery in the back | 15:47 |
@HeikoS | maybe some methods are called more often though | 15:47 |
@HeikoS | like update methods of estimators | 15:48 |
lisitsyn | what about data-driven api? | 15:48 |
@HeikoS | in fact | 15:49 |
@HeikoS | object oriented is best, it is for density estimation | 15:49 |
@HeikoS | so you learn an object and subsequently want to know its gradient many times | 15:49 |
@HeikoS | but explain what you ahve in mind | 15:49 |
lisitsyn | well say have | 15:50 |
lisitsyn | hmmm | 15:51 |
lisitsyn | let me find some example | 15:51 |
lisitsyn | ok nevermind | 15:51 |
lisitsyn | HeikoS: say you submit some json and get result | 15:51 |
@HeikoS | no it is much simpler | 15:52 |
lisitsyn | HeikoS: I mean this is supergeneral | 15:52 |
lisitsyn | no matter what library you have you gonna use it the same way | 15:52 |
lisitsyn | and change the json you submit | 15:52 |
lisitsyn | HeikoS: I may be unclear | 15:53 |
@HeikoS | lisitsyn: but I do build research software | 15:53 |
lisitsyn | yes | 15:54 |
@HeikoS | so it is more a library to be used in other code | 15:54 |
@HeikoS | not so much an application | 15:54 |
lisitsyn | yes | 15:54 |
lisitsyn | it is not that different | 15:54 |
lisitsyn | HeikoS: I don't mean you're going to do all the json/whatever stuff | 15:54 |
lisitsyn | I just mean we can define some api so that you pass some data | 15:55 |
lisitsyn | and get some data | 15:55 |
lisitsyn | not that you do some sequential steps | 15:55 |
@HeikoS | I see what you mean | 15:55 |
@HeikoS | but I would prefer a simple C-style or OO api to that | 15:55 |
@HeikoS | data driven is more interesting if developing tools that are going to be used in products | 15:56 |
@HeikoS | for me at least | 15:56 |
lisitsyn | HeikoS: well I am approaching that as the simplest thing | 15:57 |
lisitsyn | because this way we just need one swig method :D | 15:57 |
@HeikoS | lisitsyn: I see | 15:57 |
@HeikoS | but users need to put data into a json | 15:58 |
lisitsyn | HeikoS: I am thinking about other thing | 15:58 |
lisitsyn | like you provide how to access data | 15:58 |
lisitsyn | say you attach some object to existing matrix | 15:59 |
lisitsyn | and it has some unique id | 15:59 |
lisitsyn | e.g. | 15:59 |
lisitsyn | source = lib.source(your_feature_matrix) | 15:59 |
lisitsyn | lib.do(task=learn, method=your_fancy_gp, data=source) | 16:00 |
@HeikoS | I see | 16:01 |
@HeikoS | that is quite cool | 16:01 |
@HeikoS | lisitsyn: in fact, that would be good for Shogun | 16:01 |
@wiking | lisitsyn: yeah kiev is over :) | 16:02 |
lisitsyn | HeikoS: I am considering the case | 16:02 |
lisitsyn | you read remote file | 16:02 |
lisitsyn | or HDFS file | 16:02 |
@HeikoS | lisitsyn: I see | 16:05 |
@HeikoS | or passdata from memory? | 16:05 |
lisitsyn | HeikoS: yes | 16:25 |
lisitsyn | HeikoS: ok what about | 16:25 |
lisitsyn | your code is in C++ already? | 16:25 |
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has joined #shogun | 16:29 | |
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has quit [Ping timeout: 268 seconds] | 16:34 | |
@HeikoS | yes | 18:12 |
-!- HeikoS [~heiko@144.82.196.166] has quit [Ping timeout: 272 seconds] | 18:49 | |
-!- shaochuan [~shaochuan@2601:647:4603:2a70:8f8:25bb:cd3c:3875] has joined #shogun | 21:25 | |
-!- shaochuan [~shaochuan@2601:647:4603:2a70:8f8:25bb:cd3c:3875] has quit [Ping timeout: 246 seconds] | 21:30 | |
--- Log closed Sat Sep 26 00:00:36 2015 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!