--- Log opened Sun Aug 16 00:00:38 2015 | ||
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has joined #shogun | 00:30 | |
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has quit [Ping timeout: 246 seconds] | 00:34 | |
-!- shaochuan [~shaochuan@2601:647:4600:fac5:ad6a:8155:1173:d382] has joined #shogun | 00:40 | |
-!- shaochuan [~shaochuan@2601:647:4600:fac5:ad6a:8155:1173:d382] has quit [] | 00:54 | |
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has joined #shogun | 00:56 | |
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has quit [Client Quit] | 00:58 | |
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has joined #shogun | 01:00 | |
-!- PirosB3 [~pirosb3@host23-116-dynamic.183-80-r.retail.telecomitalia.it] has quit [Quit: PirosB3] | 02:33 | |
shogun-buildbot | build #1032 of nightly_default is complete: Success [build successful] Build details are at http://buildbot.shogun-toolbox.org/builders/nightly_default/builds/1032 | 04:15 |
---|---|---|
-!- lupinix_ [~quassel@v22014041761818086.yourvserver.net] has joined #shogun | 09:06 | |
-!- lupinix [~quassel@fedora/lupinix] has quit [Ping timeout: 255 seconds] | 09:07 | |
-!- PirosB3 [~pirosb3@host225-72-dynamic.252-95-r.retail.telecomitalia.it] has joined #shogun | 11:55 | |
-!- besser82 [~besser82@fedora/besser82] has quit [Quit: Freedom. Friends. Features. First. [https://getfedora.org/]] | 11:57 | |
-!- besser82 [~besser82@fedora/besser82] has joined #shogun | 11:59 | |
-!- mode/#shogun [+o besser82] by ChanServ | 11:59 | |
-!- lupinix_ is now known as lupinix | 12:46 | |
-!- lupinix is now known as Guest50843 | 12:46 | |
-!- Guest50843 [~quassel@v22014041761818086.yourvserver.net] has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.] | 12:46 | |
-!- lupinix_ [~quassel@v22014041761818086.yourvserver.net] has joined #shogun | 12:47 | |
-!- lupinix_ [~quassel@v22014041761818086.yourvserver.net] has quit [Client Quit] | 12:47 | |
-!- lupinix_ [~quassel@v22014041761818086.yourvserver.net] has joined #shogun | 12:50 | |
-!- lupinix_ [~quassel@v22014041761818086.yourvserver.net] has quit [Client Quit] | 12:50 | |
-!- lupinix_ [~quassel@v22014041761818086.yourvserver.net] has joined #shogun | 13:32 | |
-!- lupinix_ is now known as lupinix | 13:40 | |
-!- lupinix [~quassel@v22014041761818086.yourvserver.net] has quit [Changing host] | 13:41 | |
-!- lupinix [~quassel@fedora/lupinix] has joined #shogun | 13:41 | |
-!- PirosB3 [~pirosb3@host225-72-dynamic.252-95-r.retail.telecomitalia.it] has quit [Quit: PirosB3] | 16:08 | |
@besser82 | lisitsyn, ping? | 19:51 |
lisitsyn | besser82: pong | 19:56 |
lisitsyn | whta's up? | 19:56 |
@besser82 | lisitsyn, just the discussion 'bout those properties-classes... | 20:05 |
@besser82 | lisitsyn, I'm afraid, that won't help too much... :( | 20:06 |
lisitsyn | besser82: yeap | 20:06 |
@besser82 | lisitsyn, we really need to go plugin-style... | 20:06 |
@besser82 | ... with polymorphism | 20:07 |
lisitsyn | yes that would be fastest to compile but I don't see any cool API with that | 20:07 |
@besser82 | lisitsyn, that's the problem... | 20:08 |
@besser82 | lisitsyn, we possibly need some real well-though factories... | 20:08 |
@besser82 | lisitsyn, and API will stay so-so... | 20:09 |
lisitsyn | it would be something ugly and string based | 20:09 |
@besser82 | atleast patially, yes :( | 20:09 |
@besser82 | but swig will be nice and small | 20:10 |
@besser82 | and api from linker's pov will stay rock-solid | 20:11 |
@besser82 | otherwise we might use enums for parameters? | 20:11 |
@besser82 | lisitsyn, ^ | 20:13 |
@besser82 | any other ideas? | 20:13 |
@besser82 | As far as I can see, Octave-mod will start blowing memory on Fedora's builders in very short time | 20:14 |
@besser82 | Takes ~8GBytes of RAM even with '-g1' and not using '-pipe' | 20:15 |
lisitsyn | besser82: enums won't work for plugins :) | 20:16 |
@besser82 | lisitsyn, depends ;) | 20:17 |
lisitsyn | unless parameters of plugins are known before the plugin | 20:17 |
lisitsyn | like its generic for any plugin | 20:17 |
lisitsyn | but that's not really the case | 20:17 |
@besser82 | my_svm = new CSVM(SVM_TYPE_ENUM,...) | 20:17 |
lisitsyn | but then you have headers for all plugins? | 20:18 |
@besser82 | nope... | 20:18 |
lisitsyn | I mean that's not plugin then | 20:18 |
@besser82 | but at least a generic class | 20:19 |
@besser82 | like CSVM | 20:19 |
lisitsyn | yes but if your class adds one more parameter | 20:19 |
lisitsyn | toomba_yumba | 20:19 |
lisitsyn | you can't access it :) | 20:19 |
@besser82 | which can be resolved as well ;) | 20:19 |
lisitsyn | how? | 20:20 |
@besser82 | like having a std::map as member of base class ;) | 20:20 |
lisitsyn | enum doesn't work still | 20:20 |
@besser82 | which holds pointers to whatever additional data / functions | 20:20 |
@besser82 | Why? | 20:20 |
lisitsyn | because you'd have to put all possible parameters into that enum | 20:21 |
lisitsyn | like before developing any plugin | 20:21 |
@besser82 | that's not what I mean... | 20:21 |
@besser82 | I'm thinking of an enum describing which type of svm will be used... | 20:21 |
lisitsyn | uh why? | 20:22 |
lisitsyn | string is ok here | 20:22 |
@besser82 | okie | 20:22 |
lisitsyn | strings are dynamic while it would put all types statically | 20:22 |
@besser82 | erm... yes, that's true | 20:23 |
@besser82 | :P | 20:23 |
lisitsyn | like inversed abstraction :) | 20:23 |
@besser82 | hehe | 20:23 |
@besser82 | but parameters might come from a std::map as well | 20:23 |
@besser82 | std::map<string, void**> | 20:24 |
lisitsyn | yes but rather map<string, any> | 20:24 |
@besser82 | does this work? | 20:25 |
lisitsyn | that works but ugly | 20:25 |
lisitsyn | :D | 20:25 |
lisitsyn | I mean you would do | 20:25 |
@besser82 | void** is more un-ugly :P | 20:25 |
lisitsyn | no void** is the ugliest ugly :) | 20:25 |
lisitsyn | you need to store type | 20:25 |
@besser82 | but takes a <any> pointer to <any> pointer :P | 20:26 |
lisitsyn | ugly is that you have to do | 20:26 |
lisitsyn | svm.get("C").as_float() | 20:26 |
lisitsyn | any stores type and supports safe casts | 20:27 |
@besser82 | Yay! so we kan use boost::any :P | 20:28 |
lisitsyn | yes or better our own any :D | 20:28 |
lisitsyn | cause boost::any is uber slow | 20:28 |
@besser82 | Is it? | 20:28 |
lisitsyn | besser82: it's type check is based on string comparison | 20:29 |
lisitsyn | of RTTI typenames | 20:29 |
lisitsyn | there is a better way | 20:29 |
@besser82 | That's fscking rock-solid... ;) | 20:29 |
lisitsyn | besser82: anyway that doesn't really matter, api is the most important | 20:30 |
lisitsyn | and with strings we force users to explicitly provide types | 20:30 |
@besser82 | ERm... Do we? | 20:31 |
lisitsyn | yes | 20:31 |
lisitsyn | ??? get(std::string); | 20:31 |
lisitsyn | what's the return type? :) | 20:31 |
@besser82 | Any! | 20:31 |
@besser82 | :P | 20:31 |
lisitsyn | yes it is possible | 20:31 |
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun | 20:31 | |
shogun-notifier- | shogun: Wu Lin :develop * e0b776b / src/shogun/optimization/ (2 files): https://github.com/shogun-toolbox/shogun/commit/e0b776b2d975610c138dd8d165386ba4b51c09c2 | 20:31 |
shogun-notifier- | shogun: add base class for wrapped minimizer | 20:31 |
shogun-notifier- | shogun: Wu Lin :develop * e4c9817 / src/shogun/optimization/lbfgs/ (2 files): https://github.com/shogun-toolbox/shogun/commit/e4c98176c527ab0ebd2f2a474c77c15f547b32bb | 20:31 |
shogun-notifier- | shogun: added lbfgs wrapped minimizer | 20:31 |
shogun-notifier- | shogun: Wu Lin :develop * c45b744 / tests/unit/optimization/lbfgs/ (2 files): https://github.com/shogun-toolbox/shogun/commit/c45b7446bbc5599e0cb7060c869b0d92f5af0629 | 20:31 |
shogun-notifier- | shogun: added unit tests | 20:32 |
shogun-notifier- | shogun: Wu Lin :develop * 3fea081 / src/shogun/optimization/ (2 files): https://github.com/shogun-toolbox/shogun/commit/3fea0817609b54039a7d456bff744aeff119c4b3 | 20:32 |
shogun-notifier- | shogun: clearn header files and comments | 20:32 |
shogun-notifier- | shogun: Wu Lin :develop * edc9c26 / src/shogun/optimization/ (2 files): https://github.com/shogun-toolbox/shogun/commit/edc9c26a3d866201c6551eac3328e261385db25b | 20:32 |
shogun-notifier- | shogun: remove the useless helper class | 20:32 |
shogun-notifier- | shogun: Wu Lin :develop * f4a0c26 / src/shogun/optimization/lbfgs/ (2 files): https://github.com/shogun-toolbox/shogun/commit/f4a0c2604aa85ab0e472601fe2a4a0c805285012 | 20:32 |
shogun-notifier- | shogun: update the lbfgs class | 20:32 |
@besser82 | Commit galore!!! :P :P :P | 20:32 |
lisitsyn | hah | 20:32 |
lisitsyn | but when someone gets SVM's C | 20:32 |
lisitsyn | he expects float | 20:32 |
lisitsyn | so he needs to code he needs float | 20:32 |
lisitsyn | like as_float | 20:33 |
lisitsyn | or whatever | 20:33 |
@besser82 | nope... I just found sth... ;) | 20:33 |
@besser82 | http://codereview.stackexchange.com/questions/20058/c11-any-class | 20:33 |
@besser82 | might be useful ^_^ | 20:33 |
lisitsyn | yes in C++ it is easy | 20:33 |
lisitsyn | you just write float C = svm.get("C"); | 20:33 |
lisitsyn | all implicit casts happen there | 20:34 |
lisitsyn | but in python/java/blabla | 20:34 |
@besser82 | we wouldn't need to get to have that ugly API... | 20:35 |
@besser82 | We can provide a factory valid for all *SVM | 20:35 |
lisitsyn | yes it is not a problem at all | 20:35 |
shogun-buildbot | build #340 of trusty - libshogun - viennacl is complete: Failure [failed compile] Build details are at http://buildbot.shogun-toolbox.org/builders/trusty%20-%20libshogun%20-%20viennacl/builds/340 blamelist: Wu Lin <yorker.lin@gmail.com> | 20:35 |
@besser82 | so have all important shiatz in header of factory | 20:35 |
lisitsyn | problem is how to pass data | 20:36 |
lisitsyn | parameters and stuff | 20:36 |
shogun-buildbot | build #3464 of deb1 - libshogun is complete: Failure [failed compile] Build details are at http://buildbot.shogun-toolbox.org/builders/deb1%20-%20libshogun/builds/3464 blamelist: Wu Lin <yorker.lin@gmail.com> | 20:36 |
@besser82 | lisitsyn, as class-member? | 20:36 |
lisitsyn | btw opencv has cv::Mat | 20:36 |
lisitsyn | which is not typed | 20:36 |
lisitsyn | you need to know its type | 20:36 |
lisitsyn | people live with that :D | 20:36 |
@besser82 | cv::Mat == void :P | 20:36 |
lisitsyn | yes kind of | 20:36 |
shogun-buildbot | build #341 of trusty - libshogun - viennacl is complete: Success [build successful] Build details are at http://buildbot.shogun-toolbox.org/builders/trusty%20-%20libshogun%20-%20viennacl/builds/341 | 20:37 |
@besser82 | void with return-value :P | 20:37 |
lisitsyn | big decorator on top of void* | 20:37 |
@besser82 | lol | 20:37 |
shogun-buildbot | build #3465 of deb1 - libshogun is complete: Success [build successful] Build details are at http://buildbot.shogun-toolbox.org/builders/deb1%20-%20libshogun/builds/3465 | 20:38 |
lisitsyn | besser82: in dynamic language like python we can do some magic | 20:39 |
lisitsyn | so that svm.get("C") is transformed into float | 20:39 |
lisitsyn | but not in java | 20:39 |
-!- PirosB3 [~pirosb3@host140-248-dynamic.23-79-r.retail.telecomitalia.it] has joined #shogun | 20:40 | |
lisitsyn | although in java you know the type you expect | 20:40 |
lisitsyn | so why care? | 20:40 |
lisitsyn | just a bit of additional verbosity | 20:40 |
-!- travis-ci [~travis-ci@ec2-54-144-119-235.compute-1.amazonaws.com] has joined #shogun | 20:42 | |
travis-ci | it's Wu Lin'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/75842993 | 20:42 |
-!- travis-ci [~travis-ci@ec2-54-144-119-235.compute-1.amazonaws.com] has left #shogun [] | 20:42 | |
shogun-buildbot | build #40 of FC22 - libshogun is complete: Failure [failed test] Build details are at http://buildbot.shogun-toolbox.org/builders/FC22%20-%20libshogun/builds/40 blamelist: Wu Lin <yorker.lin@gmail.com> | 20:44 |
shogun-buildbot | build #1055 of FCRH - libshogun is complete: Failure [failed test] Build details are at http://buildbot.shogun-toolbox.org/builders/FCRH%20-%20libshogun/builds/1055 blamelist: Wu Lin <yorker.lin@gmail.com> | 20:44 |
@besser82 | lisitsyn, as I'm thinking / saying ;) | 20:45 |
@besser82 | and in Python it doesn't matter as well... | 20:46 |
@besser82 | There any var can be anything | 20:46 |
@besser82 | a = "Shitty string" | 20:47 |
@besser82 | b = 1 | 20:47 |
shogun-buildbot | build #1033 of precise - libshogun is complete: Failure [failed compile] Build details are at http://buildbot.shogun-toolbox.org/builders/precise%20-%20libshogun/builds/1033 blamelist: Wu Lin <yorker.lin@gmail.com> | 20:47 |
@besser82 | c = {b, a} | 20:47 |
@besser82 | d = a | 20:47 |
@besser82 | a = b | 20:48 |
@besser82 | b = d | 20:48 |
@besser82 | What has which type? :P | 20:48 |
@besser82 | lisitsyn, ^ | 20:49 |
shogun-buildbot | build #2678 of deb3 - modular_interfaces is complete: Failure [failed csharp modular] Build details are at http://buildbot.shogun-toolbox.org/builders/deb3%20-%20modular_interfaces/builds/2678 blamelist: Wu Lin <yorker.lin@gmail.com> | 20:49 |
lisitsyn | besser82: well it doesn't matter until it meets the point it is used as float | 20:50 |
lisitsyn | like ok so I need to double the C | 20:50 |
lisitsyn | C *= 2 | 20:50 |
lisitsyn | kaput | 20:50 |
@besser82 | lol, yes... | 20:50 |
@besser82 | but that's like stupid... noone would do so... | 20:51 |
@besser82 | ... because everyone expects 'C' to be float / double | 20:51 |
lisitsyn | yes | 20:52 |
lisitsyn | but with strings we need to force them to write that | 20:52 |
lisitsyn | I don't think it is a big deal | 20:52 |
lisitsyn | but not beautiful | 20:52 |
@besser82 | me neither... | 20:52 |
@besser82 | but why strings... | 20:52 |
@besser82 | We can have a CSVM_Class having 'float C {0.0};'-member | 20:53 |
@besser82 | which is pretty generic through all types of SVM | 20:53 |
@besser82 | so no need for strings on that | 20:53 |
lisitsyn | there is always a parameter that is not common for all svms | 20:54 |
@besser82 | which can be in the class as well | 20:55 |
@besser82 | but kept uneval'ed when not needed | 20:55 |
lisitsyn | ok then I have new | 20:55 |
lisitsyn | megablaster svm | 20:55 |
lisitsyn | which has the megascore parameter | 20:56 |
lisitsyn | it doesn't work until you add it to the base class ;) | 20:56 |
@besser82 | okie... Then let's add it... void* megascore | 20:57 |
shogun-buildbot | build #663 of deb4 - python3 is complete: Failure [failed test python modular] Build details are at http://buildbot.shogun-toolbox.org/builders/deb4%20-%20python3/builds/663 blamelist: Wu Lin <yorker.lin@gmail.com> | 20:58 |
lisitsyn | will you change api all the time plugin is released? :) | 20:58 |
@besser82 | we now change API everytime some bug is fixed... :P | 20:58 |
lisitsyn | I don't say it is very bad but it is quite opposite to the idea of plugins | 20:58 |
@besser82 | then we need std::map<std::string,<any>> | 20:59 |
@besser82 | but it wouldn't be too much to enhance API with new plugins | 21:00 |
lisitsyn | any = need to cast parameters into expected type | 21:00 |
@besser82 | so more shiatz... :( | 21:00 |
lisitsyn | no good solution :) | 21:01 |
@besser82 | so enhancing api from time to time would be the better alternative | 21:02 |
lisitsyn | we need to pick less bad | 21:02 |
@besser82 | so changing API ;) | 21:02 |
lisitsyn | like adding new parameters = changing api? | 21:03 |
@besser82 | yes | 21:04 |
lisitsyn | yeah why not | 21:04 |
@besser82 | so let's-a-do-it =) | 21:04 |
@besser82 | Will jot down my 'tack-weld' tomorrow | 21:04 |
lisitsyn | heh | 21:04 |
@besser82 | so we have lib / templates for doing da plugin-stuff | 21:05 |
lisitsyn | not really lib but well I think we have some understanding how to do that | 21:06 |
@besser82 | I'm actually writing on it since a few weeks | 21:07 |
@besser82 | That should give us all we need to do stuff pretty quick in shogun | 21:08 |
@besser82 | like 'tack-weld' provides plugin-registry and all needed stuff | 21:08 |
@besser82 | and is abled to handle several different types / classes of plugins | 21:09 |
@besser82 | like plugins doing svm, other doing $other stuff | 21:09 |
@besser82 | we should split off linalg and all stuff as well | 21:10 |
@besser82 | interfacing maths through plugin too | 21:10 |
lisitsyn | maybe we don't really need to interface math | 21:10 |
@besser82 | so we can easily switch between interfaces | 21:10 |
lisitsyn | ahh | 21:10 |
lisitsyn | like cpu gpu as plugins? | 21:11 |
lisitsyn | maybe an overkill | 21:11 |
lisitsyn | we have just two of them | 21:11 |
@besser82 | nope should be easy to do ;) | 21:11 |
lisitsyn | cant see it being that dynamic | 21:11 |
@besser82 | we have linalg, atlas / blas and Vienna | 21:11 |
@besser82 | and now we build with conditionals, depending on what's there during compile | 21:12 |
@besser82 | so doing this abstractly shouldn't be a big deal | 21:12 |
@besser82 | It think I have plan to do it dynamic... =) | 21:13 |
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has quit [Read error: Connection reset by peer] | 21:13 | |
-!- shaochuan [~shaochuan@2601:647:4600:fac5:9ce2:455c:900c:66cd] has joined #shogun | 21:14 | |
lisitsyn | you'd need to talk to lambday :) | 21:15 |
lisitsyn | ok time to do some stuff, see you later | 21:15 |
@besser82 | lisitsyn, a'ight! 'til then! C ya | 21:20 |
shogun-notifier- | shogun: Wu Lin :develop * 033e60a / tests/unit/neuralnets/NeuralNetwork_unittest.cc: https://github.com/shogun-toolbox/shogun/commit/033e60a892fbeaab412b87fb03fb6276e001bbf8 | 23:07 |
shogun-notifier- | shogun: bug fixed | 23:07 |
shogun-notifier- | shogun: Bj?rn Esser :develop * 228eb3f / tests/unit/neuralnets/NeuralNetwork_unittest.cc: https://github.com/shogun-toolbox/shogun/commit/228eb3f8274a045b5a0aae58031233b43dd1d76c | 23:07 |
shogun-notifier- | shogun: Merge pull request #2886 from yorkerlin/develop | 23:07 |
shogun-notifier- | shogun: | 23:07 |
shogun-notifier- | shogun: bug fixed | 23:07 |
shogun-buildbot | build #1056 of FCRH - libshogun is complete: Failure [failed test] Build details are at http://buildbot.shogun-toolbox.org/builders/FCRH%20-%20libshogun/builds/1056 blamelist: Wu Lin <yorker.lin@gmail.com> | 23:18 |
shogun-buildbot | build #41 of FC22 - libshogun is complete: Failure [failed test] Build details are at http://buildbot.shogun-toolbox.org/builders/FC22%20-%20libshogun/builds/41 blamelist: Wu Lin <yorker.lin@gmail.com> | 23:18 |
shogun-buildbot | build #2679 of deb3 - modular_interfaces is complete: Failure [failed csharp modular] Build details are at http://buildbot.shogun-toolbox.org/builders/deb3%20-%20modular_interfaces/builds/2679 blamelist: Wu Lin <yorker.lin@gmail.com> | 23:21 |
shogun-buildbot | build #1057 of FCRH - libshogun is complete: Failure [failed test] Build details are at http://buildbot.shogun-toolbox.org/builders/FCRH%20-%20libshogun/builds/1057 blamelist: Bj?rn Esser <bjoern.esser@gmail.com> | 23:23 |
shogun-buildbot | build #42 of FC22 - libshogun is complete: Failure [failed test] Build details are at http://buildbot.shogun-toolbox.org/builders/FC22%20-%20libshogun/builds/42 blamelist: Bj?rn Esser <bjoern.esser@gmail.com> | 23:23 |
shogun-buildbot | build #1034 of precise - libshogun is complete: Success [build successful] Build details are at http://buildbot.shogun-toolbox.org/builders/precise%20-%20libshogun/builds/1034 | 23:28 |
shogun-buildbot | build #664 of deb4 - python3 is complete: Failure [failed test python modular] Build details are at http://buildbot.shogun-toolbox.org/builders/deb4%20-%20python3/builds/664 blamelist: Wu Lin <yorker.lin@gmail.com>, Bj?rn Esser <bjoern.esser@gmail.com> | 23:28 |
shogun-buildbot | build #2680 of deb3 - modular_interfaces is complete: Failure [failed csharp modular] Build details are at http://buildbot.shogun-toolbox.org/builders/deb3%20-%20modular_interfaces/builds/2680 blamelist: Bj?rn Esser <bjoern.esser@gmail.com> | 23:36 |
-!- PirosB3 [~pirosb3@host140-248-dynamic.23-79-r.retail.telecomitalia.it] has quit [Quit: PirosB3] | 23:54 | |
--- Log closed Mon Aug 17 00:00:39 2015 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!