--- Log opened Mon Mar 20 00:00:12 2017 | ||
@sukey | Pull Request #3729 "Feature/minkowski example" opened by elenanst - https://github.com/shogun-toolbox/shogun/pull/3729 | 00:03 |
---|---|---|
-!- atefhares [~atefhares@156.204.216.226] has joined #shogun | 00:38 | |
atefhares | Hi | 00:39 |
-!- atefhares [~atefhares@156.204.216.226] has quit [Quit: Leaving] | 01:15 | |
@sukey | Pull Request #3730 "Register parameters for CMKL and override clone()" opened by lkuchenb - https://github.com/shogun-toolbox/shogun/pull/3730 | 01:42 |
-!- neha_catwoman [ca8e6ccb@gateway/web/freenode/ip.202.142.108.203] has joined #shogun | 02:56 | |
-!- mikeling [uid89706@gateway/web/irccloud.com/x-xtgsqfwmagkbneaa] has joined #shogun | 02:56 | |
-!- nagdev [dce39546@gateway/web/freenode/ip.220.227.149.70] has joined #shogun | 03:33 | |
-!- neha_catwoman [ca8e6ccb@gateway/web/freenode/ip.202.142.108.203] has quit [Ping timeout: 260 seconds] | 04:19 | |
mikeling | wiking: ping | 07:57 |
@wiking | pong | 07:57 |
mikeling | wiking: hey, for https://github.com/shogun-toolbox/shogun/issues/3718, is that mean we just need to make shogun support spdlog(like just use https://github.com/gabime/spdlog/wiki/1.-QuickStart#debugtrace-macros) or | 07:59 |
mikeling | warp spdlog into the SG_DEBUG and SG_INFO? | 08:00 |
@wiking | yeah that's the idea | 08:03 |
@wiking | i'm just checking spdlog | 08:03 |
@wiking | i wonder if they support any sorts of config | 08:03 |
@wiking | like in case of log4j | 08:04 |
@wiking | or slf4j | 08:04 |
@wiking | but it seems not :( | 08:04 |
@wiking | would be cool to look around | 08:04 |
@wiking | what are the options | 08:04 |
mikeling | wiking: I will look more into it if you agree, maybe we could add this feature in this summer for Detox II :) | 08:10 |
@wiking | mmm this is a pretty simple | 08:10 |
@wiking | task | 08:10 |
mikeling | ok | 08:10 |
@sukey | Pull Request #3723 "Fix issue #3686" synchronized by iRmantou - https://github.com/shogun-toolbox/shogun/pull/3723 | 09:37 |
mikeling | wiking: how about the gist in https://github.com/shogun-toolbox/shogun/pull/3711#issuecomment-287543923 btw, is that what we need for gtest? | 09:44 |
@wiking | #include "../../utils/MockDataForSVM.h" | 09:44 |
@wiking | dont use relative patsh | 09:44 |
@wiking | #include "utils/MockDataForSVM.h" | 09:44 |
@wiking | isn't working? | 09:44 |
@wiking | or moreover | 09:44 |
@wiking | sorry that shouldn't work | 09:44 |
@wiking | but | 09:44 |
@wiking | #include <utils/MockDataForSVM.h> | 09:45 |
@wiking | should | 09:45 |
@wiking | i dont get | 09:45 |
@wiking | why do you wanna have SVMLightFixture a? | 09:46 |
@wiking | and why does it have to be a mock? | 09:46 |
@wiking | i mean first of all | 09:46 |
@wiking | you want a utils/DataGenerator.h | 09:46 |
-!- lambday|work [c40f1706@gateway/web/freenode/ip.196.15.23.6] has joined #shogun | 09:46 | |
-!- mode/#shogun [+o lambday|work] by ChanServ | 09:46 | |
@wiking | or something like that | 09:46 |
@wiking | that has several options | 09:46 |
@wiking | to be used to have various data for unit tests | 09:46 |
@wiking | and the idea there is | 09:47 |
@wiking | whether it is possible | 09:47 |
@wiking | to have there a fixture | 09:47 |
@wiking | that is available in all tests | 09:47 |
@wiking | so you dont have to call explicitly | 09:47 |
@wiking | the function DataGenerator.simple_binary_classification_data() | 09:47 |
mikeling | mmm..... | 09:48 |
@wiking | the mocking is always | 09:55 |
@wiking | standing for a functionality that you dont wanna or cannot do | 09:55 |
@wiking | during the test | 09:55 |
@wiking | lambday|work, y0 | 09:56 |
@wiking | mikeling, https://github.com/google/googletest/blob/master/googletest/docs/AdvancedGuide.md#global-set-up-and-tear-down | 09:58 |
* mikeling is looking | 09:59 | |
@wiking | coz i believe the fixtures are usually | 10:00 |
@wiking | only available in one context/file | 10:00 |
@wiking | so u wanna have these methods/fixtures available throughout the whole test | 10:00 |
mikeling | wiking: yeah, I use SVMLightFixture is because, for SVMLight module, we can use SVMLightfixture in every unit test, even we just have 'train' for now | 10:04 |
mikeling | so once set up, and we can use that fixture for every unit test for that module | 10:05 |
mikeling | right? | 10:05 |
mikeling | we could just rename the CMockDataForSVM to DataGenerator to avoid the confusion | 10:07 |
mikeling | I mean, you are right, we don't actually need mock | 10:07 |
@wiking | k | 10:08 |
@wiking | yea | 10:08 |
@wiking | but we need it | 10:08 |
@wiking | global | 10:08 |
mikeling | wiking: you mean the we need a global fixture for every SVM module? | 10:11 |
@wiking | no | 10:11 |
@wiking | i mean that we need a global fixture | 10:11 |
@wiking | for those data generators | 10:11 |
@wiking | i bet a 100 usd | 10:11 |
@wiking | that there are like 10 different implementation | 10:12 |
@wiking | of data generators | 10:12 |
@wiking | atm in the unit tests | 10:12 |
@lambday|work | wiking: hey there | 10:16 |
@lambday|work | wiking: here's a crazy idea.. how about we move the subset code from CFeatures and make it an operator instead... will clean the $#!t that is presently CFeatures | 10:17 |
@lambday|work | it IS an operator.. a linear one.. isn't it | 10:17 |
@wiking | lambday|work, yeah | 10:18 |
@lambday|work | Subset_{indices}(A+B) = Subset_{indices}(A) + Subset_{indices}(B) | 10:18 |
@wiking | we need something like that | 10:18 |
@lambday|work | same goes with dimension subset | 10:18 |
@wiking | because currently | 10:18 |
@wiking | it's a fucking mess | 10:18 |
@wiking | but i would say | 10:18 |
@lambday|work | it is | 10:18 |
@wiking | what about | 10:18 |
@wiking | CFeatures.being() | 10:18 |
@wiking | having iterators? | 10:18 |
@wiking | so that the features are actually iterable | 10:19 |
@lambday|work | wiking: totally.. me and Heiko discussed it long back | 10:19 |
@wiking | i'm currently rewriting file | 10:19 |
@wiking | throwing out StreamingFile | 10:19 |
mikeling | wiking: so, we need to unify all those data generators and use a global fixture to instead of them? | 10:19 |
@wiking | mikeling, yes | 10:19 |
@lambday|work | also, how about we design the concepts a bit more mathematically.. abstract concepts... will appeal to researchers who use this thing.. | 10:19 |
@wiking | lambday|work, we'll just have CSVRecordReader | 10:19 |
@wiking | and that'll have an interator access | 10:19 |
mikeling | wiking: alright, I finally got the point. :) | 10:20 |
@wiking | and that way we dont care | 10:20 |
@wiking | if it's streaming | 10:20 |
@wiking | or none streaming | 10:20 |
@wiking | it's all the same | 10:20 |
@wiking | lambday|work, ^ | 10:20 |
@lambday|work | wiking: yeah.. that's what the DataManager thing does ATM.. with the feature of getting things block-wise... | 10:20 |
@lambday|work | would be cool | 10:20 |
@wiking | yep | 10:21 |
@wiking | but we need the whole input storry | 10:21 |
@wiking | to be like that | 10:21 |
@lambday|work | wiking: yeah but let's think a bit more about the proper use-cases... and about the abstract ideas.. | 10:22 |
@wiking | ? | 10:22 |
@wiking | which one? | 10:22 |
@wiking | i mean i'm currently writing | 10:22 |
@wiking | the input format | 10:22 |
@wiking | so i dont care about that | 10:22 |
@wiking | the current one we have is a fucking mess | 10:22 |
@wiking | and it doesn't work | 10:22 |
@wiking | :) | 10:22 |
@wiking | so anything is better | 10:22 |
@wiking | obviously i'm gonna put it in a feature branch when it's reviewable | 10:23 |
@wiking | and people can input | 10:23 |
@lambday|work | wiking: absolutely.. | 10:26 |
@lambday|work | I'll see something about subsets in cfeatures | 10:26 |
@wiking | k | 10:27 |
@lambday|work | one more thing... I don't like the fact that we keep on modifying the state of the objects so much... why should be "push" the subset changes inside the instance? we want subsetted feature, we'd get a new instance (even though shares the same underlying matrix).. | 10:27 |
@lambday|work | way cleaner this way I believe | 10:28 |
@wiking | well | 10:28 |
@wiking | this is the story | 10:29 |
@lambday|work | makes it easier to use const.. | 10:29 |
@wiking | of immutables | 10:29 |
@wiking | right? :) | 10:29 |
@lambday|work | wiking: that's the point | 10:29 |
@wiking | i mean we are mutating all our objects all the time | 10:29 |
@lambday|work | why shouldn't we use it | 10:29 |
@wiking | which is bad in many ways | 10:29 |
@wiking | question is | 10:29 |
@wiking | what is the advantage? :) | 10:29 |
@lambday|work | wiking: less error prone? | 10:29 |
@wiking | nono | 10:29 |
@wiking | i know about immutable pros | 10:29 |
@wiking | :) | 10:29 |
@wiking | what i'm asking | 10:30 |
@wiking | do you have any pros for mutable objects? | 10:30 |
@wiking | lets say in case of feaures? | 10:30 |
@wiking | *features | 10:30 |
@lambday|work | wiking: I can't think of anything | 10:30 |
@wiking | lisitsyn, ^ | 10:30 |
@lambday|work | why should features be modified? | 10:30 |
@wiking | lambday|work, preproc | 10:30 |
@wiking | currently they do modify it internally | 10:31 |
@wiking | if i remember correctly | 10:31 |
@wiking | no? | 10:31 |
lisitsyn | mutable = bad | 10:31 |
@lambday|work | wiking: when you preprocess, mathematically you map it to a different feature space.. | 10:31 |
lisitsyn | I have no idea what you talk about | 10:31 |
lisitsyn | but it is | 10:31 |
lisitsyn | :D | 10:31 |
@lambday|work | why not use a new instance for that | 10:31 |
@wiking | lisitsyn, why is it good that we have mutable CFeatures | 10:31 |
@wiking | instead of making it immutable | 10:31 |
lisitsyn | es no bien | 10:31 |
@wiking | do you have a advantage there for keeping it mutable? | 10:31 |
lisitsyn | mutable = less memory | 10:32 |
@lambday|work | lisitsyn: yeah tell us.. cause I've got nuthin' | 10:32 |
@wiking | lambday|work, nono you do not need to convince me :) | 10:32 |
lisitsyn | mutable is just to use less memory here | 10:32 |
@wiking | i'm just trying to be objective in this story | 10:32 |
lisitsyn | that's it | 10:32 |
@wiking | mmm yeah true | 10:32 |
lisitsyn | objective wiking | 10:32 |
lisitsyn | hmm | 10:32 |
lisitsyn | :D | 10:32 |
@wiking | although currenlty we cannot read more | 10:32 |
@wiking | than 10 megs of files | 10:32 |
@wiking | :D | 10:32 |
@lambday|work | lisitsyn: we won't make deep copy of the underlying data... rather just a couple of ptrs | 10:32 |
lisitsyn | yes | 10:32 |
lisitsyn | immutable is still good with proper flyweight | 10:33 |
lisitsyn | memory-wise | 10:33 |
@wiking | there's that story of | 10:33 |
lisitsyn | but w/o any tricks mutable uses less memory | 10:33 |
@wiking | apache arrow | 10:33 |
lisitsyn | I think that's it | 10:33 |
@wiking | and that's actually having the presumption | 10:33 |
@wiking | that everything is immutable | 10:33 |
@wiking | good stuff because actually youcould pass mem regions | 10:33 |
@wiking | between processes w/o serialization | 10:34 |
lisitsyn | the prophet wiking tells the truth | 10:34 |
@wiking | lisitsyn, any problems? :) | 10:34 |
@wiking | i mean sorry but am i so wrong here? | 10:34 |
@wiking | i mean in this case we should just fucking start killing all those mutable shit going on tehre | 10:35 |
@lambday|work | we don't have to be a Haskell... but at least features should be immutable IMO... | 10:35 |
@wiking | think about the kernel normalizers :DDDDDDDD | 10:35 |
@wiking | kernel normalizers usually caused like | 10:36 |
@wiking | 10 bugs a month | 10:36 |
@wiking | when threading got fixed :) | 10:36 |
@lambday|work | we get too bogged down with SE issues that we hardly can do any ML with shogun anymore | 10:36 |
@wiking | yes | 10:36 |
@wiking | although that was almost always the case | 10:36 |
@wiking | but people just ignored | 10:36 |
@wiking | :) | 10:37 |
@lambday|work | wiking: let's make it better.. once and for all | 10:37 |
@wiking | hahah impossible mission | 10:37 |
@wiking | (once and for all) | 10:37 |
@wiking | just lets keep trying :D | 10:37 |
@lambday|work | wiking: teeny tiny better :D | 10:37 |
@wiking | is there something like Iterators of guava | 10:37 |
@wiking | for c++ | 10:37 |
@wiking | ? | 10:37 |
@wiking | wher eyou can apply predicates on the iterators? | 10:37 |
@wiking | that is done on the fly | 10:38 |
@wiking | that shit is great in guava | 10:38 |
@lambday|work | wiking: we're gonna write our custom iterators, right? then why not | 10:38 |
@lambday|work | won't expose to swig --> good to go | 10:38 |
@wiking | yea i mean | 10:39 |
@wiking | customer iterator | 10:39 |
@wiking | *custom | 10:39 |
@wiking | it's still gonna be std::iterator :) | 10:39 |
@wiking | but no what i mean is | 10:39 |
@wiking | that actually before we super reinvent the will | 10:39 |
@wiking | *wheel | 10:39 |
@wiking | because the java.util.stream is super nice | 10:39 |
@wiking | now that c++11 has lambdas | 10:40 |
@wiking | is there something similar | 10:40 |
@wiking | i know it's very functional | 10:40 |
@wiking | it's super easy to use | 10:40 |
@wiking | http://jscheiny.github.io/Streams/ | 10:40 |
@wiking | :D | 10:40 |
@lambday|work | wiking: that's now one will implement it, right? filters | 10:41 |
@lambday|work | cppstd doesn't have anything it seems | 10:41 |
@wiking | well you know if you take the approach | 10:41 |
@wiking | lambday|work, there's something about this in c++20 :d | 10:41 |
@wiking | afaik | 10:41 |
@wiking | http://www.modernescpp.com/index.php/functional-in-c-17-and-c-20 | 10:42 |
@wiking | there | 10:42 |
@wiking | :) | 10:42 |
@lambday|work | wiking: well, I don't see our planet surviving that long | 10:43 |
@wiking | :) | 10:43 |
@wiking | anyhow | 10:43 |
@wiking | yeah changing the features to be immutable | 10:43 |
@wiking | seems to be a common OK | 10:43 |
@sukey | Pull Request #3722 "Lock free InputParser and ParseBuffer" synchronized by tdjogi010 - https://github.com/shogun-toolbox/shogun/pull/3722 | 10:43 |
@lambday|work | concepts would have been great in c++17... but bjarne said he's disappointed that there aren't gonna | 10:44 |
@lambday|work | wiking: I vote yes | 10:44 |
@lambday|work | wiking: actually, let's collect such things first | 10:44 |
@lambday|work | subset/dimension_subset ===> CLinearOperator.... | 10:44 |
@lambday|work | lisitsyn: what do you say? | 10:45 |
@lambday|work | lisitsyn: should clean the mess a bit? | 10:45 |
lisitsyn | I fell out the discussion sorry | 10:45 |
@wiking | lisitsyn, nw | 10:45 |
@lambday|work | we define a method in the base and give a SG_NOTIMPLEMENTED.. and then implement it in one subclass | 10:45 |
@wiking | lambday|work, you mean a linearOperator in sense of linalg? | 10:45 |
@lambday|work | lisitsyn: features should be immutable | 10:46 |
lisitsyn | what's the solution | 10:46 |
lisitsyn | ah | 10:46 |
lisitsyn | righto | 10:46 |
@wiking | lisitsyn, fuck everybody :) | 10:46 |
lisitsyn | I agree | 10:46 |
@wiking | and we do immutable features :> | 10:46 |
lisitsyn | fuck the police! | 10:46 |
lisitsyn | yolo | 10:46 |
@wiking | yeah i mean | 10:46 |
@wiking | i thnk mutable features are more YOLO | 10:46 |
@wiking | in this case | 10:46 |
@wiking | :D | 10:46 |
@lambday|work | wiking: linear operators/linear maps whatever you call it.. carries the same idea, right? maps a space onto another and carries linearity.. our \mathbb{R}^n linalg is just one case | 10:49 |
@wiking | no i get what you mean | 10:50 |
@wiking | i just needed the context | 10:50 |
@wiking | if you mean the same | 10:50 |
@wiking | yeah i think it's ok | 10:50 |
@wiking | but i wouldnt call it linear operator | 10:50 |
@lambday|work | wiking: exactly.. | 10:50 |
@wiking | because nobody | 10:50 |
@wiking | is gonna use it | 10:50 |
@wiking | or understand it | 10:50 |
@wiking | what it stands for | 10:50 |
@wiking | since there's no human living on the planet | 10:50 |
@wiking | who would call such a mapping in a code | 10:51 |
@wiking | linearoperator | 10:51 |
@wiking | :) | 10:51 |
@lambday|work | CSubset::apply(...) wouldn't be so bad? | 10:51 |
@lambday|work | CSubset extends CLinearOperator | 10:51 |
@lambday|work | wiking: ^ | 10:51 |
@wiking | mmm even subset | 10:51 |
@wiking | is like | 10:52 |
@wiking | oookay is | 10:52 |
@wiking | *ish | 10:52 |
@wiking | i would call it view or slice or whatever the fuck | 10:52 |
@wiking | much more down the earth | 10:52 |
@lambday|work | wiking: that's what it is called right now :D.. but if you have better names | 10:52 |
@wiking | i know | 10:52 |
@wiking | but since we are refactoring | 10:52 |
@lambday|work | view is to database-y | 10:52 |
@lambday|work | wiking: ummm... subset is not that bad.. people know what it means | 10:54 |
@wiking | you'd think | 10:54 |
@wiking | :) | 10:54 |
@lambday|work | very elementary idea | 10:54 |
@lambday|work | haha | 10:54 |
@lambday|work | not even people doing ML? | 10:54 |
@lambday|work | wiking: but point is - in principle, we agree about the general idea, right? name cab be decided later | 10:55 |
@lambday|work | been thinking about this for 2-3 days.. | 10:55 |
@wiking | yeah | 10:55 |
@lambday|work | (a) immutable features (b) subset as external operators | 10:56 |
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has joined #shogun | 10:57 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 10:57 | |
@lambday|work | 3rd problem that I gotta think is about how we're gonna specify properties without MI... | 10:57 |
@lambday|work | HeikoS: yo | 10:57 |
@sukey | Pull Request #3728 "Feature/mds example" synchronized by elenanst - https://github.com/shogun-toolbox/shogun/pull/3728 | 11:02 |
@HeikoS | lambday|work: jojo | 11:04 |
@HeikoS | whats up? | 11:04 |
@lambday|work | HeikoS: have a meeting now.. will be back shortly.. had a few ideas and discussed with wiking .. would love to hear your thoughts on this | 11:30 |
@HeikoS | cool yeah shot | 11:30 |
@HeikoS | shoot | 11:30 |
@HeikoS | when your done | 11:30 |
-!- stefanJ_ [~1gn1t0r@196.252.189.152] has quit [Quit: Leaving] | 11:51 | |
mikeling | lambday|work: ping | 11:58 |
mikeling | Does this pr https://github.com/shogun-toolbox/shogun/pull/3724 looks good to you? | 11:59 |
-!- nagdev [dce39546@gateway/web/freenode/ip.220.227.149.70] has quit [Quit: Page closed] | 12:07 | |
-!- pranav_ [6719e766@gateway/web/freenode/ip.103.25.231.102] has joined #shogun | 12:07 | |
pranav_ | Hello I am interested to apply for GSoS'17 at Shogun and so have for the first step have tried installing it on my Ubuntu OS. However all the steps provided in the installation manual has not worked for me. Can I please receive some help for the same? | 12:10 |
@HeikoS | pranav_: hi there | 12:27 |
@HeikoS | of course we can | 12:27 |
@HeikoS | CaBa: hi | 12:32 |
CaBa | HeikoS: hey | 12:34 |
@HeikoS | just checking your fix | 12:34 |
@HeikoS | CaBa: so I wonder | 12:34 |
CaBa | which one? | 12:34 |
@HeikoS | doa | 12:35 |
@HeikoS | array | 12:35 |
@HeikoS | so the pros and cons are | 12:35 |
@HeikoS | your fix: | 12:35 |
@HeikoS | on serialization, only the filled content is serialized, i.e. smaller file | 12:35 |
@HeikoS | but on the other hand it is a bit ugly to overload the clone method | 12:35 |
@HeikoS | the other way to fix it: | 12:35 |
@HeikoS | store the real array length, initialise with NULL, then no need to overload clone | 12:36 |
@HeikoS | but that leads to a bigger file | 12:36 |
CaBa | HeikoS: using the reserved size in add() has additional issues that are hard to handle | 12:37 |
@HeikoS | like? | 12:37 |
@HeikoS | wiking: around? | 12:38 |
CaBa | HeikoS: two arrays with the same content but different reserved size no longer equal() because the reserved size becomes part of the array ptype | 12:38 |
@HeikoS | CaBa: when we go tags, this thing will be a pain again | 12:38 |
@HeikoS | ah yeah I see | 12:38 |
@HeikoS | CaBa: ok it seems like we should think about re-implementing that class | 12:38 |
@HeikoS | using STL :) | 12:38 |
@HeikoS | but then I think the patch is OK | 12:39 |
CaBa | yep, lets go with the clone() override one. Actually we'll need solutions in more places, the massive clone()ing happening since parallel xval revealed more clone() / Parameter releated issues to me | 12:40 |
@HeikoS | thats good to know | 12:41 |
CaBa | HeikoS: see the issues i added. in fact, many CMachine derived classes have not a single parameter registered... they clone into uninitialized evilness... | 12:42 |
CaBa | HeikoS: i submitted a patch for CMKL and am preparing some cleanup fix for the LibSVM related classes, PR in ~10 mins | 12:43 |
@HeikoS | that is great news! | 12:43 |
CaBa | HeikoS: well for me it wasn't :P i did MKL classifications for a week on a cluster using the parallel xval code. Results are garbage :P | 12:45 |
@HeikoS | the parallel xval should have been investigated a bit more carefully | 12:45 |
@HeikoS | sorry to hear | 12:46 |
@HeikoS | lets fix it so others dont suffer the same | 12:46 |
@HeikoS | I keep an eye on your patches and try to give feedback earlier then | 12:46 |
@wiking | HeikoS, what? | 12:53 |
@HeikoS | wiking: just asking how thign are | 12:53 |
@wiking | uff too much stuff | 12:54 |
@wiking | not enough time | 12:54 |
@HeikoS | wiking: how was the conf? | 12:55 |
CaBa | sg is c++11 now, right? | 12:56 |
@HeikoS | CaBa: develop is yes | 12:57 |
CaBa | ok, so no need for patches to be c++03 compliant, right? | 12:57 |
@HeikoS | CaBa: what do you want to use? | 12:58 |
@HeikoS | no c++11 is name of game now | 12:58 |
CaBa | nothing big, just realized i was using nullptr in some files now and was wondering if i needed to change that | 13:00 |
@HeikoS | yeah thats fine | 13:00 |
@HeikoS | CaBa: I am looking at 3720 | 13:00 |
@HeikoS | CaBa: I am confused now | 13:04 |
@HeikoS | both patches address the same thing | 13:04 |
@HeikoS | Ah you suggest to discard the init one | 13:05 |
@HeikoS | I am ok with that, can you close yourself? | 13:05 |
@sukey | Issue #3726 "Thread safety of 3rd party libraries is not checked" karlnapf added label: "BUG" - https://github.com/shogun-toolbox/shogun/issues/3726 | 13:06 |
@sukey | Issue #3726 "Thread safety of 3rd party libraries is not checked" karlnapf added label: "development tasks" - https://github.com/shogun-toolbox/shogun/issues/3726 | 13:06 |
@sukey | Issue #3726 "Thread safety of 3rd party libraries is not checked" karlnapf added label: "entrance" - https://github.com/shogun-toolbox/shogun/issues/3726 | 13:06 |
@sukey | Pull Request #3723 "Fix issue #3686" synchronized by iRmantou - https://github.com/shogun-toolbox/shogun/pull/3723 | 13:06 |
@sukey | Issue #3727 "Parallel cross validation is unsafe to use" karlnapf added label: "BUG" - https://github.com/shogun-toolbox/shogun/issues/3727 | 13:07 |
@sukey | Issue #3727 "Parallel cross validation is unsafe to use" karlnapf added label: "entrance" - https://github.com/shogun-toolbox/shogun/issues/3727 | 13:07 |
@sukey | Issue #3727 "Parallel cross validation is unsafe to use" karlnapf added label: "Cleanups" - https://github.com/shogun-toolbox/shogun/issues/3727 | 13:07 |
CaBa | HeikoS: sure | 13:08 |
@sukey | Pull Request #3720 "Fix CDynamicObjectArray / DynArray parameter handling + Test" closed by lkuchenb - https://github.com/shogun-toolbox/shogun/pull/3720 | 13:11 |
CaBa | HeikoS: about the test filename | 13:11 |
@HeikoS | ywp | 13:11 |
@HeikoS | yep | 13:11 |
CaBa | HeikoS: i think there is a DynamicObjectArray.cc that is autogenerated. i'm not familiar with whatever framework that is behind that. can you check? | 13:11 |
@HeikoS | yeah it is | 13:12 |
@HeikoS | done with cmake | 13:12 |
CaBa | HeikoS: tests might as well go into the SGObject test if that's okay with you | 13:12 |
@HeikoS | and a python script that uses juinja2 | 13:12 |
@HeikoS | I see | 13:12 |
@HeikoS | that should be named differently | 13:12 |
@HeikoS | and then your test should get that name | 13:12 |
@HeikoS | it is all auto detected so I think it suffices to change the filename of the templates | 13:12 |
CaBa | how do you want that to be called? | 13:13 |
@HeikoS | DynamicObjectArray_generated.cc | 13:13 |
@HeikoS | ? | 13:13 |
CaBa | k | 13:14 |
CaBa | from which file can i copy the BSD header? | 13:15 |
@HeikoS | grep | 13:15 |
CaBa | random clicking in github just gave me GPL ones so far :P | 13:15 |
CaBa | HeikoS: well i took that BSD text that i used from another shogun file. i didn't make that up. so apparently there are good and bad BSD header files | 13:16 |
@HeikoS | /home/heiko/git/shogun/shogun_develop/shogun/tests/unit/statistical_testing | 13:16 |
@HeikoS | ah really | 13:16 |
@HeikoS | nice | 13:16 |
@HeikoS | check these ones above ... | 13:17 |
CaBa | ok, 2-clause then | 13:17 |
CaBa | thanks | 13:17 |
@sukey | Pull Request #3731 "LibSVM parameters" opened by lkuchenb - https://github.com/shogun-toolbox/shogun/pull/3731 | 13:28 |
-!- Chris___ [5c4aa849@gateway/web/freenode/ip.92.74.168.73] has joined #shogun | 13:29 | |
Chris___ | Hi, anyone can help me solving a problem with MKL, SVRlight? (SystemError: [ERROR] In file Applications/shogun/src/shogun/classifier/mkl/MKL.cpp line 848: Assertion R >= 0 failed!) | 13:35 |
CaBa | Chris___: are you using cross validation? | 13:41 |
@HeikoS | ha! | 13:41 |
@HeikoS | CaBa: want to send that revert revert revert patch? | 13:42 |
CaBa | HeikoS: for parallel xval you mean? | 13:42 |
@HeikoS | yep | 13:43 |
Chris___ | CaBa: yes, I am | 13:44 |
CaBa | HeikoS: i'm not sure how bad it's gonna be still after the cloning is fixed. i realized MKL doesnt actually need CPLEX or GLPK. i had neither installed. and with the in-house solvers there are no concurrency issues i think. | 13:44 |
@HeikoS | ok | 13:44 |
@HeikoS | lets see then | 13:44 |
CaBa | Chris___: can you set the number of threads to 1 and see if the prob persists? | 13:44 |
CaBa | Chris___: there is a problem with MKL and multithreaded cross validation. actually working on that right now. | 13:47 |
Chris___ | actually I'm not using the shogun functionality for cross-validation... | 13:50 |
CaBa | hm. ok. | 13:50 |
@wiking | man | 13:52 |
Chris___ | MKL-direct: p = 1.000 MKL-direct: nofKernelsGood = 1 MKL-direct: Z = inf MKL-direct: eps = 1.000000e-02 MKL-direct: t[ 0] = nan ( diff = nan = 1.356635e-02 - nan ) MKL-direct: t[ 1] = nan ( diff = nan = 1.356635e-02 - nan ) MKL-direct: t[ 2] = nan ( diff = nan = 9.728673e-01 - nan ) MKL-direct: preR = nan MKL-direct: preR/p = nan MKL-direct: sqrt(preR/p) = nan MKL-direct: R = nan | 13:52 |
@wiking | i'm like giving up on some open source projects :D | 13:52 |
CaBa | Chris___: that MKL code is also quite ancient and with no real support right now unfortunately. I also ran into exactly that error, but in my case it was (mostly) do to that bug. still happens after fixing, but rarely. i haven't figured out the conditions under which it happens so far... | 13:53 |
Chris___ | hm ok, that doesn't sound too good | 13:55 |
Chris___ | I'm doing grid search and within this process it happens. If I just do cross validation on the same dataset it runs through. | 13:59 |
CaBa | Chris___: you don't call clone() on the MKL machine by any chance? | 14:00 |
Chris___ | No I don't | 14:01 |
CaBa | read/write them from file? | 14:01 |
Chris___ | the MKL machine? | 14:04 |
CaBa | ye | 14:04 |
CaBa | yep | 14:04 |
Chris___ | no | 14:05 |
Chris___ | I have a set of combined kernels, I'm iterating through those and set it as kebel of the SVRlight object which is then used for initialization of the MKLClassification object | 14:06 |
Chris___ | for each combined kernel I set different C and epsilon values | 14:07 |
Chris___ | in the second iteration, i.e. the second combination of C and epsilon values, this error occurs | 14:07 |
CaBa | Chris___: how about you use that combination first? | 14:09 |
CaBa | Chris___: i.e. on the "unused" objects? does it still happen? | 14:09 |
@sukey | New Commit "add Visual Studio 15 2017 to appveyor" to shogun-toolbox/shogun by vigsterkr: https://github.com/shogun-toolbox/shogun/commit/eac86c9dd93ceb50d83867ae2cb21af8126942b0 | 14:13 |
CaBa | HeikoS: that clone fix in array... we need that in load_serializable() too, right? | 14:14 |
Chris___ | CaBa: it always happens in the second iteration even if I skip the first combined kernel and even if I use different combinations of C and epsilon | 14:21 |
CaBa | Chris___: cool, can you provide an mwe that triggers that? | 14:21 |
Chris___ | I can try to come up with one | 14:26 |
CaBa | that would be great! | 14:27 |
CaBa | HeikoS: uhm, the dimension params in DynamicObjectArray are... not registered? | 14:31 |
@sukey | Issue #3732 "Systematically test xvalidation of machines " opened by karlnapf - https://github.com/shogun-toolbox/shogun/issues/3732 | 14:31 |
@sukey | Issue #3732 "Systematically test xvalidation of machines " karlnapf added label: "entrance" - https://github.com/shogun-toolbox/shogun/issues/3732 | 14:31 |
@sukey | Issue #3732 "Systematically test xvalidation of machines " karlnapf added label: "Cleanups" - https://github.com/shogun-toolbox/shogun/issues/3732 | 14:31 |
@sukey | Issue #3732 "Systematically test xvalidation of machines " karlnapf added label: "testing" - https://github.com/shogun-toolbox/shogun/issues/3732 | 14:31 |
@HeikoS | CaBa: might be .... | 14:31 |
@HeikoS | CaBa: clone was added way after serialization so this might have slipped | 14:31 |
CaBa | HeikoS: well the dimensions should be serialized, indep of clone?! | 14:32 |
-!- lambday|work [c40f1706@gateway/web/freenode/ip.196.15.23.6] has quit [Quit: Page closed] | 14:33 | |
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has quit [Ping timeout: 260 seconds] | 14:36 | |
-!- travis-ci [~travis-ci@ec2-54-242-143-14.compute-1.amazonaws.com] has joined #shogun | 15:38 | |
travis-ci | it's Viktor Gal'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/212977220 | 15:38 |
-!- travis-ci [~travis-ci@ec2-54-242-143-14.compute-1.amazonaws.com] has left #shogun [] | 15:38 | |
-!- goksinen [~goksinen@rrcs-50-75-193-138.nyc.biz.rr.com] has joined #shogun | 15:44 | |
-!- HeikoS [~heiko@eduroam-int-pat-8-251.ucl.ac.uk] has joined #shogun | 15:44 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 15:44 | |
@HeikoS | CaBa: yes of course they should be | 15:50 |
@HeikoS | but as there was no equals/clone before, no way to test | 15:51 |
@HeikoS | you just dump the vector to a file, load it, and then you want the content to be the same as in numbers, you dont care about its internals | 15:51 |
CaBa | HeikoS: yeah. also, why on earth do those arrays have names?! ... | 15:52 |
@HeikoS | CaBa: all this is really old stuff | 15:52 |
@HeikoS | CaBa: BTW | 15:52 |
CaBa | HeikoS: registering that, too... i changed it into SGVector<char> unless you have a better idea | 15:53 |
@HeikoS | when you compare vectors with equal | 15:53 |
@HeikoS | it should be true even if the allocated sizes are different | 15:53 |
@HeikoS | so registering all objects in there doesnt make sense | 15:53 |
@HeikoS | just a few | 15:53 |
@HeikoS | so that the actual content is restored | 15:53 |
@HeikoS | but the size of the allocated array should not matter with that | 15:53 |
CaBa | sure, we talked about that earlier ;) | 15:54 |
@HeikoS | that can be achieved with overloading the clone/equals methods | 15:54 |
CaBa | 12:36:10 < CaBa> HeikoS: two arrays with the same content but different reserved size no longer equal() because the reserved size becomes part of the array ptype | 15:54 |
@HeikoS | and then not registering the "internal" components | 15:54 |
@HeikoS | yeah yeah | 15:54 |
@HeikoS | I just thought about it again | 15:54 |
@HeikoS | so I think it is best to not register things that should not be serialized | 15:54 |
CaBa | serialization has that pre/postprocessing infrastructure for that. clone actually would need that, too. | 15:54 |
@HeikoS | that is an interesting issue as it also will have consequences for tags | 15:55 |
@HeikoS | CaBa: yep totally | 15:55 |
@HeikoS | lisitsyn: ^ | 15:55 |
lisitsyn | sooo | 15:55 |
@HeikoS | lisitsyn: here is a case | 15:56 |
@HeikoS | where a variable should not be registered | 15:56 |
lisitsyn | why? | 15:56 |
@HeikoS | so we have this dynamic array structure | 15:56 |
@HeikoS | when serializing it, we only want to serialize the "used" parts of the array | 15:56 |
@HeikoS | (and not anything unused) | 15:56 |
@HeikoS | so when loading, the size it allocated might be different | 15:56 |
lisitsyn | ok java has a word for it | 15:57 |
lisitsyn | we should use something like that then | 15:57 |
@HeikoS | give it to me | 15:57 |
lisitsyn | transient | 15:57 |
@HeikoS | CaBa: I mean with the pre/post stuff that would also work | 15:57 |
@HeikoS | CaBa: just reigster the "smaller" vector | 15:57 |
@HeikoS | and the variable of allocation | 15:57 |
CaBa | HeikoS: well now we have that. just in the clone override | 15:57 |
@HeikoS | and then that guy is treated in post serializeation with re-alloc as you did | 15:58 |
@HeikoS | lisitsyn: so how would that work in tags? | 15:58 |
lisitsyn | HeikoS: well we just register it in a way it is transient | 15:58 |
@HeikoS | lisitsyn: otherwise I agree, that is the thing we would need | 15:58 |
CaBa | HeikoS: actually, in serialization this is already handled differently. the array is shrunk to it's actual size before serialization | 15:58 |
@HeikoS | CaBa: that is a stupid way to fix it :D | 15:59 |
@HeikoS | it should do this transparently | 15:59 |
@HeikoS | that is: just save the parts that are filled | 15:59 |
@HeikoS | make the length of allocation transient | 15:59 |
@HeikoS | then when deserializing, allocate right amount of memory | 15:59 |
@HeikoS | lisitsyn: ideas for syntax etc? | 16:00 |
CaBa | yes. actually we can remove the pre-hook and use the same post-hook as in clone(). | 16:00 |
@HeikoS | CaBa: yep | 16:00 |
lisitsyn | HeikoS: use(Tag<float>("regular_parameter")); | 16:00 |
@HeikoS | lisitsyn: what do you think about re-implementing array structures based on STL? | 16:01 |
lisitsyn | use_transient(Tag<float>("transient_parameter")) | 16:01 |
@HeikoS | lisitsyn: seems ok | 16:01 |
@HeikoS | ok next talk | 16:01 |
lisitsyn | sth like that | 16:01 |
@HeikoS | but still listening | 16:01 |
lisitsyn | HeikoS: we shouldn't really use our strange data structures | 16:02 |
lisitsyn | I think swig + stl is ok already | 16:02 |
lisitsyn | IIRC it was the only reason no? | 16:02 |
-!- HeikoS [~heiko@eduroam-int-pat-8-251.ucl.ac.uk] has quit [Quit: Leaving.] | 16:05 | |
-!- HeikoS [~heiko@eduroam-int-pat-8-251.ucl.ac.uk] has joined #shogun | 16:05 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 16:05 | |
-!- HeikoS [~heiko@eduroam-int-pat-8-251.ucl.ac.uk] has quit [Client Quit] | 16:05 | |
-!- HeikoS [~heiko@eduroam-int-pat-8-251.ucl.ac.uk] has joined #shogun | 16:06 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 16:06 | |
@HeikoS | re | 16:06 |
@sukey | Issue #3733 "add `transient` variables to tags" opened by karlnapf - https://github.com/shogun-toolbox/shogun/issues/3733 | 16:08 |
@sukey | Issue #3733 "add `transient` variables to tags" karlnapf added label: "entrance" - https://github.com/shogun-toolbox/shogun/issues/3733 | 16:08 |
@sukey | Issue #3733 "add `transient` variables to tags" karlnapf added label: "development tasks" - https://github.com/shogun-toolbox/shogun/issues/3733 | 16:08 |
@HeikoS | lisitsyn: ^ | 16:09 |
lisitsyn | oh | 16:09 |
lisitsyn | you don't like students don't you? | 16:09 |
lisitsyn | HeikoS: we're wrapping our head around this for a while :D | 16:10 |
lisitsyn | yet don't understand what's going on hah | 16:10 |
@sukey | Pull Request #3721 "Alternative fix for Dynamic(Object)Array::clone()" synchronized by lkuchenb - https://github.com/shogun-toolbox/shogun/pull/3721 | 16:14 |
CaBa | HeikoS: plx check | 16:14 |
CaBa | HeikoS: i changed the array name to SGVector<char>. open for better suggestions :P | 16:15 |
@HeikoS | lisitsyn: well marking things as transient is easy | 16:16 |
@HeikoS | and we should definitely be able to, no? | 16:16 |
@HeikoS | maybe we postpne this | 16:16 |
@sukey | Issue #3733 "add `transient` variables to tags" closed by karlnapf - https://github.com/shogun-toolbox/shogun/issues/3733 | 16:16 |
lisitsyn | HeikoS: yeah but all the thing is terribly fragile | 16:16 |
lisitsyn | HeikoS: I just mean it requires deeper understanding than we have | 16:17 |
lisitsyn | :D | 16:17 |
@HeikoS | CaBa: so | 16:20 |
@HeikoS | why not remove the name? | 16:21 |
@HeikoS | and, I dont like this re-alloc thing | 16:21 |
@HeikoS | lisitsyn: yeah ok | 16:21 |
@HeikoS | CaBa: I think we can just not register the allocated size variable | 16:22 |
@HeikoS | and then set it after cloning/loading | 16:22 |
CaBa | HeikoS: https://github.com/shogun-toolbox/shogun/search?q=set_array_name | 16:22 |
@HeikoS | CaBa I think this should be killed, or? | 16:22 |
CaBa | HeikoS: that dynprog is the only thing that uses it. no getter call ever. | 16:23 |
@HeikoS | yeah because it is pointless | 16:23 |
@HeikoS | should be done from registrated name | 16:23 |
@HeikoS | overloading member variables is such bad style ;) | 16:23 |
CaBa | hm? | 16:24 |
@HeikoS | nevermind | 16:24 |
@HeikoS | I think just remove those methods and calls | 16:24 |
@HeikoS | nothing will fail I think | 16:24 |
CaBa | HeikoS: ok. now whats the problem with the realloc? we talked about that. | 16:25 |
@HeikoS | I know, sorry for moaning now | 16:26 |
@HeikoS | problem: | 16:26 |
@HeikoS | I clone a vector | 16:26 |
CaBa | array | 16:26 |
@HeikoS | allocates space for its content | 16:26 |
@HeikoS | and then I reallocate to make it larger | 16:26 |
@HeikoS | but the memory segment doesnt fit at current place | 16:26 |
@HeikoS | so I need to move it | 16:26 |
@HeikoS | = double work for OS | 16:27 |
@HeikoS | whereas if you just after cloning/loading set the allocated size to the vector size, it only does that if I add new stuff | 16:27 |
@HeikoS | so it is cleaner | 16:27 |
@HeikoS | CaBa: agree? | 16:27 |
CaBa | yeah sure. depends what you prefer. if you re-alloc, after the clone() you have two arrays that also "perform" the same way when you alter them, they are actually identical. your way the clone is lazy, but cloning is more efficient. | 16:29 |
@HeikoS | I think cloning should just make the functional API structure persist and be as efficient as possible otherwise | 16:30 |
CaBa | k, then lets just change the tracked size | 16:32 |
@HeikoS | (and not serialize it right?) | 16:33 |
mikeling | HeikoS: hi, did you receive the proposal I show on the google doc? :) | 16:33 |
@HeikoS | CaBa: ah it is all sh** | 16:33 |
CaBa | sure, serialization stays the same | 16:34 |
@HeikoS | CaBa: but I think that is the best compromise now | 16:34 |
@HeikoS | mikeling: I dont know | 16:34 |
CaBa | serialization already happens based on the real size | 16:34 |
@HeikoS | CaBa: cool! | 16:34 |
@HeikoS | mikeling: many emails | 16:34 |
@HeikoS | detox2? | 16:34 |
mikeling | yep | 16:34 |
@HeikoS | mikeling: will check and provide some feedback later | 16:36 |
mikeling | HeikoS: great! Thank u :) | 16:37 |
@HeikoS | mikeling: if you want that project: you need to send us some prototype of the big issues we want to resolve in this project: e.g. a smart pointer patch, a serialization improvement, an automated test for xvalidation, a clean up of an existing class, a cleaner implementation of the array classes we have (see discussion in irc today) | 16:39 |
@HeikoS | then in your proposal, you need to develop a detailed plan how to apply those ideas shogun wide. just svm is not enough, and a few unit tests are not enough either, you need a very clear vision of what you want to improve | 16:39 |
@HeikoS | but I will comment more later | 16:39 |
@HeikoS | (and update the wiki) | 16:39 |
-!- HeikoS [~heiko@eduroam-int-pat-8-251.ucl.ac.uk] has quit [Quit: Leaving.] | 16:40 | |
-!- stargazer180 [~Gautam@116.74.220.156] has joined #shogun | 16:47 | |
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has joined #shogun | 17:05 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 17:05 | |
-!- OXPHOS [92bd305b@gateway/web/freenode/ip.146.189.48.91] has joined #shogun | 17:05 | |
stargazer180 | Hey HeikoS ! | 17:13 |
stargazer180 | What platform are you using Shogun on? | 17:13 |
@HeikoS | stargazer180: hi | 17:14 |
@HeikoS | I am on ubuntu | 17:14 |
stargazer180 | great | 17:14 |
stargazer180 | because i've run into some trouble | 17:15 |
stargazer180 | i can't install Shogun using the ppa method given on github | 17:15 |
stargazer180 | any idea why it isn't happening? | 17:15 |
stargazer180 | I saw on my terminal | 17:15 |
stargazer180 | that while running sudo apt-get update, amd-x64 binaries weren't found or something | 17:16 |
stargazer180 | why is that? | 17:16 |
@HeikoS | stargazer180: or something? | 17:16 |
@HeikoS | how am I supposed to help with that? :D | 17:16 |
stargazer180 | i'll check it in a sec | 17:16 |
stargazer180 | turning on my machine | 17:16 |
@HeikoS | stargazer180: before you continue | 17:16 |
@HeikoS | pls google the error message | 17:16 |
stargazer180 | i'm pretty sure, it is regarding Shogun. I'll double check though | 17:17 |
OXPHOS | HeikoS: ping | 17:24 |
@HeikoS | OXPHOS: hey there! | 17:24 |
@HeikoS | good to hear from you! | 17:25 |
@HeikoS | OXPHOS: nice work on commenting PRs of others! :) | 17:25 |
@HeikoS | OXPHOS: that is so much appreciated! | 17:25 |
OXPHOS | HeikoS: thanks! :D | 17:25 |
OXPHOS | hope i am really "helping" | 17:26 |
@HeikoS | you are! | 17:26 |
@HeikoS | but careful, we will want more of that :D | 17:26 |
OXPHOS | :D | 17:26 |
@HeikoS | shogun takes the arm when offered a hand | 17:26 |
OXPHOS | haha | 17:26 |
OXPHOS | So what's your opinion on the long comment here? https://github.com/shogun-toolbox/shogun/pull/3719 | 17:27 |
OXPHOS | about sgmatrix-eigenmatrix-sgmatrix-eigen backend | 17:27 |
@HeikoS | checking | 17:27 |
@HeikoS | OXPHOS: I am trying to understand the question | 17:28 |
@HeikoS | ah I get it | 17:28 |
@HeikoS | would need to extract the matrices from eigen to SG | 17:29 |
@HeikoS | in the refactoring | 17:29 |
stargazer180 | HeikoS check this: http://prntscr.com/emb0c5 | 17:29 |
OXPHOS | cool I get it | 17:29 |
@HeikoS | OXPHOS: nono wait | 17:29 |
@HeikoS | that is the question right? | 17:29 |
@HeikoS | because there currently is no variable that is owned by SG | 17:30 |
OXPHOS | HeikoS: I just feel like it doesn't make much sense to replace current qr_solver with linalg::qr_solver | 17:30 |
OXPHOS | though they should be | 17:31 |
OXPHOS | because as you said currently everything is already Eigen | 17:31 |
@HeikoS | mmh | 17:31 |
OXPHOS | to pass them to linalg::qr_solver they need to be convert to sgmatrix | 17:31 |
@HeikoS | I get it | 17:32 |
@HeikoS | I wonder | 17:32 |
@HeikoS | (generally) | 17:32 |
@HeikoS | can we have a cast operator? | 17:32 |
@HeikoS | for such situations | 17:32 |
@HeikoS | OXPHOS: or let me start again | 17:32 |
@HeikoS | OXPHOS: the optimal case: no eigen3 is used in algorithms, | 17:32 |
@HeikoS | right? | 17:32 |
OXPHOS | yes! | 17:32 |
@HeikoS | so in that case, linalg does not need interfaces with eigen3 | 17:32 |
@HeikoS | but the situation we have is different | 17:32 |
@HeikoS | so could offer something for making refactoring easier | 17:33 |
@HeikoS | not sure | 17:33 |
@HeikoS | casting is free essentially right? | 17:33 |
OXPHOS | HeikoS: there's cast operator in sgmatrix | 17:33 |
OXPHOS | i think it won't be too much trouble..just looks stupid | 17:34 |
@HeikoS | OXPHOS: I mean if I look at for example the FisherLDA | 17:34 |
OXPHOS | also ideally qr_solver takes up parameters: matrix and vector | 17:34 |
@HeikoS | all of this can be done using linalg | 17:34 |
OXPHOS | now it's 2 eigen matrices | 17:34 |
@HeikoS | Can we make that implicit somehow? | 17:35 |
@HeikoS | I am not sure | 17:35 |
@HeikoS | lets ask around | 17:35 |
@HeikoS | lisitsyn: you there? | 17:35 |
lisitsyn | y | 17:35 |
@HeikoS | lisitsyn: need your opinion | 17:35 |
lisitsyn | sure | 17:35 |
OXPHOS | HeikoS: yep we can change all stuff to linalg. just may take some time | 17:35 |
@HeikoS | lisitsyn: so there is the new linalg now | 17:35 |
@HeikoS | and there is algorithms implemented in eigen3 purely | 17:36 |
@HeikoS | that means, some of the matrices are not in SG format, but always eigen3 | 17:36 |
@HeikoS | now if I want to replace a solver call with linalg | 17:36 |
@HeikoS | I need to cast | 17:36 |
@HeikoS | lisitsyn: thats kinda ugly | 17:36 |
lisitsyn | HeikoS: what do you mean by sg format? | 17:37 |
lisitsyn | sgmatrix? | 17:37 |
@HeikoS | yes | 17:37 |
@HeikoS | https://github.com/shogun-toolbox/shogun/pull/3719/files#diff-6d30cfa6fcd3bc2bb83e391039094f99R254 | 17:37 |
@HeikoS | lisitsyn: you you get this | 17:37 |
lisitsyn | HeikoS: what exactly don't you like? | 17:39 |
@HeikoS | the explicit cast | 17:40 |
@HeikoS | to SGMatrix | 17:40 |
@HeikoS | long | 17:40 |
@HeikoS | OXPHOS: maybe we could argue that eventually these will go away, when everything is ported to linalg | 17:40 |
-!- geektoni [c1cdd252@gateway/web/freenode/ip.193.205.210.82] has joined #shogun | 17:40 | |
@sukey | Pull Request #3730 "Register parameters for CMKL and override clone()" synchronized by lkuchenb - https://github.com/shogun-toolbox/shogun/pull/3730 | 17:41 |
lisitsyn | HeikoS: is SGMatrix ctor explicit? | 17:41 |
@HeikoS | dont know, can we make it implicit? | 17:41 |
@HeikoS | that would solve it then | 17:41 |
OXPHOS | HeikoS: we can start from fisherLDA..implement whatever is missing in linalg to linalg | 17:41 |
lisitsyn | HeikoS: I'd prefer explicit actually | 17:42 |
@HeikoS | lisitsyn: for reasability? | 17:42 |
@HeikoS | lisitsyn: mmh ok | 17:42 |
lisitsyn | HeikoS: just to be clear when the copy happens | 17:42 |
lisitsyn | if it happens | 17:42 |
@HeikoS | year | 17:42 |
@HeikoS | lisitsyn: but no copy right? | 17:42 |
@HeikoS | just pointer translation | 17:42 |
lisitsyn | yeah but you have to know | 17:42 |
@HeikoS | actually | 17:42 |
@HeikoS | true | 17:42 |
@HeikoS | :D | 17:42 |
@HeikoS | lisitsyn: downside: | 17:42 |
OXPHOS | now it's like (EigenMatrix)result = linalg::solver(SGMatrix(A), SGVector(b)) | 17:42 |
@HeikoS | have to change the line again when the rest is ported | 17:43 |
lisitsyn | https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/lib/SGMatrix.h#L120 | 17:43 |
lisitsyn | it is not explicit | 17:43 |
lisitsyn | so you can actually write linalg::solver(A,b) | 17:43 |
lisitsyn | don't it work? | 17:43 |
lisitsyn | ah I know | 17:43 |
lisitsyn | it can't infer the type | 17:43 |
@HeikoS | stargazer180: can you report the setup and the error as a github issue? | 17:43 |
@HeikoS | stargazer180: also, dont paste screenshots as error messages, hard to handle | 17:44 |
@HeikoS | stargazer180: and then finally, did oyu google the message? | 17:44 |
@HeikoS | lisitsyn: can we make it infer the type? | 17:44 |
lisitsyn | HeikoS: no but | 17:44 |
lisitsyn | linalg::qr_solver(SGMatrix<float64_t>(Sw), SGMatrix<float64_t>(Sb)); | 17:44 |
lisitsyn | should work with | 17:44 |
lisitsyn | linalg::qr_solver<float64_t>(Sw, Sb); | 17:45 |
lisitsyn | I'd be surprised if it doesn't work | 17:45 |
-!- geektoni [c1cdd252@gateway/web/freenode/ip.193.205.210.82] has quit [Ping timeout: 260 seconds] | 17:45 | |
@HeikoS | so it is then (EigenMatrix)result = linalg::solver(A, b) | 17:45 |
@HeikoS | OXPHOS: I think that might be best | 17:45 |
OXPHOS | HeikoS: okay thanks lisitsyn | 17:46 |
lisitsyn | yw | 17:46 |
OXPHOS | The floating eigen bothers me now. But it's gonna get away soon.. | 17:47 |
-!- geektoni [c1cdd221@gateway/web/freenode/ip.193.205.210.33] has joined #shogun | 17:48 | |
@HeikoS | OXPHOS: yeah I know | 17:48 |
@HeikoS | but this is easy to spot and remove later | 17:48 |
@HeikoS | bit by bit | 17:48 |
OXPHOS | HeikoS: yep. thanks for the discussion! | 17:49 |
-!- geektoni_ [c1cdd252@gateway/web/freenode/ip.193.205.210.82] has joined #shogun | 17:51 | |
CaBa | HeikoS: what's the prob with initializing members in constructor and adding them as parameters later? | 17:51 |
@HeikoS | CaBa: default initialization | 17:51 |
@HeikoS | used to be a source of problems that things are not initialized | 17:51 |
@HeikoS | if we do that in the same method as registration, this doesnt happen | 17:52 |
-!- geektoni [c1cdd221@gateway/web/freenode/ip.193.205.210.33] has quit [Ping timeout: 260 seconds] | 17:52 | |
CaBa | HeikoS: you just mean it's safer to init once in reg_params than three times in three different constructors? | 17:53 |
@HeikoS | yep | 17:54 |
@HeikoS | consistency etc | 17:54 |
@HeikoS | but since that is a method call, cannot use the initialising syntax | 17:54 |
@HeikoS | have to overwrite the default init with an explicit assignment | 17:54 |
@HeikoS | but I think thats more readable anyways | 17:54 |
CaBa | well... i wasn't into redesigning all these classes. i kept their original structure, they way they initialized their members, c-style vectors etc | 17:55 |
@HeikoS | CaBa: true point | 17:55 |
@HeikoS | you can leave it then | 17:55 |
CaBa | i can't overhaul everything i tough :P | 17:55 |
CaBa | touch | 17:55 |
@HeikoS | I know | 17:55 |
-!- geektoni_ [c1cdd252@gateway/web/freenode/ip.193.205.210.82] has quit [Client Quit] | 17:56 | |
@HeikoS | it is a usual problem with shogun and open source | 17:56 |
@HeikoS | you touch something | 17:56 |
@HeikoS | and 100 things pop up | 17:56 |
@HeikoS | the way we improve the framework is via applying these things constantly | 17:56 |
CaBa | even the "superflous comments" were just moved there from somewhere else ;) | 17:56 |
@HeikoS | but I know it is annoying | 17:56 |
@HeikoS | CaBa: that is acutaly different | 17:56 |
@HeikoS | since they were doxygen before | 17:56 |
CaBa | ahhh | 17:56 |
CaBa | right | 17:56 |
-!- geektoni [~Mutter@62.18.4.109] has joined #shogun | 17:56 | |
CaBa | you're right... | 17:56 |
@HeikoS | CaBa: I mean feel free to ignore some of the things here if you touch this old code | 17:57 |
@HeikoS | just saying how it should be :) | 17:57 |
@HeikoS | but the patches are useful without it as well | 17:57 |
geektoni | Ping HeikoS | 17:57 |
@HeikoS | geektoni: hey there! | 17:58 |
@HeikoS | finally catching you here :) | 17:58 |
geektoni | Hehe, find a decent wifi here is a nightmare | 17:59 |
@HeikoS | where are you? | 17:59 |
stargazer180 | HeikoS: yeah i did. nothing helpful turned up :/ | 17:59 |
geektoni | I'm at my university right now and my laptop doesn't like the APs we have | 18:01 |
@HeikoS | geektoni: I see ! | 18:01 |
@HeikoS | so welcome anyways | 18:01 |
geektoni | Thanks :) hello everyone! | 18:02 |
stargazer180 | hello geektoni ! | 18:04 |
@HeikoS | geektoni: so you were asking about dependencies? | 18:04 |
-!- lambday [31cf37a2@gateway/web/freenode/ip.49.207.55.162] has joined #shogun | 18:04 | |
-!- mode/#shogun [+o lambday] by ChanServ | 18:04 | |
@HeikoS | lambday: helloooo | 18:04 |
@lambday | mikeling: there | 18:04 |
@lambday | > | 18:04 |
@lambday | HeikoS: yessire | 18:04 |
@lambday | HeikoS: did you check our chat log? | 18:05 |
@HeikoS | lambday: not yet | 18:05 |
@HeikoS | gotta work :D | 18:05 |
@lambday | HeikoS: BTW, chat log doesn't ork | 18:05 |
@lambday | I get 404 all the time | 18:05 |
@HeikoS | really? | 18:05 |
CaBa | btw | 18:05 |
@HeikoS | oh no | 18:05 |
geektoni | HeikoS: yeah, I did ask about them | 18:05 |
CaBa | whats with all the sign compare warnings in linalg recently? ;) | 18:05 |
@HeikoS | CaBa: something big got merged | 18:06 |
@lambday | HeikoS: I have some ideas that I wanna coin before you decide to shoot myself.. | 18:06 |
@HeikoS | haha | 18:06 |
@lambday | HeikoS: (a) immutable features (b) subsets as an operator rather than member methods | 18:06 |
@HeikoS | geektoni: so the short answer is: the more dependencies Shogun has, the harder it is to install | 18:06 |
@HeikoS | and as that is a nightmare already | 18:06 |
@lambday | HeikoS: discussed in details during (my) afternoon with wiking and lisitsyn... | 18:06 |
@HeikoS | we aim to keep things optional | 18:06 |
@HeikoS | geektoni: so that SHogun runs on as many computers as possible | 18:07 |
@HeikoS | think about COLPACK for example | 18:07 |
@lambday | I think I have a PR to review :/ | 18:07 |
@lambday | or else mikeling (was it you?) is gonna kill me | 18:07 |
@HeikoS | geektoni: that is a tiny lib to do some graph computations. It is used in only one algotizhm in Shogun | 18:07 |
@HeikoS | geektoni: now imagine you want to use Shogun, but you are not interested in that algorithm, would you like it to install colpack? | 18:08 |
@HeikoS | geektoni: and then think that we have hundreds of algorithms | 18:08 |
@HeikoS | I gotta leave now guys, gotta do some work. See you tomorrow! | 18:08 |
@HeikoS | lambday: maybe send an email with tldr? | 18:09 |
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has quit [Remote host closed the connection] | 18:09 | |
@lambday | oh my.. so many PRs | 18:09 |
lisitsyn | uh have you seen distill? | 18:17 |
lisitsyn | looks like it's the thing | 18:17 |
-!- geektoni [~Mutter@62.18.4.109] has quit [Quit: Mutter: www.mutterirc.com] | 18:17 | |
@sukey | Pull Request #3724 "Refactoring for shogun::memcpy" merged by lambday - https://github.com/shogun-toolbox/shogun/pull/3724 | 18:18 |
@sukey | New Commit "Merge pull request #3724 from MikeLing/issuefix-3700 | 18:18 |
@sukey | Refactoring for shogun::memcpy" to shogun-toolbox/shogun by lambday: https://github.com/shogun-toolbox/shogun/commit/c7640fa97b44936770a2b10762ee2431ab505e94 | 18:18 |
@sukey | Issue #3700 "Refactoring for `shogun::memcpy`" closed by lambday - https://github.com/shogun-toolbox/shogun/issues/3700 | 18:18 |
-!- geektoni [~Mutter@62.18.4.109] has joined #shogun | 18:19 | |
-!- geektoni [~Mutter@62.18.4.109] has quit [Client Quit] | 18:19 | |
@lambday | lisitsyn: 105838201 | 18:20 |
@lambday | oops | 18:20 |
@lambday | lisitsyn: Как дела? | 18:20 |
lisitsyn | lambday: хорошо а у тебя? | 18:20 |
lisitsyn | lambday: btw yo estudio espanol for a few weeks already | 18:21 |
lisitsyn | :D | 18:21 |
@lambday | lisitsyn: Как Яндекс относится к вам? | 18:21 |
@lambday | lisitsyn: wait.. means you studied espanol | 18:21 |
@lambday | como estas | 18:22 |
lisitsyn | es bien! | 18:22 |
@lambday | hablas tu espanol? | 18:22 |
@lambday | lol | 18:22 |
@lambday | that's the extent of my knowledge | 18:22 |
lisitsyn | yo hablo espanol! | 18:22 |
lisitsyn | :D | 18:22 |
-!- nikhilweee [~nikhilwee@128.199.66.195] has quit [Ping timeout: 240 seconds] | 18:22 | |
@lambday | say "jo" :D | 18:22 |
lisitsyn | words I know are quite strange | 18:23 |
@lambday | lol I don't understand how 'J' is a valid substitute for 'Y' | 18:23 |
lisitsyn | I use duolingo | 18:23 |
lisitsyn | so I know how to say 'my horse eats onion' | 18:23 |
lisitsyn | the usual phrase in real life you know | 18:23 |
@lambday | yeah, the usual | 18:23 |
@lambday | mine shits onion everyday, might as well learn how to say that xD | 18:23 |
lisitsyn | haha | 18:24 |
lisitsyn | lambday: I am confused not by j/y | 18:24 |
lisitsyn | but by m/n | 18:24 |
lisitsyn | and b/v | 18:24 |
@lambday | m/n | 18:24 |
lisitsyn | it's quite random for me yet | 18:24 |
@lambday | are you kiddin | 18:24 |
@lambday | which language mixes these two? | 18:24 |
@lambday | b/v I can understand | 18:24 |
@lambday | :D | 18:24 |
lisitsyn | lambday: bebo sounds like bevo | 18:24 |
@lambday | in spanish | 18:25 |
@lambday | ? | 18:25 |
lisitsyn | naranja sounds like naramha | 18:25 |
lisitsyn | yes | 18:25 |
lisitsyn | the same in portuguese | 18:25 |
@lambday | aaaah yeah j is a valid replacement for h as well | 18:25 |
@lambday | in case you haven't noticed, people comment on youtube mostly as "jajajajajajaja" instead of you know what | 18:26 |
lisitsyn | haha | 18:26 |
@lambday | I don't understand | 18:26 |
@lambday | there is another letter for that sound | 18:26 |
@lambday | use it! | 18:26 |
@lambday | :D | 18:26 |
lisitsyn | kk off to cena! | 18:26 |
-!- Killin [~Killin-A1@129.7.0.237] has joined #shogun | 18:30 | |
stargazer180 | good night from India, folks! :) | 18:35 |
@lambday | stargazer180: ah fellow Indian... shubh raatri :) | 18:37 |
stargazer180 | :) | 18:38 |
-!- stargazer180 [~Gautam@116.74.220.156] has quit [Quit: Leaving] | 18:38 | |
-!- pranav_ [6719e766@gateway/web/freenode/ip.103.25.231.102] has quit [Ping timeout: 260 seconds] | 18:43 | |
@lambday | :q | 18:43 |
-!- lambday [31cf37a2@gateway/web/freenode/ip.49.207.55.162] has quit [] | 18:43 | |
-!- mikeling [uid89706@gateway/web/irccloud.com/x-xtgsqfwmagkbneaa] has quit [Quit: Connection closed for inactivity] | 18:50 | |
-!- Killin [~Killin-A1@129.7.0.237] has quit [Ping timeout: 256 seconds] | 18:55 | |
@sukey | Pull Request #3721 "Alternative fix for Dynamic(Object)Array::clone()" synchronized by lkuchenb - https://github.com/shogun-toolbox/shogun/pull/3721 | 19:01 |
@sukey | Pull Request #3731 "LibSVM parameters" synchronized by lkuchenb - https://github.com/shogun-toolbox/shogun/pull/3731 | 19:08 |
@sukey | Wiki page: AUTHORS edited on shogun-toolbox/shogun by lgoetz | 20:22 |
@sukey | Wiki page: AUTHORS edited on shogun-toolbox/shogun by lgoetz | 20:23 |
@sukey | Wiki page: AUTHORS edited on shogun-toolbox/shogun by lgoetz | 20:25 |
@sukey | Wiki page: AUTHORS edited on shogun-toolbox/shogun by lgoetz | 20:26 |
@sukey | Wiki page: AUTHORS edited on shogun-toolbox/shogun by lgoetz | 20:30 |
-!- goksinen [~goksinen@rrcs-50-75-193-138.nyc.biz.rr.com] has quit [Ping timeout: 264 seconds] | 20:56 | |
-!- goksinen [~goksinen@rrcs-50-75-193-138.nyc.biz.rr.com] has joined #shogun | 20:57 | |
@sukey | Wiki page: AUTHORS edited on shogun-toolbox/shogun by OXPHOS | 21:09 |
-!- shogitter1 [~nodebot@ks312251.kimsufi.com] has joined #shogun | 21:18 | |
@sukey | Wiki page: AUTHORS edited on shogun-toolbox/shogun by OXPHOS | 21:19 |
-!- valex [bc1acfac@gateway/web/freenode/ip.188.26.207.172] has joined #shogun | 21:24 | |
-!- eDen [050cd48e@gateway/web/freenode/ip.5.12.212.142] has joined #shogun | 21:25 | |
-!- eDen is now known as Guest22971 | 21:25 | |
-!- Guest22971 [050cd48e@gateway/web/freenode/ip.5.12.212.142] has quit [Client Quit] | 21:26 | |
-!- Netsplit *.net <-> *.split quits: shogitter | 21:31 | |
-!- Killin [~Killin-A1@2602:304:68a6:ddc0:9d74:2247:886:89c7] has joined #shogun | 21:50 | |
-!- Chris___ [5c4aa849@gateway/web/freenode/ip.92.74.168.73] has quit [Ping timeout: 260 seconds] | 22:00 | |
@sukey | Pull Request #3734 "Use get and set in regression classes" opened by abhinavrai44 - https://github.com/shogun-toolbox/shogun/pull/3734 | 22:19 |
-!- valex [bc1acfac@gateway/web/freenode/ip.188.26.207.172] has quit [Quit: Page closed] | 22:45 | |
-!- goksinen [~goksinen@rrcs-50-75-193-138.nyc.biz.rr.com] has quit [] | 22:52 | |
-!- goksinen [~goksinen@rrcs-50-75-193-138.nyc.biz.rr.com] has joined #shogun | 22:53 | |
-!- goksinen [~goksinen@rrcs-50-75-193-138.nyc.biz.rr.com] has quit [Remote host closed the connection] | 23:00 | |
-!- goksinen [~goksinen@rrcs-50-75-193-138.nyc.biz.rr.com] has joined #shogun | 23:04 | |
-!- goksinen [~goksinen@rrcs-50-75-193-138.nyc.biz.rr.com] has quit [Ping timeout: 240 seconds] | 23:08 | |
--- Log closed Tue Mar 21 00:00:13 2017 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!