IRC logs of #shogun for Wednesday, 2016-04-27

--- Log opened Wed Apr 27 00:00:31 2016
-!- HeikoS [~heiko@p5797249D.dip0.t-ipconnect.de] has joined #shogun00:03
-!- mode/#shogun [+o HeikoS] by ChanServ00:03
-!- travis-ci [~travis-ci@ec2-54-87-104-96.compute-1.amazonaws.com] has joined #shogun00:11
travis-ciit's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/12595934900:11
-!- travis-ci [~travis-ci@ec2-54-87-104-96.compute-1.amazonaws.com] has left #shogun []00:11
-!- HeikoS [~heiko@p5797249D.dip0.t-ipconnect.de] has quit [Quit: Leaving.]00:45
-!- sanuj [0e8bc402@gateway/web/freenode/ip.14.139.196.2] has joined #shogun04:10
-!- sanuj [0e8bc402@gateway/web/freenode/ip.14.139.196.2] has quit [Ping timeout: 250 seconds]06:07
-!- sanuj [0e8bc402@gateway/web/freenode/ip.14.139.196.2] has joined #shogun07:23
-!- sanuj [0e8bc402@gateway/web/freenode/ip.14.139.196.2] has quit [Ping timeout: 250 seconds]07:30
-!- sanuj [0e8bc402@gateway/web/freenode/ip.14.139.196.2] has joined #shogun07:36
@wikingsanuj: yo08:05
@wikingsanuj: how's going with the prototyping08:05
@wikingdo you have a place where you do it and shared in public08:05
sanujwiking: hi!08:05
@wiking?08:05
@wiking(dont wanna push you and i guess you are busy with other stuff now, just for future refernce)08:06
sanujwiking: i had managed to get Tags working08:06
sanujhttps://github.com/sanuj/shogun-plugin-arch/blob/master/tags-string/tests/tests.cpp08:06
sanujnext step is to make SWIG work with this08:06
@wikingok08:06
@wikingabout swig08:06
@wikingyeah the tags i saw08:07
@wikingbut with swigs we should do some thourough testing08:07
sanujand allow string-based parameters setters/getters in python08:07
@wikingyou mean in swig interfaces :P08:07
sanujyeah :P08:07
@wikinganyhow08:07
@wikingso08:07
sanujyeah08:07
@wikingswig allows you to do http://www.swig.org/Doc3.0/Modules.html08:08
sanuji was reading swig docs but got busy with exams....08:08
@wikingyeah sure08:08
sanuji see08:08
@wikingso anyhow08:08
@wikingwe can do modules08:08
@wikingBUT08:08
@wikingsonne|work: tried this in an earlier version of swig (1.3)08:09
@wikingand it wasn't working08:09
sanujokay08:09
@wikingbut08:09
@wikingsince then we started to depend on 2.0.4 or later08:09
@wikingbut actually you should test it08:09
@wikingusing 3.x08:09
@wikingand if it works stable08:09
@wikingthen we should go with modules08:10
sanujyes i'll...if it works then we can make swig 3.0 a necessary dependancy08:10
@wiking(as many other things got fixed in recent swig versions)08:10
@wikingso it really doesn't matter that if we fix that we require 3.0+08:10
sanujokay08:10
@wikingjust this needs to be tested08:10
sanujokay08:11
sanujwiking: btw i would be interested in GP notebook but first i need to get a grip on my project08:12
sanujwiking: and regarding plugins08:14
sanujbjorn will finish the basic codebase in dynaplugz by the end of this week08:15
sanujwe talked about it yesterday08:15
sanujthen i can start building on top of that08:15
sonne|workwiking, sanuj - the problem with swig and modules is the following: if you have a module say Kernels and a module say Features. Then the kernel module is using features08:19
sonne|workSo you need to make features known to kernels.08:20
sonne|workEnd you end up having to include features again (to some extend).08:20
-!- besser82 [~besser82@fedora/besser82] has joined #shogun08:29
-!- mode/#shogun [+o besser82] by ChanServ08:29
sanujsonne|work: i'm not sure if i fully understand it08:31
sanujyou need to include Features module in Kernel08:32
sanujbut why is this a problem08:32
sanujsorry if i'm missing something obvious :P08:32
-!- besser82 [~besser82@fedora/besser82] has quit [Remote host closed the connection]08:50
-!- besser82 [~besser82@fedora/besser82] has joined #shogun08:51
-!- mode/#shogun [+o besser82] by ChanServ08:51
-!- sonne|work [~sonnenbu@ip5b414dfc.dynamic.kabel-deutschland.de] has quit [Quit: Leaving.]09:20
-!- sonne|work [~sonnenbu@ip5b414dfc.dynamic.kabel-deutschland.de] has joined #shogun09:21
sonne|worksanuj: the problem is that the kernel module will grow big since it has to wrap all feature classes too09:21
sonne|workso you have maybe a small features module09:22
sonne|workbut then a kernel module which is the size of kernels and features09:22
sonne|work-> no gain09:22
sanujsonne|work: i see09:30
sonne|worksanuj: the other (fixable) problem is that we don't have clear modules so we might have cycles as in that features might need to know kernels for something09:31
sonne|workthat is pretty painful :/09:31
sanujyeah09:31
sonne|workand of course classifiers require kernels and features etc...09:32
-!- besser82 [~besser82@fedora/besser82] has quit [Ping timeout: 276 seconds]10:06
-!- sanuj [0e8bc402@gateway/web/freenode/ip.14.139.196.2] has quit [Ping timeout: 250 seconds]10:17
@wikingsonne|work: yeah10:17
@wikingbut then we want to load every10:17
@wiking.so of the plugin10:17
@wiking?10:17
@wikingsay we have .so for every different kernel10:18
@wikinghow do we do this with swig interfaces?10:18
lisitsynwe would have kernel interface in the base shogun10:20
lisitsyneverything else goes to plugins10:21
@wikingyeah10:21
@wikingbut how would a swig wrapper10:21
@wikingfor all the plugins look like?10:21
lisitsynno single wrapper10:22
lisitsynkernels, features, etc are all base classes10:22
@wikingyeah but what i mean10:22
@wikingwe would have for each plugin10:22
@wikinga swig interface10:22
@wikingno?10:22
lisitsynno10:22
lisitsynjust for the base shogun10:22
@wikingk10:23
lisitsynthat would simplify things10:23
@wikingand when creating kernel = GaussianKernel(...)10:23
@wiking?10:23
@wikingin python for example10:23
lisitsynyeah but you don't write gaussiankernel anymore10:23
lisitsynyou do something like kernel('gaussian')10:23
lisitsynbecause it is runtime now10:23
@wikingk10:23
@wikingand then i guess that big switch is autogenerated?10:24
lisitsynoh well10:26
lisitsynnot sure everything will go smooth :)10:26
@wikingk :)10:26
-!- besser82 [~besser82@fedora/besser82] has joined #shogun10:28
-!- mode/#shogun [+o besser82] by ChanServ10:28
-!- sanuj [0e8bc402@gateway/web/freenode/ip.14.139.196.2] has joined #shogun10:31
-!- sanuj [0e8bc402@gateway/web/freenode/ip.14.139.196.2] has quit [Ping timeout: 250 seconds]10:38
-!- sanuj [0e8bc402@gateway/web/freenode/ip.14.139.196.2] has joined #shogun11:22
sonne|workwiking, lisitsyn - yeah that sounds indeed like the only feasible solution...11:27
lisitsynsonne|work: yeah I've failed to come up with any other11:28
sonne|workand we don't have nightmares with dependencies either11:28
sonne|worklisitsyn: still kernels will require features etc in swig11:28
lisitsynthere is a thing that we can't have 'custom' methods but there must be a workaround11:28
lisitsynwell we can call them by strings as well :)11:29
sonne|worklisitsyn: custom as in extended by python?11:34
sonne|worklike we had with swig directors?11:35
lisitsynsonne|work: yeah this thing as well11:35
lisitsynbut mostly things like precompute_AA_matrix11:35
lisitsynwhatever it means11:35
lisitsynsome cache_oligomers_whatever11:35
sonne|worklisitsyn: yeah all strings...11:35
lisitsynwe can't put such things into the base interface so we have troubles with non-standard stuff11:36
lisitsynbut again11:36
lisitsynwe can call them using strings11:36
lisitsynnot that convenient but maybe it is good enoguh11:36
sonne|worklisitsyn: well the advantage of having a tiny piece of c++ code aka .so file to be dynloaded and have the full features shogun power including typemaps etc for $language is worth it ...11:38
lisitsynyeah agree11:39
lisitsynsonne|work: there is another good thing11:58
lisitsynplugins allow remote execution as well11:58
lisitsynI mean if we have limited interface it is much easier to make it work over some REST API or RPC11:58
sonne|worklisitsyn: botherd :P11:59
lisitsynsonne|work: well I find it useful to train something on other machine11:59
lisitsynalthough industry stuff needs more care anyway12:00
lisitsynlike queueing12:01
lisitsynwe don't want it12:01
sonne|workbut I guess we don't want to re-invent the wheel but just ran shogun multiple times...12:02
sonne|workor let it be remote-controlled by sth else at least12:02
-!- HeikoS [~heiko@87.151.41.66] has joined #shogun12:48
-!- mode/#shogun [+o HeikoS] by ChanServ12:48
-!- HeikoS [~heiko@87.151.41.66] has quit [Ping timeout: 246 seconds]13:59
-!- HeikoS [~heiko@p57972942.dip0.t-ipconnect.de] has joined #shogun14:01
-!- mode/#shogun [+o HeikoS] by ChanServ14:01
@wikingHeikoS: oooohooohoooooooooooo14:08
@wikingin .de14:08
@wikinggood14:08
@wikingso its ev time14:08
@wiking:)14:08
@HeikoSyep :)14:08
@HeikoSactually just called the court14:08
@HeikoSbut only machine answers ;)14:08
@wiking:>14:08
@wikingwait are you in venezuela? :)14:08
@wikingbecause there only monday & tuesday are workdays14:09
@HeikoShaha14:09
@HeikoSgerman state employees14:09
@HeikoSsame thing14:09
@HeikoSonly work 13:29-13:30 on Thursdays14:09
@wikinglol14:10
@wiking:>14:10
@HeikoSah crap14:17
@HeikoSlooks like will have to pay14:17
@HeikoSwiking: Ill ask my father's friends. maybe one of them can do that for free14:17
@wiking?14:18
@wikinghow much $ you need?14:18
@wikingi'm happy to contribute14:18
@wikingjust gimme your iban+swift14:19
@HeikoSstill need to ask14:23
@HeikoSwill let you know14:23
@HeikoSbut thanks!14:23
@HeikoS:)14:23
sanujHeikoS: you moved to germany from london?14:26
@wikingHeikoS: ok14:31
@HeikoSsanuj: just for a week14:32
@HeikoSwiking: ok looks good14:32
@HeikoSI will bring them the paperwork today14:32
@HeikoSthey will get back to me tomorrow with price14:32
@HeikoSand whether sören has to appear in person (which kind of would kill it;) )14:33
@HeikoSbut I think it should be ok if it is just me14:33
@HeikoSThats what I read a while ago14:33
@HeikoSwill print things now14:33
@HeikoSsee you in a bit14:33
lisitsynwiking: will you contribute to my bank account as well?14:41
sanuj:P14:43
@wikingHeikoS: cool!14:59
@wikinglisitsyn: for you anything <314:59
@wiking:)14:59
-!- sanuj [0e8bc402@gateway/web/freenode/ip.14.139.196.2] has quit [Ping timeout: 250 seconds]16:01
sonne|workwiking: we are talking about liquid donations aren't we :P16:03
@HeikoSsonne|work: so will you send me the thing? :)16:07
@HeikoSgoing to the notar now to give them all the docs, lets see what they say ... they promised me an appointment end of this or early next week which is great16:08
@HeikoSwiking: ^16:08
-!- HeikoS [~heiko@p57972942.dip0.t-ipconnect.de] has quit [Ping timeout: 268 seconds]16:13
-!- OXPHOS [8ca3fe9e@gateway/web/freenode/ip.140.163.254.158] has joined #shogun16:15
@wikingsonne|work: :)16:23
@wikingHeiko \o/ (for the record :P)16:24
-!- Netsplit *.net <-> *.split quits: @ChanServ16:44
-!- Netsplit over, joins: @ChanServ16:57
-!- sanuj [0e8bc402@gateway/web/freenode/ip.14.139.196.2] has joined #shogun17:40
sanujwiking: Is this about all about taking donations for shogun?17:47
-!- besser82 [~besser82@fedora/besser82] has quit [Ping timeout: 260 seconds]19:17
sanujanyone interested in reinforcement learning?19:19
sanujhttps://openai.com/blog/openai-gym-beta/19:19
sanujlisitsyn: ^19:19
CaBahi19:26
CaBai have real value features for my observations in a large pandas dataframe (rows are observations, columns are features). i wonder in what data structure i have to plug this data in order for shogun to be able to work with it - in the examples for the python modular interface i came across a class called 'RealFeatures' which intuitively sounds like a match, but it doesn't show up anywhere in the API documenta19:29
CaBation...19:29
sanujwiking: lisitsyn ^^19:33
sanujCaBa: I think RealFeatures should work19:33
CaBasanuj: any idea where I can find info on that class? i.e. how i have to hand over my data, is a dataframe okay, do i have to transform it, etc?19:37
sanujCaBa: you can see Ipython-notebooks for some examples19:37
sanujhttps://github.com/shogun-toolbox/shogun/blob/develop/doc/ipython-notebooks19:37
sanujCaBa: like19:40
sanujhttps://github.com/shogun-toolbox/shogun/blob/develop/doc/ipython-notebooks/regression/Regression.ipynb19:40
CaBahm thanks, i'll look into it19:54
-!- sonne|osx [~sonne@x4e37eb9c.dyn.telefonica.de] has joined #shogun20:10
-!- Saurabh7 [~Saurabh7@103.225.100.51] has joined #shogun20:13
-!- sanuj [0e8bc402@gateway/web/freenode/ip.14.139.196.2] has quit [Quit: Page closed]20:15
@wikingCaBa: numpy20:19
-!- sonne|osx [~sonne@x4e37eb9c.dyn.telefonica.de] has quit [Quit: sonne|osx]20:19
@wikingof course if you have categoricals in your pandas df20:20
@wikingthen you'll have to transform that before actually feeding it to the models20:20
CaBawiking: i only have floating point values in my df. so i pass multiple numpy arrays (one per feature?) instead of one single df, right?20:33
@wikingmmmm20:35
@wikingCaBa: features is a matrix20:35
@wikingcolumns: feature vectors20:36
@wikingrow each feature20:36
@wikingbut yeah that should be a matrix20:36
CaBaok, so more or less the transformed case20:36
CaBacolumns are observations, rows are features20:36
@wiking:)20:36
@wikingyeah20:36
CaBawiking: i'm fairly new to python and numpy/pandas. the fm seems to be represented by an array of arrays (numpy). at least that's what i get when I call get_feature_matrix() on a RealFeatures object from one of your examples... feeding a matrix seems to work nevertheless, it is then transformed...20:42
@wikingCaBa: lemme try to find you an example20:43
@wikingCaBa: check this example: https://github.com/shogun-toolbox/shogun/blob/develop/examples/undocumented/python_modular/features_dense_modular.py20:45
@wikingthat show20:45
@wikings20:45
@wikingRealFeatures(np.array([[],...], dtype=np.float64)20:46
@wiking)20:46
CaBashould i have one RealFeatures object per feature?20:46
@wikingCaBa: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.as_matrix.html20:47
@wikingnono20:47
@wikingRealFeatures contains all the feature vectors20:47
CaBaok20:47
CaBahence the plural ;)20:47
@wikingindeed20:48
@wiking:)20:48
CaBain the example you posted - we have 3 feats / 6 obs or the other way round?20:49
CaBa3 feats 6 obs i guess... set_feature_vector() is probably for one feature, right?20:50
CaBahm no..20:50
CaBait sets the feature vector for one observation?20:50
CaBafrom modshogun import RealFeatures, LongIntFeatures, ByteFeatures20:51
CaBafrom numpy import array, float64, int64, uint8, all20:51
CaBaoops20:51
CaBasorry20:51
CaBaconfused irssi and ipython :P20:51
@wiking:)20:51
@wiking3 obs and 6 features20:52
CaBayes, makes sense :)20:53
CaBawiking: okay, fed data.as_matrix().transpose() into the RealFeatures constructor and i get proper feature vectors with get_feature_vector()... thanks :)21:07
@wikingno worries21:09
-!- besser82 [~besser82@fedora/besser82] has joined #shogun21:11
-!- mode/#shogun [+o besser82] by ChanServ21:11
-!- sonne|osx [~sonne@x4e37eb9c.dyn.telefonica.de] has joined #shogun22:12
-!- HeikoS [~heiko@p4FED5271.dip0.t-ipconnect.de] has joined #shogun22:21
-!- mode/#shogun [+o HeikoS] by ChanServ22:21
-!- HeikoS [~heiko@p4FED5271.dip0.t-ipconnect.de] has quit [Quit: Leaving.]22:32
-!- sonne|osx [~sonne@x4e37eb9c.dyn.telefonica.de] has quit [Quit: sonne|osx]23:34
-!- OXPHOS [8ca3fe9e@gateway/web/freenode/ip.140.163.254.158] has quit [Quit: Page closed]23:42
--- Log closed Thu Apr 28 00:00:32 2016

Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!