--- Log opened Wed Nov 20 00:00:32 2013 | ||
-!- zxtx [~zv@129-79-241-148.dhcp-bl.indiana.edu] has quit [Ping timeout: 248 seconds] | 04:13 | |
-!- zxtx [~zv@c-98-193-83-24.hsd1.il.comcast.net] has joined #shogun | 04:50 | |
-!- sonne|osx [~sonne@f053043202.adsl.alicedsl.de] has joined #shogun | 08:15 | |
-!- benibadman [~benibadma@94.135.236.129] has joined #shogun | 08:42 | |
-!- benibadman [~benibadma@94.135.236.129] has quit [] | 08:59 | |
-!- benibadman [~benibadma@94.135.236.129] has joined #shogun | 09:03 | |
-!- benibadman [~benibadma@94.135.236.129] has quit [Read error: Connection reset by peer] | 09:08 | |
-!- benibadman [~benibadma@94.135.236.129] has joined #shogun | 09:09 | |
-!- benibadman [~benibadma@94.135.236.129] has quit [Read error: Connection reset by peer] | 09:10 | |
-!- benibadman [~benibadma@94.135.236.129] has joined #shogun | 09:10 | |
-!- sonne|osx [~sonne@f053043202.adsl.alicedsl.de] has quit [Quit: sonne|osx] | 11:03 | |
-!- sonne|osx [~sonne@f053043202.adsl.alicedsl.de] has joined #shogun | 11:03 | |
sonne|osx | wiking: lisitsyn1 - guys I am shocked | 11:07 |
---|---|---|
sonne|osx | ben taskar died! | 11:08 |
-!- lisitsyn [~lisitsin@mxs.kg.ru] has joined #shogun | 11:09 | |
sonne|osx | lisitsyn? | 11:09 |
lisitsyn | sonne|osx: ich | 11:09 |
sonne|osx | you what is with your *1 ? | 11:09 |
-!- Saurabh7 [~Saurabh7@115.248.130.148] has quit [Read error: Connection reset by peer] | 11:09 | |
lisitsyn | sonne|osx: oh I keep forgetting to turn off irc at other machine | 11:09 |
sonne|osx | lisitsyn: I am shocked - Ben Taskar died! | 11:10 |
lisitsyn | sonne|osx: yes I told you yesterday | 11:10 |
lisitsyn | did you know him? | 11:10 |
sonne|osx | lisitsyn: didn't notice that you told me ... | 11:10 |
sonne|osx | yes of course | 11:10 |
sonne|osx | he was the structured output learning god | 11:10 |
lisitsyn | sonne|osx: http://www.shogun-toolbox.org/irclogs/%23shogun.2013-11-18.log.html in the end of the log | 11:11 |
lisitsyn | sonne|osx: I don't know any of his works unfortunately | 11:11 |
sonne|osx | all the SO stuff in shogun is using his formulation | 11:12 |
lisitsyn | oh | 11:12 |
lisitsyn | I see | 11:12 |
-!- mode/#shogun [+o lisitsyn] by ChanServ | 11:13 | |
-!- lisitsyn1 was kicked from #shogun by lisitsyn [lisitsyn1] | 11:13 | |
* sonne|osx heard gunfire | 11:13 | |
@lisitsyn | haha | 11:13 |
sonne|osx | his tutorials at nips or icml about SO were really excellent | 11:13 |
sonne|osx | lisitsyn: and he was even younger than me o_O | 11:14 |
@lisitsyn | sonne|osx: yeah that's kind of unfair people die that young | 11:14 |
sonne|osx | in particular when you don't smoke and your bmi is perfect | 11:15 |
sonne|osx | ohh well | 11:15 |
@lisitsyn | sonne|osx: sometimes I think it doesn't matter whether you smoke or drink or whatever | 11:17 |
sonne|osx | I guess it matters but of course such sudden young deaths are more shocking and so more remembered | 11:18 |
@lisitsyn | so many things affect you and you anyway just reduce chances not eliminate them | 11:18 |
@lisitsyn | sonne|osx: are you back from being sick? | 11:19 |
sonne|osx | no :( | 11:20 |
sonne|osx | still fever | 11:20 |
@lisitsyn | sonne|osx: oh I hope you will recover soon, you are sick for quite a few days already | 11:20 |
sonne|osx | lisitsyn: I only get the toughest sicknesses nowadays | 11:21 |
@lisitsyn | sonne|osx: is there any reason? | 11:21 |
sonne|osx | lisitsyn: I am too strong for the weak ones :D | 11:22 |
sonne|osx | lisitsyn: and actually I got 2 diseases in a row one opening the doors to dr soeren :/ | 11:25 |
-!- Saurabh7 [~Saurabh7@115.248.130.148] has joined #shogun | 11:30 | |
sonne|osx | besser82: any updates? | 11:31 |
@wiking | i saw it yesterday | 12:51 |
-!- Saurabh7 [~Saurabh7@115.248.130.148] has quit [Remote host closed the connection] | 12:56 | |
sonne|osx | wiking: do we have some dev meeting now? or when? | 13:15 |
@wiking | anybodcould | 13:26 |
@wiking | could | 13:26 |
@lisitsyn | wiking: ich! | 13:29 |
sonne|osx | no idea what this means | 13:37 |
-!- sonne|osx [~sonne@f053043202.adsl.alicedsl.de] has quit [Quit: sonne|osx] | 13:39 | |
@wiking | hoh | 13:40 |
@wiking | so | 13:40 |
@wiking | talk | 13:40 |
@wiking | lisitsyn: here? | 13:40 |
@wiking | sonney2k_: ping | 13:40 |
@lisitsyn | wiking: yeahs | 13:40 |
@wiking | ok sonney2k_ will be back i think in 2 minutes :) | 13:40 |
@wiking | as i know from his 'quits' | 13:40 |
@lisitsyn | wiking: lets see if you learnt good hypothesis | 13:41 |
@wiking | :D | 13:43 |
-!- iglesiasg [~iglesias@2001:6b0:1:1da0:28a3:b90c:4a85:f150] has joined #shogun | 13:44 | |
-!- mode/#shogun [+o iglesiasg] by ChanServ | 13:44 | |
@iglesiasg | hello hello | 13:44 |
@wiking | hellooo | 13:45 |
@wiking | we are still w8ing for sonney2k_ | 13:45 |
@iglesiasg | ook | 13:46 |
@iglesiasg | aaah wait | 13:46 |
@iglesiasg | we are doing the dev meeting now?? | 13:46 |
@iglesiasg | my very very bad totally missed that it was going to be now, sorry guys | 13:47 |
@wiking | no worries | 13:48 |
@iglesiasg | at 15:15 I am attending a thesis presentation, but I think we will done by that time | 13:50 |
@wiking | hopefully | 13:53 |
@wiking | depending on sonney2k_ | 13:53 |
@lisitsyn | iglesiasg: wiking: how can I knew that we will have meeting now? ;) | 13:53 |
@lisitsyn | am I missing some mail? | 13:54 |
@wiking | hehehe no | 13:54 |
@iglesiasg | there was the doodle | 13:54 |
@wiking | sonney2k_: just decided but he didn't even filled out | 13:54 |
@wiking | :))) | 13:54 |
@iglesiasg | hehehe | 13:54 |
@wiking | and then he left | 13:54 |
@wiking | :P | 13:54 |
@lisitsyn | hahah | 13:54 |
@wiking | anyhow there's tons of stuff we can talk now | 13:54 |
@wiking | and sonney2k_ can read the logs no? | 13:54 |
@wiking | + join later | 13:54 |
@iglesiasg | I am fine either way, waiting a bit longer or starting now | 13:54 |
@wiking | either this or wait or postpone the meeting for another day? | 13:54 |
@lisitsyn | well lets just talk about stuff that matters instead of managing meeting :D | 13:55 |
@wiking | ok | 13:55 |
@wiking | cool | 13:55 |
@wiking | so we were already starting a discussion | 13:55 |
@wiking | and sonney2k_ had an insight of that as well | 13:55 |
@wiking | about chunking up libshogun | 13:56 |
@wiking | as currently it's really redicolous how big the .so is | 13:56 |
@lisitsyn | how do we chunk up? | 13:56 |
@wiking | lisitsyn: he had the good idea of one lib per subdir under shogun | 13:56 |
@wiking | so | 13:56 |
@wiking | shogun/io | 13:56 |
@lisitsyn | we should have been using some plugin architecture | 13:56 |
@wiking | shogun/features | 13:56 |
@wiking | shogun/label | 13:56 |
@wiking | etc | 13:56 |
@wiking | lisitsyn: shoulda coulda woulda | 13:56 |
@lisitsyn | I don't really agree | 13:57 |
@wiking | now we'll do the opposite way | 13:57 |
@wiking | lisitsyn: well of course we cannot force this arch | 13:57 |
@wiking | but we can go along this line | 13:57 |
@wiking | trying to keep and then handle the exception | 13:57 |
@lisitsyn | well I don't think it is a good way | 13:57 |
@wiking | libshogun_machine would be a good idea | 13:57 |
@lisitsyn | there is a bunch of relations between these .so's | 13:57 |
@wiking | and then after libshogun_multiclass another? | 13:57 |
@lisitsyn | yes | 13:58 |
@lisitsyn | there is at least shogun base | 13:58 |
@wiking | and of course there's a huge cross dependency between feature-machine-label | 13:58 |
@lisitsyn | shogun linear machine | 13:58 |
@lisitsyn | shogun kernel machine | 13:58 |
@lisitsyn | shogun multiclass | 13:58 |
@wiking | lisitsyn: yeah the question is how fine grained do we want to be | 13:58 |
@lisitsyn | shogun instance based (knn and shit) | 13:58 |
@wiking | i would go with the more the better | 13:58 |
@wiking | to be something like gstreamer on the end | 13:59 |
@wiking | each little fucking module is a separate .so | 13:59 |
@wiking | and then if it's needed it's loaded into memory space | 13:59 |
@wiking | but if not then it's not loaded at all | 13:59 |
@wiking | this would be a vertical split i would say | 13:59 |
@lisitsyn | and all 'apply' modules shoud be bsd | 13:59 |
@lisitsyn | (I believe) | 13:59 |
@wiking | but then i would go on the end (taking this in mind during design) to have a horizontal split | 13:59 |
@wiking | exactly | 14:00 |
@wiking | train-apply split | 14:00 |
@lisitsyn | and they are AS fast as possible | 14:00 |
@wiking | indeed | 14:00 |
@wiking | multiproc | 14:00 |
@wiking | multieverything | 14:00 |
@lisitsyn | opencl whatever | 14:00 |
@lisitsyn | openvx no idea | 14:00 |
@wiking | yeah | 14:00 |
@lisitsyn | some kind of adapters | 14:00 |
@wiking | in whatever means | 14:00 |
@wiking | but again | 14:00 |
@wiking | have the gstreamer like pipelining | 14:00 |
@lisitsyn | and one realtime module may be ;) | 14:00 |
@wiking | that actually allows piping some modules to GPU | 14:01 |
@wiking | some modules to openmax | 14:01 |
@wiking | and shit like that | 14:01 |
@lisitsyn | wiking: iglesiasg: I have one idea about training part then | 14:01 |
@wiking | but to have this option we need to start drawing up an architecture | 14:01 |
@lisitsyn | so actually a plenty of days is spent on porting shit together | 14:02 |
@lisitsyn | I think we should develop a few 'adapters' | 14:02 |
@lisitsyn | to allow training in say matlab | 14:02 |
@lisitsyn | e.g. | 14:02 |
@lisitsyn | you have shitload of matlab code | 14:02 |
@lisitsyn | made by famous X researcher | 14:02 |
@lisitsyn | if we want to be the most state of the art thing around | 14:02 |
@lisitsyn | we could develop an interface | 14:03 |
@iglesiasg | would an adapter be pretty much the same idea of a static interface? | 14:03 |
@lisitsyn | that allows you to tie that matlab function | 14:03 |
@lisitsyn | that trains model | 14:03 |
@lisitsyn | iglesiasg: well I mean some skeleton that keeps static | 14:03 |
@lisitsyn | like shogun_train_machine(..) function | 14:03 |
@lisitsyn | but you tie things in that function | 14:03 |
@lisitsyn | to that downloaded code | 14:04 |
@lisitsyn | see what I mean? | 14:04 |
@iglesiasg | more or less | 14:04 |
@wiking | but what would u do with the return code? | 14:04 |
@wiking | i mean how could u use that in shogun after | 14:04 |
@wiking | or u dont care | 14:04 |
@lisitsyn | wiking: well it runs matlab externally and retrieves learned model | 14:05 |
@wiking | just somehow be able to push features+labels into an external code | 14:05 |
@wiking | lisitsyn: but how do u know how to interpret that model? | 14:05 |
@wiking | or it's up to the actual implementation | 14:05 |
@wiking | ? | 14:05 |
@lisitsyn | wiking: you write that code | 14:05 |
@wiking | ah ok got it | 14:05 |
@lisitsyn | you just add one more layer | 14:05 |
@wiking | yeah yeah i get it now | 14:05 |
@lisitsyn | like shogun_train(..) and then retrieve the result | 14:05 |
@lisitsyn | this way we can have basically everything | 14:05 |
@lisitsyn | as 'plugins' | 14:06 |
@wiking | yep | 14:06 |
@lisitsyn | if there is no performance enough you rewrite it | 14:06 |
@wiking | well yeah this would be then part of the whole new shogun slice-up task | 14:06 |
@wiking | you can plug it in | 14:06 |
@wiking | if it's really good stuff | 14:06 |
@wiking | u can reimplement it in a more effective code | 14:06 |
@wiking | or something | 14:06 |
@lisitsyn | wiking: another kind of such an adapter is python adapter | 14:08 |
@lisitsyn | and you run python code | 14:08 |
@lisitsyn | wiking: so it is like integration platform | 14:08 |
@lisitsyn | wiking: it is kind of big change | 14:09 |
@lisitsyn | but I see it is like a good way to beat every library around | 14:09 |
@wiking | yeap | 14:09 |
@lisitsyn | if scikits has X | 14:10 |
@wiking | that would be great to give some kind of a way | 14:10 |
@wiking | to be able to call any sorts of external code | 14:10 |
@wiking | yeah exactly | 14:10 |
@wiking | not always reimplement everything | 14:10 |
@wiking | rather just plug in some stuff that's already available elswhere | 14:10 |
@lisitsyn | I don't know what to do about distributed computing | 14:10 |
@lisitsyn | I don't have clear vision how should it be done | 14:10 |
@wiking | lisitsyn: it's already on it's way | 14:10 |
@wiking | needs a little be more interfacing | 14:11 |
@wiking | but at the momemnt it's getting there | 14:11 |
@lisitsyn | how? | 14:11 |
@wiking | with the computing fw | 14:11 |
@wiking | as part of one gaussian project | 14:11 |
@wiking | we have this | 14:11 |
@lisitsyn | ah | 14:11 |
@wiking | src/shogun/lib/computation/ | 14:11 |
@lisitsyn | I need to check if it fits modern shit like hadoop and etc | 14:11 |
@wiking | well that's it | 14:11 |
@wiking | it's just an abstract interface | 14:12 |
@wiking | heiko implemented that using some batch system | 14:12 |
@wiking | to do parallel stuff | 14:12 |
@wiking | i think he even shared the repo | 14:12 |
@wiking | but i've started to try to use that | 14:12 |
@wiking | on a hadoop env | 14:12 |
@wiking | it'll need some change | 14:12 |
@wiking | the thing is | 14:12 |
@wiking | that we dont have a clear way to have for example views | 14:12 |
@wiking | on features | 14:12 |
@wiking | the current shogun/lib/computation/ fw works in a way | 14:13 |
@wiking | that we dont share anything | 14:13 |
@wiking | a JOB gets all the data in one package | 14:13 |
@wiking | and that's it | 14:13 |
@lisitsyn | well there is a lot of sharing | 14:13 |
@wiking | and we dont have support for like | 14:13 |
@wiking | ok here's a big feature | 14:13 |
@wiking | feature matrix | 14:14 |
@wiking | and i want just the first n element of it | 14:14 |
@wiking | but in the meanwhile another node wants the second n element of it | 14:14 |
@wiking | we dont support that atm | 14:14 |
@wiking | just by copying | 14:14 |
@wiking | see what i mean | 14:14 |
@wiking | ? | 14:14 |
@lisitsyn | yeah sure we don't support views | 14:14 |
@wiking | and for multitask | 14:14 |
@wiking | either it is cluster | 14:14 |
@wiking | or just | 14:14 |
@wiking | more cores | 14:14 |
@wiking | in one machine | 14:14 |
@wiking | we need to support that | 14:14 |
@wiking | views that are thread safe | 14:15 |
@wiking | the substack arch at the moment is not thread safe at all | 14:15 |
@lisitsyn | yeah and some things like parameters are completely unsupportable | 14:15 |
@wiking | hehe | 14:16 |
@wiking | but yeah i think we need to modify stuff in shogun/lib/computation/ in a way to be able to support in a unified way | 14:16 |
@wiking | 1 machine with several cores or n machine with n cores | 14:16 |
@wiking | i mean the whole interface should be the same | 14:16 |
@lisitsyn | I still think we should get rid of getters and setters :D | 14:16 |
@wiking | lisitsyn: and then? | 14:16 |
@wiking | public properties? | 14:17 |
@lisitsyn | no, names | 14:17 |
@lisitsyn | or objects representing them | 14:17 |
@lisitsyn | or both | 14:17 |
@wiking | ah ok | 14:17 |
@wiking | so your previous idea? | 14:17 |
@wiking | set('whatever', value) | 14:17 |
@wiking | ? | 14:17 |
@lisitsyn | well I had a chance to try it | 14:17 |
@lisitsyn | yeah | 14:17 |
@wiking | or get('whatever property') | 14:17 |
@lisitsyn | can't say I liked everything about it | 14:18 |
@lisitsyn | the main thing is namespaces | 14:18 |
@lisitsyn | you can't name that keyword 'width' | 14:18 |
@lisitsyn | otherwise you disallow this word in the user code | 14:19 |
@wiking | mmmm | 14:19 |
@lisitsyn | but strings give you no info about type | 14:19 |
@lisitsyn | and you have to get('whatever').as_integer() or whatever | 14:19 |
@wiking | ih | 14:19 |
@lisitsyn | doesn't look good either | 14:19 |
@wiking | yeah that's nogood | 14:19 |
@lisitsyn | getBy(keyword.whatever) is like an alternative | 14:20 |
@lisitsyn | or any other namespace | 14:20 |
@wiking | well we had an issue for this no? | 14:21 |
@lisitsyn | yes | 14:21 |
@wiking | we should continue brainstorming about this further there | 14:21 |
@wiking | i'm just afraid of this typing problem | 14:21 |
@lisitsyn | just trying to describe what I've learnt from experience | 14:21 |
@lisitsyn | :) | 14:21 |
@lisitsyn | typing is no problem if we use these instances to name parameters | 14:21 |
@lisitsyn | it works in C++/java/python/whatever | 14:22 |
@wiking | because afaik there's no way you can have something like: float get(string); int get(string); | 14:22 |
@lisitsyn | yes there is no way | 14:22 |
@wiking | c++ would die on this | 14:22 |
@lisitsyn | no, I am speaking about | 14:22 |
@lisitsyn | T get(const Keyword<T>& kw); | 14:22 |
@iglesiasg | gtg guys, I will catch up later | 14:22 |
@lisitsyn | it works in any language | 14:22 |
@wiking | iglesiasg: okey | 14:22 |
@lisitsyn | see ya | 14:22 |
@wiking | lisitsyn: mmm | 14:23 |
@lisitsyn | wiking: this works but you have to keep these 'keywords' in some separate namespace to avoid clashes | 14:23 |
@wiking | so then you could get a Keyword<float> mykeyword? :) | 14:23 |
@lisitsyn | yes of course | 14:23 |
@wiking | cool | 14:23 |
@lisitsyn | and get float | 14:23 |
@lisitsyn | with no need to cast | 14:23 |
@wiking | ok yeah | 14:23 |
@wiking | i see now the problem | 14:24 |
@wiking | i mean u know what's the problem with hits | 14:24 |
@lisitsyn | wiking: name clashes is the most troublesome issue here | 14:24 |
@wiking | *this | 14:24 |
@wiking | that if u want to develop for this kind of program | 14:24 |
@wiking | it's a fucking bitch | 14:24 |
@wiking | as there's no way u can use any normal autocompletion | 14:24 |
@lisitsyn | why? | 14:24 |
@wiking | so u are like constantly reading the API | 14:24 |
@lisitsyn | autocomplete should work not that bad | 14:25 |
@wiking | what keywords does CKernel supports | 14:25 |
@lisitsyn | ah | 14:25 |
@wiking | so say you have CKernel k; | 14:25 |
@wiking | and then you do | 14:25 |
@wiking | k.<tab> | 14:25 |
@wiking | u r fucked :) | 14:25 |
@wiking | u get | 14:25 |
@wiking | get(Keyword...) | 14:25 |
@wiking | set(Keyword...) | 14:25 |
@wiking | and then? | 14:26 |
@wiking | u need to go to API ref manual | 14:26 |
@lisitsyn | wiking: and k.cache_size | 14:26 |
@wiking | to find out what keywords CKernel has in the first place | 14:26 |
@wiking | lisitsyn: i suppose u can do that in python | 14:26 |
@wiking | or u want to do this automapping? | 14:26 |
@wiking | i mean autogen for c++ interface? | 14:26 |
@lisitsyn | wiking: I don't know yet | 14:27 |
@lisitsyn | wiking: autogen what? | 14:27 |
@wiking | say CKernel has like n keywords | 14:27 |
@wiking | well let's say we have an class | 14:27 |
@wiking | let's call it CPlay | 14:27 |
@wiking | and we know that it supports 3 different keywords | 14:27 |
@wiking | then of course there's a way | 14:27 |
@wiking | we could generate the interface | 14:27 |
@wiking | that adds | 14:27 |
@wiking | the methods for those keywords in c++ | 14:27 |
@wiking | to support | 14:28 |
@lisitsyn | wiking: you don't have to generate any methods | 14:28 |
@wiking | CPlay c; c.keyword_1 = 11.0; | 14:28 |
@lisitsyn | ah no no I don't like it | 14:28 |
@lisitsyn | it won't work in java | 14:28 |
@wiking | or float k1_value = c.keyword_1 | 14:28 |
@wiking | lisitsyn: why not? | 14:28 |
@lisitsyn | c.get(c.keyword_1) | 14:28 |
@lisitsyn | wiking: you can't overload = in java | 14:29 |
@lisitsyn | so won't work | 14:29 |
@wiking | fucker | 14:29 |
@wiking | lisitsyn: ah ok so then u still generate somehow the class interface | 14:29 |
@wiking | to have | 14:29 |
@wiking | c.keyword_1 | 14:29 |
@wiking | i mean i would go with generate it | 14:29 |
@wiking | instead of relying on the developer | 14:29 |
@lisitsyn | wiking: yeah probably it makes sense | 14:29 |
@wiking | the developer should just do | 14:29 |
@lisitsyn | but c.get(c.keyword) is ugly | 14:30 |
@wiking | SG_ADD(parameter) | 14:30 |
@wiking | and then from there we could generate what keywords are supported | 14:30 |
@wiking | and that's it | 14:30 |
@wiking | of course this is quite tricky | 14:30 |
@wiking | because we rely on cpp implementation | 14:30 |
@wiking | to generate the .h of the class | 14:30 |
@lisitsyn | well not really tricky, it is ok I think | 14:30 |
@wiking | see what i mean | 14:30 |
@wiking | ? | 14:30 |
@lisitsyn | we put that into .h | 14:31 |
@wiking | so you rely on implementation to have a definition of a class | 14:31 |
@wiking | mmm | 14:31 |
@lisitsyn | no, you declare them once in h | 14:31 |
@wiking | i mean this would make things more clean i would say | 14:31 |
@lisitsyn | wiking: but again, c.get(c.keyword) is ugly | 14:31 |
@wiking | lisitsyn: ok let say there's a way to define them in .h | 14:31 |
@lisitsyn | classifier.get(classifier.time_limit) | 14:32 |
@wiking | lisitsyn: better idea? :) | 14:32 |
@lisitsyn | ugly! | 14:32 |
@lisitsyn | no | 14:32 |
@wiking | true that it's shit | 14:32 |
@lisitsyn | I doubt there is a way | 14:32 |
@wiking | i mean better than | 14:32 |
@wiking | c.funky_function_name_because_i_had_vodkaz_set(a) | 14:32 |
@wiking | ;) | 14:32 |
@wiking | i mean somehow we should have an autogen between registered parameters | 14:33 |
@wiking | and their setter/getter | 14:33 |
@wiking | that's for sure | 14:33 |
@lisitsyn | that's eay | 14:33 |
@lisitsyn | easy | 14:33 |
@wiking | lisitsyn: we could start with that | 14:33 |
@wiking | and then take the next step | 14:33 |
@lisitsyn | but I'd like to find a way around that c.get(c.shit) | 14:33 |
@wiking | and in the meanwhile start thinking about d-ptrs | 14:33 |
@wiking | because this switch | 14:34 |
@wiking | should include that as well | 14:34 |
@wiking | and then | 14:34 |
@wiking | actually | 14:34 |
@wiking | it's noooot that hard anymore | 14:34 |
@wiking | because we could generate the whole api of the public | 14:34 |
@wiking | class | 14:34 |
@wiking | from the private class | 14:34 |
@wiking | or something like that | 14:34 |
@wiking | if private class gets more params | 14:35 |
@lisitsyn | no, api should be public | 14:35 |
@wiking | yeah but what i mean here | 14:35 |
@wiking | is that we use the d-ptrs arch | 14:35 |
@wiking | i.e. we have private classes | 14:35 |
@wiking | where the real magic is being done | 14:35 |
@lisitsyn | wiking: actually | 14:35 |
@lisitsyn | remember scikit learn | 14:35 |
@lisitsyn | that we compare to each minute | 14:35 |
@lisitsyn | :D | 14:35 |
@lisitsyn | how do they handle it | 14:36 |
@wiking | dunno | 14:36 |
@lisitsyn | they have keywords to set parameters | 14:36 |
@lisitsyn | SVC(C=1.0) | 14:36 |
@lisitsyn | like that | 14:36 |
@wiking | ah yeah | 14:36 |
@wiking | but that's really easy within python | 14:36 |
@wiking | or we go with vargs as well? :) | 14:36 |
@lisitsyn | wiking: but you don't know what parameters | 14:36 |
@wiking | set(vargs...) | 14:36 |
@lisitsyn | wiking: ah I have a way to support that in C++ actually | 14:36 |
@lisitsyn | some kind of | 14:37 |
@lisitsyn | I mean C=1.0 | 14:37 |
@wiking | http://www.cplusplus.com/reference/cstdarg/va_arg/ | 14:37 |
@wiking | that's it | 14:37 |
@lisitsyn | no, trickery lies in overloading = | 14:37 |
@lisitsyn | :) | 14:37 |
@lisitsyn | wiking: but what I mean is | 14:38 |
@lisitsyn | you have to check docz | 14:38 |
@lisitsyn | to know how to call that sklearn.SVC | 14:38 |
@lisitsyn | and people feel ok about it | 14:38 |
@lisitsyn | may be we can be comfortable too | 14:38 |
@wiking | mmm yeah true.. i just like if there's autocomplete | 14:39 |
@wiking | so that i dont have to alt-tab all the fucking time | 14:39 |
@lisitsyn | wiking: I know one way | 14:39 |
@lisitsyn | wiking: we can put that into the doc of the get method | 14:39 |
@lisitsyn | of each class | 14:39 |
@lisitsyn | so adding new parameter doesn't change API | 14:39 |
@lisitsyn | it changes doc | 14:39 |
@lisitsyn | you look up what you need | 14:40 |
@lisitsyn | and write it | 14:40 |
@wiking | shiatz | 14:40 |
@wiking | fucking docs | 14:40 |
@lisitsyn | why not? | 14:40 |
@wiking | yeah i get it | 14:40 |
@lisitsyn | wiking: not that bad I'd say | 14:41 |
@wiking | let's think about that more | 14:42 |
@lisitsyn | wiking: ah and if we put that into docs | 14:42 |
@lisitsyn | we don't put them to classes | 14:42 |
@lisitsyn | we have separate namespace | 14:43 |
@lisitsyn | you do | 14:43 |
@lisitsyn | classifier.<tab> | 14:43 |
@lisitsyn | and get | 14:43 |
@lisitsyn | get(Keyword) | 14:45 |
@lisitsyn | Returns the value of the specified parameter. Supported parameters are: | 14:45 |
@lisitsyn | shogun.parameters.caching.size | 14:45 |
@lisitsyn | shogun.parameters.caching.shit_ratio | 14:45 |
@lisitsyn | shogun.parameters.shit.total_shit_ratio | 14:45 |
@lisitsyn | wiking: ^ | 14:45 |
@wiking | mmm | 14:45 |
@wiking | could work | 14:45 |
@lisitsyn | yes it looks a bit better | 14:45 |
@wiking | cool | 14:46 |
@wiking | we just need to implement it :) | 14:46 |
@wiking | what do we do with the slicing up? | 14:46 |
@wiking | because as sonney2k_ pointed out | 14:47 |
@wiking | it's all great | 14:47 |
@wiking | until we have only c++ | 14:47 |
@wiking | and the problem rises | 14:47 |
@wiking | when we start swiging | 14:47 |
@wiking | because he tried swig modular thing | 14:47 |
@wiking | but that was crashing for sonney2k_ | 14:48 |
@lisitsyn | wiking: yes it is kind of problem | 14:48 |
@wiking | as swig has a support to generate separate .cxx instead of one monster cxx | 14:48 |
@wiking | but apparently it's really unstable | 14:48 |
@wiking | but maaaybe that's like swig 1.x | 14:48 |
@wiking | and maybe it has matured ever since then | 14:48 |
@wiking | i mean none of tried that nowadays | 14:48 |
@wiking | *none of us | 14:51 |
@lisitsyn | wiking: I see some drawback that is related to modularity | 14:58 |
-!- Saurabh7 [~Saurabh7@115.248.130.148] has joined #shogun | 14:59 | |
@lisitsyn | if everything is that loosely coupled may be we should find a way to support that properly | 14:59 |
@lisitsyn | i.e. everything is defined by global names but how do we call third party (or backported from newer versions) shogun classes | 15:00 |
@wiking | hehehe | 15:00 |
@lisitsyn | I have an algorithm called | 15:01 |
@lisitsyn | SVCTOTOTOTOTOTO | 15:01 |
@lisitsyn | how do I import it | 15:01 |
@lisitsyn | if it wasn't around | 15:01 |
@lisitsyn | but it is here now as .so | 15:01 |
@wiking | :> | 15:08 |
@wiking | well i think there's a lot we could learn abot this | 15:08 |
@wiking | from gstreamer | 15:08 |
@wiking | as they have a way | 15:12 |
@wiking | i mean of course some standard ways | 15:13 |
@wiking | you can develop any sorts of gstreamer plugin | 15:13 |
@wiking | and it'll make sure that if 2 modules can work together it'll make it work together | 15:13 |
-!- iglesiasg [~iglesias@2001:6b0:1:1da0:28a3:b90c:4a85:f150] has quit [Ping timeout: 245 seconds] | 15:14 | |
-!- hushell [~hushell@c-50-188-141-210.hsd1.or.comcast.net] has quit [Ping timeout: 265 seconds] | 15:43 | |
@wiking | woah fuck | 16:11 |
@wiking | this is great | 16:11 |
@wiking | http://docs.docker.io/en/master/api/docker_remote_api_v1.6/#docker-remote-api-v1-6 | 16:11 |
@wiking | we could easily use this for distrib stuff :) | 16:14 |
-!- lisitsyn [~lisitsin@mxs.kg.ru] has quit [Quit: Leaving.] | 16:14 | |
-!- iglesiasg [~iglesias@n181-p223.kthopen.kth.se] has joined #shogun | 16:23 | |
-!- iglesiasg [~iglesias@n181-p223.kthopen.kth.se] has quit [Client Quit] | 16:25 | |
-!- sonne|osx [~sonne@f053043202.adsl.alicedsl.de] has joined #shogun | 17:20 | |
sonne|osx | wiking: no I just slept until now... | 17:37 |
@wiking | sonne|osx: hihi | 17:44 |
@wiking | sonne|osx: read the logs | 17:44 |
@wiking | quite entertaining | 17:44 |
-!- benibadman [~benibadma@94.135.236.129] has quit [Ping timeout: 272 seconds] | 17:52 | |
sonne|osx | wiking: ok so I see some brainstorming about modularizing and setters/getters | 17:53 |
sonne|osx | wiking: I would want to add some more down to earth stuff | 17:53 |
@wiking | cool | 17:53 |
@wiking | add | 17:53 |
sonne|osx | allowing to compile interfaces w/o shogun src dir being available | 17:53 |
sonne|osx | and the d-ptr stuff | 17:53 |
sonne|osx | I think we need to have clean interfaces first - and I think *we* need to do this | 17:54 |
sonne|osx | not some student | 17:54 |
sonne|osx | it needs to be well thought through | 17:54 |
sonne|osx | when we have this the split up might be much more obvious | 17:54 |
-!- Saurabh7 [~Saurabh7@115.248.130.148] has left #shogun ["Leaving"] | 17:56 | |
@wiking | indeed | 18:03 |
@wiking | well this is interconnected imo | 18:03 |
sonne|osx | wiking: yeah but it is a lot of work too and I think we have to work on this together somehow - because it is a lot of work (the d-ptr stuff) | 18:05 |
sonne|osx | I mean it is if done well | 18:05 |
@wiking | well | 18:05 |
sonne|osx | it is not if you just copy paste what we have now | 18:05 |
@wiking | let's sketch up | 18:05 |
@wiking | the work | 18:05 |
@wiking | and we can slowly start crunching on it imo | 18:05 |
sonne|osx | yeah but before that I think the most important thing right now is to get into distributions | 18:06 |
sonne|osx | to become a standard | 18:06 |
@wiking | yey true | 18:06 |
@wiking | that means | 18:07 |
@wiking | we need to be able to | 18:07 |
@wiking | "17:53 < sonne|osx> allowing to compile interfaces w/o shogun src dir being available" | 18:07 |
@wiking | :D | 18:07 |
sonne|osx | for debian yes - for fedora besser82 won't need it | 18:07 |
@wiking | we dont have a problem with that "i dont know how many gigs of ram we can consume while compiling the package" | 18:07 |
@wiking | ? | 18:07 |
@wiking | as far as i remember u told something about a limit | 18:07 |
@wiking | that actually swig generated interfaces just eats up too much ram | 18:08 |
sonne|osx | wiking: we have a problem but at least each interface has different memory requirements | 18:08 |
@wiking | hence we cannot have a package of those | 18:08 |
@wiking | i mean official packages | 18:08 |
sonne|osx | IIRC last time compiling octave and swig made things go >3.5 G or so | 18:08 |
sonne|osx | so octave_modular might be problematic | 18:08 |
@wiking | as obviously we can roll our own deb packages | 18:08 |
@wiking | and there's no such limitation ;P | 18:08 |
sonne|osx | but we could try to limit things (say not wrap all classes / all data types) and use clang to compile | 18:09 |
@wiking | well i guess first things first | 18:09 |
@wiking | cmake patch | 18:09 |
@wiking | to get things compiled separately | 18:09 |
@wiking | besser82 is just overloaded with work so i guess we have to roll our own cmake hack :D | 18:10 |
@wiking | sonne|osx: u still on sick leave? | 18:10 |
sonne|osx | wiking: yes | 18:10 |
@wiking | sonne|osx: till? | 18:10 |
@wiking | god knows only? | 18:10 |
@wiking | hope nothing serious | 18:10 |
sonne|osx | yeah :/ | 18:10 |
@wiking | just a stupid flu | 18:10 |
@wiking | get well | 18:11 |
@wiking | and dont hack too much | 18:11 |
@wiking | anyhow i'll check on this shiatz | 18:11 |
@wiking | i just have too many things | 18:11 |
@wiking | around me lately and too little time | 18:11 |
sonne|osx | wiking: no Tonsillitis | 18:11 |
@wiking | but will try to give it a go today | 18:11 |
@wiking | buuuuh | 18:12 |
@wiking | i hate that | 18:12 |
@wiking | sonne|osx: am i right that we are still failing with protobuf as well? | 18:13 |
sonne|osx | wiking: yes | 18:13 |
@wiking | cool | 18:13 |
@wiking | needs a fix as well | 18:13 |
sonne|osx | wiking: besser82 said taht he wanted to do this by monday | 18:13 |
@wiking | well i guess he is just overwhelmed with other shiatz | 18:13 |
sonne|osx | but then no idea... | 18:13 |
sonne|osx | yeah | 18:13 |
sonne|osx | I know how to fix it | 18:14 |
@wiking | how? | 18:14 |
sonne|osx | so I would just do it also avoiding the static lib | 18:14 |
sonne|osx | wiking: well I call the protobuf compiler my own | 18:14 |
@wiking | sonne|osx: with the right flags ;) | 18:14 |
@wiking | yeah i thought to do the same | 18:14 |
sonne|osx | well it only has one flag | 18:14 |
@wiking | as i was really fed up with the inflexibility of that cmake wrapper | 18:14 |
sonne|osx | --cpp-out = directory to put output | 18:15 |
sonne|osx | and that's it | 18:15 |
@wiking | sonne|osx: go for it i'd say | 18:15 |
@wiking | as that script is just good for detecting the protobuf itself | 18:15 |
@wiking | and do the rest normally | 18:15 |
@wiking | like u suggested | 18:15 |
@wiking | i had the same kind of problem with SWIG | 18:15 |
sonne|osx | wiking: yeah and all that is missing then is to add the 3 generated .h files to the shogun src's | 18:15 |
sonne|osx | and the .cc's to the stuff to be compiled | 18:16 |
sonne|osx | that's it | 18:16 |
@wiking | that there was noooo fucking way to add ccache-swig to that cmake swig macro | 18:16 |
@wiking | hence i've hacked my own | 18:16 |
sonne|osx | in some way shogun is special - it just has *many* deps ... | 18:16 |
@wiking | well normal | 18:16 |
-!- thoralf [~thoralf@enki.zib.de] has joined #shogun | 18:17 | |
@wiking | hahaha great bug by thoralf | 18:17 |
@wiking | :DDD | 18:17 |
thoralf | Hey. | 18:18 |
thoralf | Whatever I do. ;) | 18:18 |
sonne|osx | guilty | 18:18 |
sonne|osx | by definition! | 18:18 |
sonne|osx | wiking: this reminds me that we need to finish the SGString* referenced data transition | 18:18 |
sonne|osx | wiking: and I guess Heiko is totally away until january | 18:18 |
sonne|osx | too bad | 18:18 |
sonne|osx | because we have like 5 pages of ideas written on some notebooks | 18:19 |
sonne|osx | what we could should do | 18:19 |
@wiking | as well as supporting views for Features and Labels | 18:19 |
sonne|osx | and also for gsoc etc | 18:19 |
@wiking | and of course try to think about how to port std::shared_ptr ;) | 18:19 |
@wiking | lalala | 18:19 |
@wiking | too many good stuff that is needed | 18:19 |
sonne|osx | exactly such things | 18:19 |
sonne|osx | all tons of work | 18:19 |
@wiking | yeps | 18:19 |
@wiking | i dont know if it's worth it | 18:19 |
@wiking | as per se | 18:19 |
@wiking | i dont see that many ppl using shogun | 18:20 |
@wiking | and of course that's because we dont have package | 18:20 |
sonne|osx | yeah | 18:20 |
@wiking | and eeeevery other ML library is like either | 18:20 |
@wiking | pip install | 18:20 |
sonne|osx | and I think the best way to increase number of users | 18:20 |
@wiking | or apt-get install | 18:20 |
@wiking | and yes | 18:20 |
sonne|osx | is to have it prepackaged | 18:20 |
sonne|osx | and then also | 18:20 |
@wiking | we neeed fucking native windows port:P | 18:20 |
sonne|osx | to get it used in teaching! | 18:20 |
@wiking | sonne|osx: indeed | 18:20 |
@wiking | sonne|osx: i'm already pushing some profs i know to do this | 18:21 |
@wiking | they liked the notebooks | 18:21 |
sonne|osx | so I think our demos/notebooks should cover all textbook materials | 18:21 |
@wiking | so lets see | 18:21 |
thoralf | sonne|osx, wiking: A good way to get more users is something like libsvm-train, libsvm-predict. | 18:21 |
sonne|osx | I am doing the same | 18:21 |
sonne|osx | and they all liked it | 18:21 |
@wiking | sonne|osx: yeah for that we are like missing basic stuff like decision tree :) | 18:21 |
thoralf | We have tons of algorithms, but nothing out-of-the-box. | 18:21 |
@wiking | thoralf: yeps | 18:21 |
sonne|osx | thoralf: naa | 18:21 |
sonne|osx | then they could use libsvm :D | 18:21 |
@wiking | thoralf: i'm trying to push something like gstreamer pipelining | 18:21 |
thoralf | It would be easy to change some examples to look like this. | 18:21 |
sonne|osx | but sure one could have libsvm compatible interface but supporting all svms and kernels in shogun | 18:22 |
sonne|osx | (very easily) | 18:22 |
thoralf | wiking: gstreamer? Isn't it audio stuff? | 18:22 |
@wiking | thoralf: ./shogun input ! reader ! preprocessor ! ML algo ! outputmodel | 18:22 |
@wiking | thoralf: yes but you can do a command line like that | 18:22 |
thoralf | Hehe. | 18:22 |
@wiking | thoralf: gstreamer input ! demux ! decode ! push it into videobuffer | 18:22 |
@wiking | and the library itself will make it sure | 18:23 |
@wiking | that the stuff is converted into the right format etc | 18:23 |
sonne|osx | wiking: the more flexibility you allow the slower it gets :D but I think underneath it is already like that | 18:23 |
@wiking | and that the different modules are actually connected | 18:23 |
sonne|osx | you can choose the reader | 18:24 |
@wiking | sonne|osx: heheh yeah but still this is pretty easy stuff | 18:24 |
@wiking | we just need a handler for it | 18:24 |
sonne|osx | features an preprocessors | 18:24 |
sonne|osx | and ml algo and get output | 18:24 |
@wiking | indeed | 18:24 |
sonne|osx | and get it evaulated by perf measure the way you want | 18:24 |
sonne|osx | ... | 18:24 |
@wiking | yeps | 18:24 |
@wiking | that's the other pipeline | 18:24 |
sonne|osx | there just isn't a cmdline thing for that | 18:24 |
thoralf | Sounds a bit like over-engineering. :) | 18:24 |
@wiking | thoralf: still there's a good reason why gstreamer is being deployed almost on any linux based multimedia machine | 18:25 |
@wiking | thoralf: it's just well thought out and very modular | 18:25 |
@wiking | you can easily plug in and out stuff | 18:25 |
@wiking | and things are really loaded in dynamically | 18:25 |
@wiking | so we dont need like a 500 megz shared lib to hang around in the memory | 18:25 |
@wiking | just because we want to do evaluation on a model | 18:26 |
@wiking | that actually would require 3 things | 18:26 |
thoralf | Every time I try something with shogun, I get need valgrind/gdb in the end. | 18:26 |
@wiking | thoralf: hahahahah | 18:26 |
thoralf | That's no good user experience. | 18:26 |
@wiking | thoralf: welcome to opensource :) | 18:26 |
@wiking | thoralf: but true | 18:26 |
thoralf | lol | 18:26 |
@wiking | thoralf: well the best thing is to generate for each gdb session another unit test :) | 18:26 |
@wiking | just that it never happens again | 18:26 |
@wiking | :P | 18:26 |
thoralf | I don't care about command line stuff as long it's segfaulting as hell. ;) | 18:26 |
@wiking | :D | 18:27 |
thoralf | My example can easily converted to a test - but my primary objective is to check that it's not (Soerens words ;)) self-inflicted. | 18:28 |
thoralf | Btw., StructuredLabels is sucking as well. Wasting memory and not giving it back. | 19:02 |
-!- zxtx [~zv@c-98-193-83-24.hsd1.il.comcast.net] has quit [Ping timeout: 272 seconds] | 19:07 | |
sonne|osx | thoralf: problem really is that the streaming feeatures did not survive the SGVector* refcount refactoring in healty shape - this whole thing needs conversion | 19:14 |
thoralf | sonne|osx: All my minimal examples do not even involve streaming features. | 19:15 |
* thoralf is just entering another mine field: struct output stuff. | 19:16 | |
sonne|osx | wiking: I think we have this modularity code wise but no good separation into packages | 19:16 |
sonne|osx | thoralf: that is hardly sth minimal though | 19:16 |
thoralf | sonne|osx: Which one are you talking about? | 19:17 |
sonne|osx | thoralf: structured output learning | 19:17 |
thoralf | https://github.com/shogun-toolbox/shogun/issues/1758, https://github.com/shogun-toolbox/shogun/issues/1759 | 19:17 |
thoralf | That's what I found so far. ;) | 19:18 |
thoralf | There are other things related to StructuredLabels, but it's hard to track it down. | 19:18 |
thoralf | CStructuredLabels * sl = new CStructuredLabels(100); | 19:19 |
thoralf | Oops. | 19:19 |
thoralf | This one is my next suspect: CStructuredLabels * sl = new CStructuredLabels(num); for (int idx=0; idx<num; idx++) { sl->set_label(idx, new CRealNumber(idx)); }} | 19:20 |
thoralf | Every added label consumes 5.8k of memory. | 19:20 |
thoralf | Only RealNumbers. | 19:21 |
thoralf | Stops working with 3M output labels on my laptop, since eats my 16G for breakfast. | 19:22 |
thoralf | And 3M outputs shouldn't be a big deal. | 19:23 |
thoralf | Woha! | 19:59 |
thoralf | new CRealNumber(1); <-- Does 5 (!) allocating of 1024 Bytes. | 19:59 |
-!- zxtx [~zv@129-79-241-148.dhcp-bl.indiana.edu] has joined #shogun | 20:05 | |
thoralf | Damn. | 20:08 |
thoralf | sonne|osx: I think we have a problem. | 20:09 |
thoralf | shogun/base/SGObject.cpp lines 1066-1069 | 20:10 |
thoralf | Each parameter creates a DynArray of 1024 bytes. | 20:10 |
thoralf | And struct label inherits from SGObject | 20:10 |
-!- benibadman [~benibadma@port-92-206-116-153.dynamic.qsc.de] has joined #shogun | 20:20 | |
-!- sonne|osx [~sonne@f053043202.adsl.alicedsl.de] has quit [Quit: sonne|osx] | 20:49 | |
-!- benibadman [~benibadma@port-92-206-116-153.dynamic.qsc.de] has quit [] | 20:50 | |
-!- sonne|osx [~sonne@f053043202.adsl.alicedsl.de] has joined #shogun | 21:10 | |
@wiking | thoralf: we need serialization :S | 21:19 |
-!- sonne|osx [~sonne@f053043202.adsl.alicedsl.de] has quit [Quit: sonne|osx] | 21:28 | |
-!- lisitsyn [~lisitsyn@80.252.20.67] has joined #shogun | 21:31 | |
@wiking | lisitsyn: somebody just logged in to cloud from here: http://zeliade.com/ | 21:44 |
@wiking | :P | 21:44 |
lisitsyn | wiking: it happens :) | 21:44 |
@wiking | lisitsyn: heheh .net quant fw :P | 21:45 |
@wiking | so i guess he would be more interesed in the c# interface :P | 21:45 |
lisitsyn | wiking: you still thinking of quant stuff, are you? ;) | 21:46 |
@wiking | http://www.risk.net/journal-of-risk-model-validation/technical-paper/2161296/model-validation-theory-practice-perspectives | 21:46 |
@wiking | one of the authors ;P | 21:46 |
@wiking | lisitsyn: yeah but fuck man | 21:47 |
@wiking | we need like a super new language | 21:47 |
@wiking | to do all those things we want | 21:47 |
@wiking | in 1 clikc | 21:47 |
@wiking | ;P | 21:47 |
@wiking | for sure the wolfram shit will solve it for us | 21:47 |
@wiking | :DDD | 21:47 |
@wiking | </irony> | 21:47 |
lisitsyn | wiking: I don't have any things I want :D | 21:47 |
lisitsyn | ahhah yeah wolframed | 21:47 |
@wiking | lisitsyn: what do u mean? | 21:47 |
lisitsyn | wiking: I have absolutely no idea what is needed | 21:47 |
@wiking | life | 21:48 |
@wiking | and ML | 21:48 |
@wiking | :D | 21:48 |
@wiking | but the stuff we were talking about | 21:48 |
@wiking | would be great to have | 21:48 |
@wiking | like yesterday | 21:48 |
@wiking | not in another 1 year | 21:48 |
@wiking | although we must give some credit to ourselves | 21:48 |
lisitsyn | wiking: no idea! :D | 21:48 |
@wiking | check this | 21:49 |
@wiking | https://github.com/shogun-toolbox/shogun/wiki/Future-of-Shogun-Brainstorming | 21:49 |
lisitsyn | wiking: we should have been kaggling or whatever | 21:49 |
lisitsyn | to have some real tasks | 21:49 |
@wiking | lisitsyn: well there's still some shiatz we could do with kaggle | 21:49 |
lisitsyn | I am currently having troubles with time but I still want to get to that some day | 21:50 |
lisitsyn | I can't be java programmer for ever :D | 21:50 |
@wiking | lisitsyn: http://www.kaggle.com/c/dogs-vs-cats | 21:50 |
@wiking | ;P | 21:50 |
@wiking | heheh time is a biatch | 21:51 |
@wiking | here | 21:51 |
@wiking | let's make 9k usd | 21:51 |
@wiking | http://www.kaggle.com/c/yandex-personalized-web-search-challenge | 21:51 |
@wiking | ;d | 21:51 |
@wiking | we have ziltch to do with ALS | 21:51 |
lisitsyn | yandex | 21:51 |
lisitsyn | hah | 21:51 |
lisitsyn | they were interested of hiring me | 21:52 |
@wiking | hehehe | 21:53 |
@wiking | great :) | 21:53 |
@wiking | btw we could apply to be an apache incubator proj if we r interested | 21:53 |
lisitsyn | don't know about it | 21:55 |
@wiking | well there are ups and downs for being such project | 21:58 |
-!- thoralf_ [~thoralf@91-66-33-4-dynip.superkabel.de] has joined #shogun | 22:02 | |
thoralf_ | Heyhey. | 22:02 |
@wiking | thoralf: hola amigo | 22:02 |
thoralf_ | wiking: I read your comment, but I don't know whats best... | 22:02 |
@wiking | thoralf_: well is it leaking now? | 22:02 |
@wiking | or 'just' consuming too much memory? :P | 22:03 |
@wiking | i mean i understand that having 1 fucking float | 22:03 |
@wiking | is just crazy to have so much overhead | 22:03 |
@wiking | hence we should do something about this | 22:03 |
thoralf_ | wiking: The leak is caused by something else, so yes, it's leaking now. But it's not related to this bloat. ;) | 22:03 |
@wiking | yeah | 22:03 |
@wiking | we are becoming a bloat machine :) | 22:04 |
@wiking | it's almost like matlab | 22:04 |
thoralf_ | My problem is that I cannot evaluate my data set. | 22:04 |
@wiking | 1 float = 1MB :P | 22:04 |
thoralf_ | lol | 22:04 |
@wiking | so yeah we should kill that | 22:04 |
@wiking | or something | 22:04 |
@wiking | cannot evaluate because? | 22:05 |
thoralf_ | 1 float = 5*1024 Bytes + something small to hold the float. ;) | 22:05 |
thoralf_ | No enough memory. | 22:05 |
thoralf_ | 2M entries take 20GB of RAM. | 22:05 |
@wiking | zep | 22:06 |
@wiking | yep | 22:07 |
@wiking | understand the pain | 22:07 |
thoralf_ | I would try to solve it, but it's to close to shoguns internals... | 22:08 |
-!- iglesiasg [~iglesiasg@s83-179-44-135.cust.tele2.se] has joined #shogun | 22:10 | |
-!- mode/#shogun [+o iglesiasg] by ChanServ | 22:11 | |
thoralf_ | Hey iglesiasg | 22:11 |
@iglesiasg | thoralf_, hi! | 22:11 |
@iglesiasg | I came around because of your mails :) | 22:11 |
@iglesiasg | so something is pretty bad with structured labels and dynamic object array, isn't? | 22:12 |
thoralf_ | Yes. | 22:13 |
thoralf_ | Different things. | 22:13 |
thoralf_ | But you see the tickets. ;) | 22:13 |
thoralf_ | Labels are bad as well. | 22:13 |
thoralf_ | StructuredLabels inherit from CSGObject, but this need 5k/instance. | 22:14 |
thoralf_ | So 2M RealNumber labels are taking 11GB. | 22:15 |
@iglesiasg | Shit | 22:15 |
@iglesiasg | I never thought about memory overload due to CStructuredData being a CSGObject | 22:16 |
@iglesiasg | thoralf_, where do the 5k/instance come from? Is it because SGObject has many attributes? | 22:16 |
thoralf_ | new Parameter(...) | 22:16 |
thoralf_ | :) | 22:17 |
thoralf_ | Parameter internally uses DynArray. | 22:17 |
thoralf_ | Which pre-allocates 1024 Bytes. | 22:17 |
thoralf_ | 128 entries, 8 bytes each. | 22:17 |
@iglesiasg | are all these 128 entires used? | 22:17 |
thoralf_ | I could make it 16 entries, but that's all. ;) | 22:17 |
thoralf_ | No, only pre-allocation. I didn't check, but I'd say the array will hold about 5 entries. | 22:18 |
thoralf_ | But reducing the pre-allocation is a poor fix. ;) | 22:18 |
@iglesiasg | Do you think so? | 22:18 |
@iglesiasg | Why? | 22:18 |
@iglesiasg | not in general for DynArray of course | 22:19 |
@iglesiasg | but maybe is something we have to fix in this use case | 22:19 |
@iglesiasg | shrink the DynArray to the memory used | 22:19 |
thoralf_ | But DynArray is used in many places. | 22:20 |
lisitsyn | oh we have one something like one virtual machine for a float | 22:22 |
-!- sonne|osx [~sonne@f053043202.adsl.alicedsl.de] has joined #shogun | 22:22 | |
lisitsyn | we are like hypervisor haha | 22:22 |
thoralf_ | But I admit that your fix is pragmatic as hell. :) | 22:22 |
thoralf_ | iglesiasg: | 22:22 |
thoralf_ | lisitsyn: lol | 22:22 |
@iglesiasg | thoralf, http://en.cppreference.com/w/cpp/container/vector/shrink_to_fit | 22:22 |
thoralf_ | lisitsyn: Pooled floats with auto-failover. | 22:22 |
@iglesiasg | I mean something like this | 22:22 |
lisitsyn | thoralf_: yeah why not, one instance of QNX to handle floats | 22:23 |
@iglesiasg | thoralf, a method that allows to shrink, no that all DynArrays are automatically shrinked | 22:23 |
lisitsyn | imagine how stupid some parts of C++ are | 22:23 |
thoralf_ | iglesiasg: Yeah, but we first need to decide what exactly is the bug. ;) | 22:24 |
lisitsyn | shrink to fit just appeared in C++11 | 22:24 |
-!- FSCV [~FSCV@201.161.7.110] has joined #shogun | 22:24 | |
lisitsyn | before you had to copy it | 22:24 |
lisitsyn | :D | 22:24 |
@iglesiasg | lisitsyn, "just" | 22:24 |
thoralf_ | iglesiasg: Parameter stuff? StructLabels? CSGObject? | 22:24 |
@iglesiasg | we are already in 2013 :D | 22:24 |
@iglesiasg | finishing actually | 22:24 |
lisitsyn | iglesiasg: 2011 is way too late for such stupid things :) | 22:24 |
@iglesiasg | lisitsyn, hehe I agree | 22:25 |
sonne|osx | iglesiasg: why does RealNumber have to be an SGObject? | 22:25 |
@iglesiasg | sonne|osx, CStructuredLabels are basically a dynamic object array of CStructuredData | 22:26 |
@iglesiasg | and CStructuredData is CSGobject | 22:26 |
@iglesiasg | one could not make CStructuredData inherit from CSGObject, but then we lose advantages like using SG_REF/UNREF | 22:27 |
@iglesiasg | thoralf_, I am actually not aware how the Parameter stuff works, do you know about it? | 22:29 |
thoralf_ | iglesiasg: No, nothing. | 22:29 |
@iglesiasg | ok | 22:30 |
thoralf_ | I just debugged into it. | 22:30 |
thoralf_ | sonne|osx: What about a class that only cares about SGREF/UNREF methods to inherit from? | 22:31 |
@iglesiasg | thoralf_, I am checking CSGObject atm, I see there several Parameter* | 22:31 |
thoralf_ | sonne|osx: Would instantly solve the complete issue (exept that we're putting floats into objects, but it's the way SO works ;)) | 22:32 |
@iglesiasg | thoralf_, yeaah, putting float into objects is overkill indeed. But there is actually no real reason to use SO with the CRealNumber apart from debugging purposes, right? | 22:33 |
@iglesiasg | if your labels can be put into a real number, then you don | 22:33 |
@iglesiasg | you don't have structured output, why to use SO then :P | 22:33 |
thoralf_ | No, RealNumber was just for the minimal example. | 22:34 |
thoralf_ | I'm using something else. | 22:34 |
@iglesiasg | I understand | 22:34 |
@iglesiasg | thoralf_, soo, let's see if I got the issue correctly, the problem is that Parameter has a DynArray inside, and every CSGObject has some Paremeter attributes | 22:35 |
thoralf_ | Yes. | 22:36 |
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun | 22:36 | |
shogun-notifier- | shogun: Soeren Sonnenburg :develop * 0e503de / src/shogun/base/Parameter.h: https://github.com/shogun-toolbox/shogun/commit/0e503dee1eaef2038b6bcd86b5271c4a612605b5 | 22:36 |
shogun-notifier- | shogun: slightly decrease memory requirements of (unused) parameters | 22:36 |
@iglesiasg | and due to memory allocation of the DynArray, that takes much memory | 22:36 |
thoralf_ | sonne|osx: Yeah. ;) | 22:36 |
@iglesiasg | hehehe we just got the fix | 22:37 |
thoralf_ | iglesiasg: S?ren was tired of argueing ;) | 22:37 |
@iglesiasg | so what are these m_params in Parameter suppose to hold | 22:38 |
thoralf_ | iglesiasg: Okay, now the next problem: StructuredLabels->set_label(...) | 22:38 |
@iglesiasg | I think it is related to the model selection stuff | 22:38 |
@iglesiasg | all right, next then! | 22:38 |
shogun-buildbot_ | build #2476 of deb1 - libshogun is complete: Failure [failed compile test] Build details are at http://buildbot.shogun-toolbox.org/builders/deb1%20-%20libshogun/builds/2476 blamelist: Soeren Sonnenburg <sonne@debian.org> | 22:38 |
thoralf_ | iglesiasg: https://github.com/shogun-toolbox/shogun/issues/1759 | 22:38 |
thoralf_ | set_label does not increase num_labels. This has different side effects. | 22:39 |
thoralf_ | first: since it thinks, the array is empty, it doesn't free it. | 22:39 |
thoralf_ | second: I cannot check how many entries are in it (found it accidently with paranoid assertions) | 22:40 |
@iglesiasg | thoralf_, well, the thing is that in this case add_label should be used | 22:40 |
@iglesiasg | thoralf_, but I understand that the API should support set_label well | 22:40 |
@iglesiasg | let me try to remember why I decided to separate add_label and set_label | 22:40 |
thoralf_ | set_label maybe should be renamed "replace_label" and assert that the entry is already set. ;) | 22:41 |
@iglesiasg | it makes lot of sense | 22:42 |
sonne|osx | thoralf_: that is not really a fix - it is just not a good thing to use the framework like this - IMHO it should rather be high-level solved | 22:43 |
thoralf_ | Why I need set_label(): When doing computations in parallel, the order of add_label() is not determined. | 22:43 |
sonne|osx | as in you have a vector of real numbers | 22:43 |
sonne|osx | not just a single number | 22:43 |
thoralf_ | sonne|osx: My data is some self-cooked Multilabel stuff. | 22:43 |
sonne|osx | I mean it is clear that SGObject has a huge overhead | 22:43 |
thoralf_ | RealNumber was just a show-case. | 22:44 |
sonne|osx | I think realnumber should only be used when you have a handful of dims | 22:44 |
sonne|osx | for all the rest you should introduce other high-level objects | 22:44 |
thoralf_ | I have a MultiLabel-Output per Input. Multilabel internally uses vectors of ints, no objects. So my problem is just having outputs for 2M inputs. | 22:46 |
sonne|osx | anyway memory footprint should be down quite a bit | 22:47 |
@iglesiasg | thoralf_, so I agree with renaming set_label. However, thinking about the parallel computations, DynamicObjectArray does not seem to be thread-safe at all. Maybe I am wrong? | 22:47 |
thoralf_ | sonne|osx: You just removed 4k/instance. Not bad. :) | 22:48 |
thoralf_ | iglesiasg: If the array-size is known in advance, no resizing takes place. So threads are no big deal. | 22:48 |
thoralf_ | iglesiasg: Problem occurs when resizing. | 22:48 |
@iglesiasg | true true | 22:48 |
@iglesiasg | out of curiosity in any case, does it become relevant to parallelize label insertion?? | 22:49 |
sonne|osx | iglesiasg: of course not | 22:49 |
thoralf_ | Creating *one* multilabel is expensive | 22:49 |
sonne|osx | nothing is thread safe if not otherwise noted | 22:49 |
thoralf_ | When creating 8 at a time, this helps a lot. | 22:49 |
thoralf_ | 1 Multilabel consists of >>100 dimensions. | 22:50 |
sonne|osx | iglesiasg: it is like any java collection - not thread safe | 22:50 |
@iglesiasg | I see (both of your points guys :) | 22:50 |
shogun-notifier- | shogun: Soeren Sonnenburg :develop * c9e6013 / src/shogun/base/ParameterMap.h: https://github.com/shogun-toolbox/shogun/commit/c9e60139ba35e55a3734d0a67c868ae9addbf69d | 22:51 |
shogun-notifier- | shogun: reduce overhead in parameter map | 22:51 |
shogun-buildbot_ | build #2477 of deb1 - libshogun is complete: Failure [failed compile test] Build details are at http://buildbot.shogun-toolbox.org/builders/deb1%20-%20libshogun/builds/2477 blamelist: Soeren Sonnenburg <sonne@debian.org> | 22:53 |
@iglesiasg | thoralf_, I am thinking about this | 22:55 |
@iglesiasg | thoralf_, so how does DynamicObjectArray handles if you try to set, say, element 5 but none of the previous elements 0-4 are already set? | 22:56 |
thoralf_ | iglesiasg: https://github.com/shogun-toolbox/shogun/issues/1758 ;) | 22:56 |
thoralf_ | I'm about to create an array and assign it to dynamicobjectarry just after prediction. | 22:57 |
thoralf_ | A minefield. | 22:57 |
@iglesiasg | well that is not exactly what I said, but it is indeed another issue :D | 22:58 |
thoralf_ | set_element() obviously assumes that the element already exists, but doesn't check. | 22:58 |
thoralf_ | Didn't know all this up front. Running into one mine after another... as usual. | 22:59 |
sonne|osx | thoralf_: I think they just need to be null'd and all good | 22:59 |
thoralf_ | iglesiasg: But, answering your question: It's possible to set it - the array will be extended to the needed size. | 22:59 |
thoralf_ | sonne|osx: Yeah. | 23:00 |
-!- travis-ci [~travis-ci@ec2-54-205-106-73.compute-1.amazonaws.com] has joined #shogun | 23:00 | |
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/14276293 | 23:00 |
-!- travis-ci [~travis-ci@ec2-54-205-106-73.compute-1.amazonaws.com] has left #shogun [] | 23:00 | |
thoralf_ | sonne|osx: But it's not that easy due to the resizing. | 23:00 |
thoralf_ | sonne|osx: Many error-sources. | 23:01 |
@iglesiasg | thoralf, extended using nulls I guess | 23:01 |
sonne|osx | thoralf_: actually the get element there is scary | 23:01 |
sonne|osx | no resizing will happen there | 23:02 |
sonne|osx | so it can be an out of bounds access indeed | 23:02 |
thoralf_ | Nono, two different points. ;) | 23:02 |
sonne|osx | if you in your example do set_element(NULL, 500); it would be a real issue | 23:02 |
thoralf_ | first: setting elements to null prevents the UNREF(undefined value) | 23:02 |
@iglesiasg | thoralf, I think that for your use case the easiest is going to be if you create your own thread-safe queue :D | 23:03 |
thoralf_ | iglesiasg: Well, having an array and using openmp to iterate; every iteration stores one index. No problem with threads. ;) | 23:04 |
thoralf_ | second: no checking is done at all | 23:05 |
@iglesiasg | thoralf, easy peasy then --- use than openmp array with several threads for the object creation, and then just one thread that takes elements from this array and puts them into StructuredLabels using add_label | 23:07 |
@iglesiasg | thoralf_, what do you think_ | 23:07 |
@iglesiasg | ? | 23:07 |
thoralf_ | iglesiasg: I know - this thing is already solved. | 23:07 |
thoralf_ | iglesiasg: Just the set_label() just nagged me. | 23:08 |
@iglesiasg | all right then | 23:08 |
@iglesiasg | yeah sure, we should fix this | 23:08 |
@iglesiasg | but first the DynamicObjectArray issue probably | 23:08 |
-!- travis-ci [~travis-ci@ec2-54-205-106-73.compute-1.amazonaws.com] has joined #shogun | 23:10 | |
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/14277215 | 23:10 |
-!- travis-ci [~travis-ci@ec2-54-205-106-73.compute-1.amazonaws.com] has left #shogun [] | 23:10 | |
-!- hushell [~hushell@c-50-188-141-210.hsd1.or.comcast.net] has joined #shogun | 23:18 | |
shogun-notifier- | shogun: Soeren Sonnenburg :develop * f037955 / src/shogun/base/ (4 files): https://github.com/shogun-toolbox/shogun/commit/f0379552057d98cbee46e56ac3ebb4a269449e3c | 23:21 |
shogun-notifier- | shogun: dynamically set reduced granularity | 23:21 |
shogun-buildbot_ | build #2478 of deb1 - libshogun is complete: Success [build successful] Build details are at http://buildbot.shogun-toolbox.org/builders/deb1%20-%20libshogun/builds/2478 | 23:24 |
thoralf_ | iglesiasg: So am I right that we won't fix set_label() -- would it make sense to remove it? | 23:25 |
shogun-buildbot_ | build #1960 of bsd1 - libshogun is complete: Failure [failed compile test] Build details are at http://buildbot.shogun-toolbox.org/builders/bsd1%20-%20libshogun/builds/1960 blamelist: Soeren Sonnenburg <sonne@debian.org> | 23:27 |
thoralf_ | iglesiasg: It can only be used properly if we either initialize the array with NULL or forcing the caller to take care of what has been added so far... | 23:28 |
@iglesiasg | thoralf_, yes, I think it is best to remove it | 23:28 |
@iglesiasg | maybe set_element filling in with nulls makes sense for DynamicObjectArray, but I don't see how it would for StructuredLabels | 23:29 |
@iglesiasg | thoralf_, let me try to remove it and see if there are many dependencies | 23:29 |
thoralf_ | One second. | 23:29 |
@iglesiasg | ok | 23:30 |
thoralf_ | If we only have add_label() - does it make sense to initialize the StructLabels with a target size? | 23:30 |
thoralf_ | No checking is done; the array grows automatically... | 23:30 |
-!- FSCV [~FSCV@201.161.7.110] has quit [Quit: Leaving] | 23:31 | |
thoralf_ | No more difference between storage size and number of elements. | 23:31 |
@iglesiasg | well, the num_labels is used in the DynamicObjectArray constructor | 23:32 |
@wiking | nyihaaa | 23:32 |
@wiking | fuckshitatz | 23:32 |
@iglesiasg | I guess it reduces the number of resizes | 23:32 |
@iglesiasg | wiking, everything all right there? :D | 23:32 |
@wiking | nada | 23:33 |
@wiking | any solutions? :) | 23:33 |
@wiking | iglesiasg: been workng on 5 different things today | 23:33 |
@wiking | fuuuck yeeaaah!!! | 23:35 |
@iglesiasg | superman | 23:35 |
@wiking | 45G indexing/destination/indexes/default/freebase/data/index/ | 23:35 |
@wiking | so i have 45 gigs which is just fucking inverted index for solr | 23:36 |
@wiking | niiiize | 23:36 |
thoralf_ | iglesiasg: Right, well. Mind to add a line of documentation for that? | 23:36 |
@wiking | anybody has a spare 45 gigs | 23:36 |
@wiking | ? :) | 23:36 |
thoralf_ | iglesiasg: The API doc for the constructor. num_labels -> reallocate_size | 23:36 |
@wiking | with link unlimited BW | 23:36 |
thoralf_ | preallocate | 23:37 |
thoralf_ | wiking: Ehr. How much traffic to you expect? | 23:37 |
sonne|osx | thoralf_: could you please submit this as a test https://github.com/shogun-toolbox/shogun/issues/1758 | 23:38 |
@wiking | thoralf_: well i guess 10-20 downloads/day | 23:38 |
shogun-notifier- | shogun: Soeren Sonnenburg :develop * 6bfb8fc / src/shogun/lib/DynamicObjectArray.h: https://github.com/shogun-toolbox/shogun/commit/6bfb8fc42ba384b8435917629e76d5c780d2245f | 23:38 |
shogun-notifier- | shogun: potential fix for #1758 | 23:38 |
@iglesiasg | thoralf_, the StructuredLabels doc already mention it! | 23:39 |
@iglesiasg | thoralf_, is it the DynamicObjectArray one which doesn't? | 23:39 |
@iglesiasg | @param dim1 dimension1 is not very deep indeed... | 23:39 |
thoralf_ | iglesiasg: Oh! | 23:40 |
thoralf_ | iglesiasg: I read this, but I understood it differently. | 23:40 |
thoralf_ | iglesiasg: I though it's the storage size - wasn't aware that it might grow. | 23:41 |
thoralf_ | wiking: Too much, sorry. ;) | 23:41 |
@wiking | thoralf_: heheh thought so | 23:42 |
thoralf_ | wiking: Having unlimited traffic at work, but 500G/day... hmm. | 23:42 |
@wiking | thoralf_: well i guess that would the harder days | 23:42 |
@wiking | but i cannot assure | 23:42 |
@wiking | that it's much less | 23:42 |
thoralf_ | What's in this index? | 23:42 |
@wiking | as it's the index half of freebase.com | 23:42 |
@wiking | cool stuff man | 23:42 |
thoralf_ | Oh, wow. | 23:43 |
@wiking | semantic web is my second favourite thing after shogun | 23:43 |
thoralf_ | Crazy shit. | 23:43 |
thoralf_ | How did I miss that? | 23:43 |
@wiking | thoralf_: heheh dunno | 23:45 |
@wiking | it's fucking cool | 23:45 |
@wiking | apache has some cool tools for semantic web | 23:45 |
@wiking | only shame is that it's java | 23:45 |
sonne|osx | thoralf_: please check if that fixes the issue preferably by making it a test! | 23:46 |
thoralf_ | sonne|osx: The memory issue? It's hard to test... | 23:47 |
thoralf_ | A test could be to set ulimit to something low and then let the script create 100000 RealNumbers. ;) | 23:49 |
thoralf_ | ==3226== total heap usage: 44,000,328 allocs, 322 frees, 2,032,034,974 bytes allocated | 23:50 |
thoralf_ | for 4M RealNumber entries | 23:50 |
thoralf_ | That's nice. | 23:50 |
thoralf_ | Only 1016 bytes per float. | 23:51 |
@wiking | that's crazy lot | 23:51 |
@wiking | sizeof(double) = 8 bytes :) | 23:51 |
@wiking | it's just 127 times more :P | 23:52 |
@wiking | that's far from optimal i would say | 23:52 |
@wiking | thoralf_: do u use swig or directly c++? | 23:53 |
thoralf_ | C++ | 23:53 |
@wiking | thoralf_: u could just throw out the public CSGObject for StructuredData | 23:53 |
thoralf_ | It saved me 80% compared to before. :) | 23:54 |
@wiking | thoralf_: still... | 23:54 |
@wiking | mmm w8 | 23:54 |
thoralf_ | wiking: Yes, that's what everyone said... I'll try tomorrow. ;) | 23:54 |
@iglesiasg | wiking, mmm I just rebased I am getting something weird with cmake | 23:54 |
thoralf_ | Losing SG_*REF would be bad. | 23:54 |
@wiking | thoralf_: but r u DynamicObjectArray | 23:55 |
@wiking | i mean | 23:55 |
@iglesiasg | cannot find source file: OBJECT | 23:55 |
@wiking | iglesiasg: update your cmake | 23:55 |
@wiking | :P | 23:55 |
@wiking | thoralf_: so you'll have problem with DynamicObjectArray | 23:55 |
@wiking | as it's storing DynArray<CSGObject*> m_array; | 23:55 |
@iglesiasg | wiking, 2.8.7 here and minimum is 2.8.4 | 23:55 |
@iglesiasg | wiking, which one should I use? | 23:55 |
@wiking | so it won't be able to do store StructuredData if it's not inherited from SGObject | 23:55 |
@wiking | :< | 23:56 |
@wiking | iglesiasg: 2.8.8+ | 23:56 |
thoralf_ | wiking: Damn. | 23:56 |
@wiking | iglesiasg: we are breaking develop branch everywhere | 23:56 |
@wiking | in any possible way | 23:56 |
@wiking | ;) | 23:56 |
thoralf_ | wiking: Why? How does it depend on SGObject? | 23:56 |
@wiking | that's like sonne|osx and my work for the last couple of days | 23:56 |
thoralf_ | Because of ref/unref or why? | 23:56 |
@wiking | thoralf_: this is in src/shogun/lib/DynamicObjectArray.h | 23:56 |
@wiking | private: /** underlying array */ DynArray<CSGObject*> m_array; | 23:56 |
@wiking | so u see | 23:57 |
thoralf_ | Oh. | 23:57 |
thoralf_ | void*? ;) | 23:57 |
@wiking | ihehehehe | 23:57 |
@wiking | use a different DynArray and u r fine | 23:57 |
@wiking | i mean | 23:57 |
@wiking | dont use DynamicObjectArray | 23:57 |
@wiking | but use DynArray | 23:57 |
@wiking | and u r done | 23:57 |
@iglesiasg | wiking, arrgh the one in ubuntu repos is 2.8.7 | 23:57 |
@wiking | more or less | 23:57 |
@iglesiasg | you killed me for 0.0.1 | 23:57 |
thoralf_ | wiking: Nice. | 23:57 |
@wiking | iglesiasg: see the hack in .travis | 23:57 |
@iglesiasg | haha | 23:57 |
@wiking | thoralf_: then again we need to do something about this bloat machine | 23:58 |
@wiking | :))) | 23:58 |
thoralf_ | iglesiasg: wiking is right. No need to wrap dynarray by dynobjectarray. | 23:58 |
@wiking | iglesiasg: sudo apt-add-repository -y ppa:kubuntu-ppa/backports | 23:58 |
@wiking | iglesiasg: and u r good to go | 23:59 |
@wiking | after that just | 23:59 |
@wiking | sudo apt-get update | 23:59 |
@wiking | sudo apt-get upgrade | 23:59 |
@wiking | and it'll install u cmake 2.8.9 | 23:59 |
thoralf_ | wiking: I'll check tomorrow. | 23:59 |
@iglesiasg | doing doing | 23:59 |
thoralf_ | Good night! | 23:59 |
@iglesiasg | wiking, shall we change minimum cmake version then? | 23:59 |
@wiking | thoralf_: thnx for reporting this major bloat | 23:59 |
@wiking | iglesiasg: eventually yes :D | 23:59 |
@iglesiasg | thoralf_, Good night! Thanks for detecting all this mess :) | 23:59 |
--- Log closed Thu Nov 21 00:00:12 2013 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!