--- Log opened Wed May 15 00:00:16 2019 | ||
-!- anvan [~androirc@103.252.200.48] has quit [Ping timeout: 268 seconds] | 01:46 | |
-!- anvan [~androirc@103.252.200.48] has joined #shogun | 02:49 | |
-!- durovo1 [~durovo@5d.65.2ea9.ip4.static.sl-reverse.com] has joined #shogun | 03:57 | |
-!- durovo [~durovo@5d.65.2ea9.ip4.static.sl-reverse.com] has quit [Ping timeout: 245 seconds] | 04:01 | |
-!- wiking [~wiking@c-185-45-237-122.customer.ggaweb.ch] has quit [Remote host closed the connection] | 04:11 | |
-!- anvan [~androirc@103.252.200.48] has quit [Ping timeout: 258 seconds] | 04:33 | |
-!- wiking_ [~wiking@c-185-45-237-122.customer.ggaweb.ch] has joined #shogun | 07:50 | |
-!- wiking_ [~wiking@c-185-45-237-122.customer.ggaweb.ch] has quit [Client Quit] | 07:53 | |
-!- wiking_ [~wiking@huwico/staff/wiking] has joined #shogun | 07:53 | |
-!- mode/#shogun [+o wiking_] by ChanServ | 07:53 | |
-!- wiking_ is now known as wiking | 07:53 | |
-!- essam [cfbd194e@gateway/web/freenode/ip.207.189.25.78] has joined #shogun | 08:43 | |
essam | wiking: ping | 08:45 |
---|---|---|
@wiking | pong | 08:45 |
essam | i have a question, is there a dynamic array implementation in shogun? | 08:45 |
essam | something like std::vector | 08:45 |
essam | for primitives | 08:46 |
essam | or maybe something like std::pair | 08:46 |
@wiking | you need that to expose to SWIG? | 08:47 |
@wiking | i mean DynArray can hold anything | 08:48 |
@wiking | but i wouldn't use it | 08:48 |
@wiking | if u dont need to expose the structure to SWIG | 08:48 |
@wiking | then just go ahead using STL stuff | 08:48 |
@wiking | in case of std::vector i would use it... as that's mapped to most swig langs | 08:49 |
essam | does the parameter framework handle std::vectors without problems? | 08:49 |
essam | I want to remove the combined_weight member variable from DotFeatures | 08:52 |
essam | and also from the Kernel interface | 08:52 |
essam | and let CombinedDotFeatures have a vector of weights | 08:52 |
essam | and similarily for CombinedKernel | 08:52 |
@wiking | mmm current param framework does not support it | 08:53 |
@wiking | but it's fine | 08:53 |
@wiking | just dont add it for the time being to params | 08:53 |
@wiking | it'll be supported with tags | 08:53 |
essam | ok thanks | 08:54 |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 09:45 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 09:45 | |
-!- mode/#shogun [+o wiking] by ChanServ | 09:45 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 258 seconds] | 09:50 | |
-!- gf712 [9052087c@gateway/web/freenode/ip.144.82.8.124] has joined #shogun | 09:50 | |
-!- geektoni [c1cdd253@gateway/web/freenode/ip.193.205.210.83] has joined #shogun | 09:51 | |
-!- anvan [~androirc@103.252.200.48] has joined #shogun | 09:51 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 09:55 | |
-!- mode/#shogun [+o wiking] by ChanServ | 09:55 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 248 seconds] | 09:59 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 10:07 | |
-!- mode/#shogun [+o wiking] by ChanServ | 10:07 | |
geektoni | ping wiking | 10:11 |
@wiking | pongi | 10:11 |
geektoni | wiking: is there any way to get the description of a registered parameter? :/ | 10:12 |
@wiking | yes | 10:12 |
geektoni | because I can see methods only for modelselection's ones. | 10:12 |
@wiking | its currenlty a bit not straightforward | 10:12 |
@wiking | but yeah | 10:12 |
@wiking | you get the AnyParameter from SGObject | 10:12 |
@wiking | currently only have this | 10:13 |
@wiking | std::map<std::string, std::shared_ptr<const AnyParameter>> get_params() const; | 10:13 |
@wiking | that is only in c++ api | 10:13 |
geektoni | wiking: I see I see. I needed a way to do it from the interfaces | 10:13 |
@wiking | and then basically AnyParameter.get_description() | 10:13 |
@wiking | ah | 10:13 |
@wiking | mmm dunno if we wanna expose AnyParameter to SWIG directly | 10:14 |
@wiking | so either that | 10:14 |
@wiking | or you add an indirect way to query param | 10:14 |
@wiking | :) | 10:14 |
geektoni | mmmh I guess AnyParameter should be hidden :) | 10:14 |
@wiking | then unfortunately | 10:15 |
@wiking | extend sgo interface :D | 10:15 |
@wiking | dunno if | 10:15 |
@wiking | actually there's a way to have opaque ptrs in swig | 10:15 |
@wiking | then you could add helper methods around AnyParameter | 10:15 |
@wiking | something like opaque stuff from glib | 10:15 |
@wiking | opaqueAnyParamter* get_param("name"); | 10:16 |
@wiking | and then extract_name(opaqueAnyParameter*) | 10:16 |
@wiking | see what i mean? | 10:16 |
@wiking | dunno if this is better than actually exposing AnyParameter | 10:16 |
geektoni | ye ye I see what you mean | 10:19 |
geektoni | I'm thinking about the final usage though. | 10:20 |
geektoni | I mean | 10:20 |
geektoni | I would prefer to have something like obj.get_description("param_name") | 10:20 |
geektoni | so I can do everything with just one line | 10:20 |
gf712 | geektoni: I already added such a method because I needed it for openml | 10:22 |
gf712 | https://github.com/shogun-toolbox/shogun/blob/1dd09c5ddee30dfb6b738b1f2a7c1ec9eef65122/src/interfaces/swig/SGBase.i#L404 | 10:23 |
geektoni | gf712: ah cool! | 10:23 |
gf712 | feel free to change the name | 10:23 |
gf712 | I don't need it anymore... | 10:23 |
gf712 | you can even make it a bit more efficient by dereferencing the result from find instead | 10:24 |
geektoni | gf712: I guess the name is okay for the moment :) | 10:25 |
geektoni | I see I see, thank you :) | 10:25 |
@wiking | gf712: i decided | 10:25 |
@wiking | clang-rename | 10:25 |
@wiking | and fuckit | 10:25 |
@wiking | tired of C | 10:26 |
@wiking | and that kind of blocks my mind | 10:26 |
gf712 | wiking: clang-rename? | 10:26 |
@wiking | with finalizing the shared_ptr part | 10:26 |
@wiking | gf712: yeah utility to rename anything in your code | 10:26 |
@wiking | :) | 10:26 |
gf712 | ah ok! but how is it useful for you? | 10:27 |
@wiking | : clang-rename-6.0 -extra-arg-before="-I/home/wiking/shogun/src" -extra-arg-before="-I/home/wiking/shogun/build/src" -qualified-name=shogun::CKernelMachine -new-name=KernelMachine ./src/shogun/classifier/svm/SVM.cpp | 10:27 |
@wiking | boom | 10:27 |
@wiking | :) | 10:27 |
gf712 | ahhh | 10:27 |
@wiking | its rudementary | 10:27 |
@wiking | but fuckit | 10:27 |
gf712 | that C | 10:27 |
gf712 | lol, I thought you meant you were tired of writing in C :D | 10:27 |
@wiking | i cannot be bothered to take care of the CSGObject inheritance etc | 10:27 |
@wiking | anyways we have the whole story | 10:28 |
gf712 | yea, I agree, it feels a bit awkward | 10:28 |
@wiking | dunno which story | 10:28 |
@wiking | man i need sleep | 10:28 |
@wiking | :D | 10:28 |
gf712 | haha | 10:28 |
@wiking | (woke up at 6am again) | 10:28 |
@wiking | anyhow | 10:28 |
@wiking | say goodbye to C prefix | 10:28 |
@wiking | geektoni: right? :) | 10:28 |
@wiking | lisitsyn: agree right? | 10:29 |
gf712 | how are the shared_ptr going? | 10:29 |
gf712 | what did you about R and Lua btw? | 10:29 |
@wiking | well its this | 10:29 |
@wiking | and hash | 10:29 |
lisitsyn | hello | 10:29 |
@wiking | hash i agreed with lisitsyn | 10:29 |
@wiking | so that should be fine | 10:29 |
@wiking | in any | 10:29 |
@wiking | lisitsyn: C is goine | 10:29 |
@wiking | *gone | 10:29 |
@wiking | i mean object name prefix | 10:29 |
gf712 | wiking: so are you adding a visitor pattern in any for hash? | 10:30 |
@wiking | gf712: mmm no first just a simple hash when you set the value | 10:30 |
@wiking | dunno yet honestly | 10:31 |
@wiking | but something along these lines | 10:31 |
@wiking | and then see how the gp is behaving | 10:31 |
@wiking | as currenlty i have zero idea about gp + shared_ptr | 10:31 |
@wiking | as nothing is being tested | 10:31 |
@wiking | due to missing hash | 10:31 |
@wiking | lisitsyn: SAY YES MOTHERFUCKER! | 10:33 |
@wiking | SAY YES | 10:33 |
@wiking | :> | 10:33 |
@wiking | lambday: oh. man you r here? | 10:33 |
@wiking | by any chance? | 10:33 |
@wiking | idle: 27:17:43 | 10:34 |
@wiking | :D | 10:34 |
@wiking | gf712: btw that interview is good | 10:34 |
@wiking | geektoni: if u r interested https://www.youtube.com/watch?v=yCd3CzGSte8 | 10:34 |
@wiking | lisitsyn: ^ | 10:34 |
gf712 | wiking: yes, I watched the whole thing | 10:34 |
gf712 | well listened | 10:34 |
@wiking | yeye | 10:35 |
gf712 | good to know how llvm evolved | 10:35 |
gf712 | I didn't really realise people did ai+compiler stuff now | 10:35 |
gf712 | pretty cool | 10:35 |
@wiking | hahaha so many | 10:35 |
@wiking | i was involved here locally in a project | 10:35 |
@wiking | but then my marriage exploded | 10:35 |
@wiking | so dunno whatsup with that | 10:35 |
@wiking | ;d | 10:35 |
gf712 | oh right :/ | 10:35 |
@wiking | they were doing compiler optimization using ml models | 10:36 |
geektoni | wiking: uhh I'll surely take a look | 10:36 |
gf712 | what compiler btw? | 10:36 |
@wiking | llvm | 10:36 |
@wiking | :) | 10:36 |
@wiking | cool stuff | 10:36 |
@wiking | for nvidia mostly | 10:36 |
@wiking | how to set the flags | 10:36 |
@wiking | for various operations | 10:36 |
@wiking | they generated a huge dataset | 10:36 |
@wiking | with various flag combinations | 10:36 |
@wiking | and then put an ml model on it | 10:36 |
@wiking | :) | 10:36 |
gf712 | yea I also didn't realise that the Nvidia compiler was built with llvm | 10:36 |
@wiking | btw this is why u want onnx | 10:37 |
gf712 | ah that's cool | 10:37 |
@wiking | i mean actually | 10:37 |
@wiking | this is why | 10:37 |
@wiking | tensor comprehension | 10:37 |
@wiking | is cool | 10:37 |
@wiking | https://github.com/facebookresearch/TensorComprehensions | 10:37 |
@wiking | but the whole team got snatched by g | 10:37 |
@wiking | so dunno what's with this project | 10:37 |
@wiking | so basically u can take any kernel | 10:38 |
@wiking | and then optimize the shit out for it | 10:38 |
@wiking | :) | 10:38 |
@wiking | and then of course you take onnx | 10:38 |
@wiking | and then lalala | 10:38 |
@wiking | u have a super nice neat | 10:38 |
gf712 | yea that's cool | 10:39 |
@wiking | binary | 10:39 |
gf712 | isn't it kinda what xla does though? | 10:39 |
@wiking | mmmm yes and no | 10:39 |
gf712 | or is that just runtime? | 10:39 |
gf712 | xla | 10:39 |
@wiking | becuase that just does jit | 10:39 |
@wiking | right? | 10:39 |
gf712 | yea | 10:39 |
gf712 | I think | 10:40 |
@wiking | still the compiler could do better | 10:40 |
@wiking | because currently the flags are tricky | 10:40 |
@wiking | :) | 10:40 |
@wiking | and there are zilion of flag combinations | 10:40 |
@wiking | -march=native is cool | 10:40 |
@wiking | but that's just a wrapper for some heuristics | 10:40 |
gf712 | by flags you mean stuff for packing the GPUs? | 10:40 |
gf712 | I.e. grid dimension | 10:40 |
@wiking | flags = compiler flags | 10:41 |
@wiking | and that depends on the arch at hand | 10:41 |
@wiking | in case of gpu | 10:41 |
@wiking | it's very gpu type dependend | 10:41 |
@wiking | *dependent | 10:41 |
@wiking | what's the loop-vectorization size or whatever | 10:41 |
@wiking | etc | 10:41 |
@wiking | seen some crazy diffs | 10:41 |
@wiking | based on the flag values | 10:41 |
@wiking | and apparently | 10:42 |
gf712 | yea I didn't realise there was so much to gain on top of march=native | 10:42 |
@wiking | all these flags and how to set them | 10:42 |
@wiking | are all just heuristics | 10:42 |
@wiking | done by somebody | 10:42 |
@wiking | :D | 10:42 |
@wiking | literlly some guys just figured out | 10:42 |
gf712 | haha | 10:42 |
@wiking | that ok this should be good for this | 10:42 |
@wiking | and that's it | 10:42 |
gf712 | great... | 10:42 |
@wiking | so its really not that kind of a magic | 10:42 |
@wiking | there's a lot of switches in llvm | 10:42 |
@wiking | between these heuristics | 10:43 |
@wiking | apparently 10k+ lines of code | 10:43 |
@wiking | is just covering these heuristics | 10:43 |
@wiking | for various arch | 10:43 |
@wiking | so there's room for improvement there | 10:43 |
@wiking | :) | 10:43 |
gf712 | fair enough! | 10:44 |
@wiking | but yeah i mean i was just observing and looking at the output | 10:44 |
@wiking | :) | 10:44 |
gf712 | do they update -O3 with these new parameters they find? | 10:44 |
@wiking | well | 10:44 |
@wiking | this is all experimental | 10:44 |
@wiking | D: | 10:44 |
@wiking | :> | 10:44 |
@wiking | so it's not part of mainline | 10:44 |
@wiking | but i guess one day | 10:44 |
@wiking | but i. mean this is what Chris et al is doing with llvm | 10:44 |
@wiking | at g | 10:45 |
@wiking | :) | 10:45 |
gf712 | it would be vcool they have a model that runs in your machine | 10:45 |
gf712 | determines the flags | 10:45 |
@wiking | guess why if you look at the mailinglist of llvm | 10:45 |
gf712 | and that is your -O3 | 10:45 |
@wiking | most of the maintainers are at deepmind/gbrain | 10:45 |
gf712 | yea, has all the knowhow now... | 10:45 |
@wiking | btw what's the deal with that dude | 10:46 |
@wiking | who tried to compile shogun with swig 4.0? :) | 10:46 |
gf712 | ah I didn't see it | 10:46 |
gf712 | but I think I have tried it when it was in beta | 10:46 |
gf712 | and failed | 10:46 |
@wiking | https://github.com/shogun-toolbox/shogun/issues/4629 | 10:46 |
@wiking | apprently segfault | 10:46 |
gf712 | did it work with you? | 10:46 |
@wiking | haven't tried it | 10:46 |
gf712 | let me try now | 10:47 |
lisitsyn | wiking: sorry distracted | 10:50 |
lisitsyn | yes | 10:50 |
lisitsyn | ;) | 10:50 |
@wiking | lisitsyn: good | 10:50 |
@lambday | wiking: yo | 11:00 |
-!- geektoni [c1cdd253@gateway/web/freenode/ip.193.205.210.83] has quit [Ping timeout: 256 seconds] | 11:18 | |
-!- geektoni [c1cdd253@gateway/web/freenode/ip.193.205.210.83] has joined #shogun | 11:27 | |
@wiking | lambday: stiull here? | 11:53 |
@wiking | sorry was away | 11:54 |
-!- geektoni [c1cdd253@gateway/web/freenode/ip.193.205.210.83] has quit [Quit: Page closed] | 11:56 | |
@lambday | wiking: yeah, kind of :D | 12:00 |
@lambday | wiking: still awake? which timezone are you in right now? | 12:00 |
@wiking | cest | 12:01 |
@wiking | lambday: ok so i have one q | 12:01 |
@wiking | about mmd | 12:01 |
@lambday | wiking: yeah | 12:01 |
@wiking | https://github.com/shogun-toolbox/shogun/blob/develop/tests/unit/statistical_testing/internals/InitPerFeature_unittest.cc#L60 | 12:02 |
@wiking | this is https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/statistical_testing/internals/InitPerFeature.cpp#L53 | 12:03 |
@wiking | right? | 12:03 |
@lambday | wiking: yeah, looks that way... sorry I don't remember the particulars of it... | 12:04 |
@lambday | so this is the cast operator | 12:04 |
@lambday | yeah | 12:04 |
-!- essam [cfbd194e@gateway/web/freenode/ip.207.189.25.78] has quit [Quit: Page closed] | 12:06 | |
@lambday | pointer equality check forces the InitPerFeature thingi to be casted to CFeatures* ... this just checks that the values are the same... IIRC | 12:06 |
@wiking | yeo | 12:10 |
@wiking | so i changed this to | 12:10 |
@wiking | const shared_ptr<CFeatures> | 12:10 |
@wiking | and since then i get compiler error | 12:10 |
@wiking | :D | 12:10 |
@wiking | lambday: ideas? :) | 12:14 |
@lambday | wiking: :D you changed the cast operator to shared_ptr, right? | 12:16 |
@wiking | yes | 12:16 |
@lambday | then in the test you can just assign it to a shared_ptr<CFeatures> variable... and then compare the orig ptr with the shared ptr variable.get() for ptr equality | 12:17 |
@lambday | I guess | 12:17 |
@lambday | the cast operator get's checked when you do the assignment | 12:17 |
@wiking | i mean everything else works | 12:18 |
@wiking | but this gives a compiler error | 12:18 |
@wiking | because 2 diff type are being compared | 12:18 |
@wiking | note | 12:18 |
@wiking | the right hand side of that comparison | 12:19 |
@wiking | is a shared_ptr<CDenseFeatures<...> | 12:19 |
@lambday | wiking: yeah... that won't work I think... you have to do it in 2 steps... other the compiler will fuck it up | 12:19 |
@wiking | would it help | 12:19 |
@wiking | if the rhs is shared_ptr<CFeatures> | 12:19 |
@wiking | or? | 12:19 |
@lambday | wiking: no.. the rhs would have to be a raw ptr.... so you assign it to a shared_ptr<CDenseFeatures<...>> variable... and then you call the .get() method on that variable to get the const raw ptr and put that on the rhs | 12:20 |
@wiking | eh | 12:21 |
@wiking | i mean | 12:21 |
@wiking | shared_ptr<> == shared_ptr should work | 12:21 |
@wiking | no?:) | 12:21 |
@wiking | Note that the comparison operators for shared_ptr simply compare pointer values; the actual objects pointed to are not compared. Having operator< defined for shared_ptr allows shared_ptrs to be used as keys in associative containers, like std::map and std::set. | 12:21 |
@wiking | mmm | 12:21 |
@wiking | brb | 12:21 |
@lambday | umm let me check if they have == operator override for raw ptr equality | 12:22 |
@lambday | wiking: sure.. yeah checked the doc... if both lhs and rhs are shared_ptr for ==, it would work just as well.. :) | 12:23 |
@lambday | but in order for that to work, you have to either (a) add an/replace the assignment operator for shared_ptr for this class here (https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/statistical_testing/internals/InitPerFeature.h#L55) or (b) create a shared ptr obj in the test with the original data and then do the check | 12:29 |
@wiking | lambday: yeye everything becomse shared_ptr | 12:47 |
@wiking | see https://github.com/shogun-toolbox/shogun/pull/4619 | 12:47 |
gf712 | wiking: have you seen this lib https://github.com/jmmartinez/easy-just-in-time ? | 12:53 |
@wiking | yep yep | 12:53 |
@wiking | tried it | 12:53 |
@wiking | :) | 12:53 |
gf712 | good? | 12:53 |
@wiking | its nice | 12:53 |
gf712 | watching the talk now | 12:53 |
gf712 | seems pretty cool | 12:53 |
gf712 | wiking: btw I found an issue with swig 4 and shogun | 12:54 |
gf712 | created a pr but I am not sure how it wasn't an issue before | 12:54 |
@lambday | wiking: files changed 1245!! | 13:08 |
@wiking | lambday: heheh yeah | 13:09 |
@wiking | the aim is that i take all lines in the codebase | 13:09 |
@wiking | :D | 13:09 |
@wiking | lambday: but yeah libtooling FTW | 13:09 |
@wiking | :P | 13:09 |
@wiking | no fucking way i could have done this by hand | 13:09 |
@lambday | wiking: you're gonna break github.. | 13:09 |
@wiking | already did | 13:09 |
@wiking | try to use | 13:09 |
@wiking | jump to file | 13:09 |
@wiking | ;) | 13:09 |
@lambday | wiking: MSFT fucked up another decent product then | 13:10 |
@lambday | or it was never tested at this scale | 13:10 |
@lambday | :D | 13:10 |
@lambday | wiking: haha jump to file shows "The table of contents is too big for display." xD | 13:10 |
@wiking | yep | 13:11 |
@wiking | :) | 13:11 |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 13:11 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 13:18 | |
-!- mode/#shogun [+o wiking] by ChanServ | 13:18 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 14:07 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 14:15 | |
-!- mode/#shogun [+o wiking] by ChanServ | 14:15 | |
-!- geektoni [c1cdd24a@gateway/web/freenode/ip.193.205.210.74] has joined #shogun | 14:23 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 14:34 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 14:44 | |
-!- mode/#shogun [+o wiking] by ChanServ | 14:44 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 252 seconds] | 14:48 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 15:05 | |
-!- mode/#shogun [+o wiking] by ChanServ | 15:05 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 15:22 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 15:25 | |
-!- mode/#shogun [+o wiking] by ChanServ | 15:25 | |
-!- wiking_ [~wiking@huwico/staff/wiking] has joined #shogun | 15:27 | |
-!- mode/#shogun [+o wiking_] by ChanServ | 15:27 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 244 seconds] | 15:29 | |
-!- HeikoS [~heiko@73.red-83-46-178.dynamicip.rima-tde.net] has joined #shogun | 15:30 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 15:30 | |
-!- rcurtin [~ryan@knife.lugatgt.org] has quit [Quit: Lost terminal] | 15:31 | |
-!- HeikoS [~heiko@73.red-83-46-178.dynamicip.rima-tde.net] has quit [Ping timeout: 255 seconds] | 15:35 | |
-!- HeikoS [~heiko@148.pool85-48-188.static.orange.es] has joined #shogun | 15:59 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 15:59 | |
gf712 | HeikoS: ping | 16:07 |
-!- HeikoS [~heiko@148.pool85-48-188.static.orange.es] has quit [Remote host closed the connection] | 16:23 | |
-!- wiking_ [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 16:26 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 16:46 | |
-!- mode/#shogun [+o wiking] by ChanServ | 16:47 | |
-!- HeikoS [~heiko@1.pool85-48-188.static.orange.es] has joined #shogun | 16:48 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 16:48 | |
@HeikoS | gf712: pong | 16:48 |
-!- gf712_ [9052087c@gateway/web/freenode/ip.144.82.8.124] has joined #shogun | 16:51 | |
gf712_ | HeikoS: I think the arff stuff is fine now | 16:51 |
gf712_ | and would be good to test out openml stuff | 16:51 |
@HeikoS | gf712_ hi! yes just looking at it | 16:52 |
gf712_ | ok! | 16:52 |
gf712_ | openml stuff is getting there | 16:52 |
-!- gf712 [9052087c@gateway/web/freenode/ip.144.82.8.124] has quit [Ping timeout: 256 seconds] | 16:52 | |
@HeikoS | I am not sure I have too much to say about the general design of this thing, only minor comments mostly | 16:52 |
-!- gf712_ is now known as gf712 | 16:53 | |
gf712 | ok! the thing is that it might be around for too long as is considering Viktor wants to refactor the whole serialisation stuff | 16:53 |
@HeikoS | sorry what do you mean | 16:54 |
@HeikoS | around for too long? | 16:54 |
@HeikoS | and can you explain the connection with serialization stuff | 16:54 |
gf712 | well, if Viktor changes the serialisation it will have to be rewritten | 16:54 |
@HeikoS | ah | 16:54 |
@HeikoS | ok, why is that? | 16:54 |
@HeikoS | and I have a q about the time stuff | 16:54 |
gf712 | so that it has same API | 16:54 |
gf712 | I think no> | 16:54 |
gf712 | ? | 16:54 |
gf712 | and then the serialiser will have to use the visitor pattern | 16:55 |
@HeikoS | ah I see | 16:55 |
@HeikoS | okok | 16:55 |
@HeikoS | sure thing | 16:55 |
@HeikoS | I will comment on the PR but leave merging it to Vik then | 16:55 |
@HeikoS | but the serialization ... we wanted to change that for years :) ... so it might take a while | 16:56 |
@HeikoS | on the other hand we have the ws soon :) | 16:56 |
@HeikoS | so the time stuff | 16:56 |
@HeikoS | I think converting things to the time since bla ... I don't know is that a good idea | 16:56 |
@HeikoS | and then it turns into DenseFeatures right? | 16:56 |
gf712 | yes, I didn't know what else to do with it... | 16:56 |
gf712 | to me it's a "universal" way of representing time | 16:57 |
@HeikoS | it is | 16:57 |
@HeikoS | ok the problem is that shogun doesnt support metadata | 16:57 |
gf712 | and then then use can do processing | 16:57 |
@HeikoS | yeah ok | 16:57 |
@HeikoS | that is probably fine for now | 16:57 |
@HeikoS | we can add datetime metadata later with the environmental folks | 16:57 |
@HeikoS | ok another q I have | 16:58 |
gf712 | yea, they will probably need! | 16:58 |
@HeikoS | you use CombinedFeatures | 16:58 |
gf712 | yup, because I need strings | 16:58 |
gf712 | as in stringfeatures | 16:58 |
@HeikoS | can you explain? | 16:58 |
@HeikoS | ah | 16:58 |
@HeikoS | well no ... please go ahead :) | 16:59 |
@HeikoS | why not a list of CFeatures* ? | 16:59 |
gf712 | well I needed to have dense and string features in the same container | 16:59 |
@HeikoS | because that is what combinedfeatures does right? | 16:59 |
gf712 | but wouldnt that be the same? | 16:59 |
gf712 | I can change it | 16:59 |
@HeikoS | yes, but slimmer | 16:59 |
@HeikoS | id say rather than abusing the combined features thing as a list, use a list directly | 17:00 |
@HeikoS | or a std::vector | 17:00 |
@HeikoS | of CList | 17:00 |
@HeikoS | (which then later can be refactored to use std:: stuff) | 17:00 |
gf712 | ok, I am thinking CList then no? because of swigh | 17:00 |
gf712 | swig | 17:00 |
@HeikoS | yes true | 17:01 |
@HeikoS | problem here is | 17:01 |
@HeikoS | that CList returns CSGObject | 17:01 |
@HeikoS | and I am sure that the CombinedFeatures::get(index) returns CFeatures | 17:01 |
@HeikoS | so maybe ... | 17:01 |
@HeikoS | CombinedFeatures is good | 17:02 |
@HeikoS | I am not sure | 17:02 |
@HeikoS | it feels weird ;) | 17:02 |
gf712 | I mean if we replace CDynamicObjectArray with std::vector | 17:02 |
gf712 | in CombinedFeatures | 17:02 |
gf712 | it shouldn't be too bad no? | 17:02 |
@HeikoS | well | 17:03 |
@HeikoS | CombinedFeatures are meant for MKL learning | 17:03 |
gf712 | ahh | 17:03 |
@HeikoS | combinedKernel + combinedFeatures | 17:03 |
@HeikoS | so that you can have an svm | 17:03 |
@HeikoS | that operates on say one string kernel and one gaussian kernel | 17:03 |
gf712 | ok ok I get it the issue now :D | 17:03 |
@HeikoS | and those need different feature types | 17:03 |
@HeikoS | so combined features is there to group different feature types...so kind of what you want here ... | 17:04 |
gf712 | HeikoS: the sparse format can be added somewhat easily | 17:05 |
gf712 | ill just have to read the arff spec again | 17:05 |
@HeikoS | ok cool no need to have tha tnow | 17:06 |
@HeikoS | gf712: pretty nice work btw | 17:08 |
gf712 | thanks! was good to practice some parsing in c++ :D | 17:08 |
-!- essam [c0c8120e@gateway/web/freenode/ip.192.200.18.14] has joined #shogun | 17:09 | |
@HeikoS | hehe yeah :) | 17:12 |
@HeikoS | gf712: I bet it is fast! | 17:14 |
gf712 | HeikoS: what do you mean? | 17:16 |
@HeikoS | the parsing | 17:16 |
@HeikoS | faster than a python parser | 17:16 |
gf712 | ah yes, unless I messed it up | 17:17 |
gf712 | I think Scipy has a arff parser, but I don't know in what language it is written | 17:17 |
@HeikoS | probably | 17:17 |
@HeikoS | c99 inside cython | 17:17 |
geektoni | ping HeikoS | 17:18 |
@HeikoS | geektoni: hi ! | 17:18 |
geektoni | HeikoS: I'm skimming the list of algorithms in the proposal which need to be made observable | 17:19 |
geektoni | I wonder | 17:19 |
@HeikoS | ah cool | 17:19 |
geektoni | if there are like "priorities" | 17:19 |
@HeikoS | I was about to check the LDA one | 17:19 |
@HeikoS | can you send me a link | 17:19 |
@HeikoS | so we can quickly discuss | 17:19 |
geektoni | HeikoS: https://docs.google.com/document/d/17LioVPBuyn4G2uDy0PbmpZAjJxt_wg105SblKcPyLtY/edit | 17:20 |
geektoni | because atm I'm looking at SVM and MKL | 17:20 |
@HeikoS | I would say | 17:21 |
@HeikoS | kmeans | 17:21 |
@HeikoS | knn | 17:21 |
@HeikoS | rf | 17:21 |
@HeikoS | neural nets | 17:21 |
@HeikoS | gmm | 17:21 |
@HeikoS | actually first gmm and nns the other way | 17:22 |
@HeikoS | so kmeans you can emit the current centroids | 17:22 |
geektoni | I see I see | 17:22 |
@HeikoS | knn I wonder what to emit | 17:22 |
@HeikoS | rf you can emit something about the forest | 17:22 |
@HeikoS | gmm you can emit the likelihood and the gaussians | 17:22 |
@HeikoS | GP for the variational you can emit the ELBO value | 17:23 |
@HeikoS | skip Laplace and EP for now | 17:23 |
@HeikoS | for the NNs you can emit something like the error function value | 17:23 |
@HeikoS | for MKL you can emit the current kernel weights | 17:24 |
@HeikoS | is that enough for now? :D | 17:24 |
geektoni | ahah more that enough | 17:24 |
geektoni | MKL is huuuge | 17:24 |
@HeikoS | yes | 17:24 |
@HeikoS | dont spend too much time on it | 17:24 |
@HeikoS | I would go from simple to complex | 17:24 |
@HeikoS | as in "everyday"-use algorithms first | 17:24 |
@HeikoS | then more complex ones | 17:24 |
geektoni | sure sure | 17:24 |
geektoni | HeikoS: ah btw, as a side task, I'm trying to port everything to put/get when I can | 17:26 |
@HeikoS | geektoni: just commented on that | 17:26 |
@HeikoS | I dont think this is the best idea | 17:26 |
@HeikoS | it moves the type safety to runtime | 17:27 |
@HeikoS | and there could be typos in the strings | 17:27 |
@HeikoS | I would keep the put for the users | 17:27 |
@HeikoS | ah | 17:28 |
geektoni | ahh you are right. my mistake, no idea why I didn't use the templated put | 17:28 |
geektoni | HeikoS: I removed those checks because it is using dispatching | 17:29 |
@HeikoS | ah ok | 17:29 |
geektoni | and with that I'm sure that I will get those type of features | 17:29 |
@HeikoS | all good then :) | 17:29 |
@HeikoS | made some comments on the PR geektoni | 17:32 |
geektoni | HeikoS: thanks! I'll have a look | 17:33 |
gf712 | HeikoS: i am not sure how to do write a getter with type dependency | 17:36 |
@HeikoS | gf712: it would have to be in the ctor somehow? | 17:36 |
gf712 | just looking at File.h | 17:36 |
gf712 | ah you mean you ask for it before parsing? | 17:36 |
gf712 | I thought you meant the getter would request a type | 17:37 |
gf712 | and then can cast to that type in the getter | 17:37 |
gf712 | but yea I can also just have templated class | 17:37 |
gf712 | or with an enum | 17:38 |
-!- HeikoS [~heiko@1.pool85-48-188.static.orange.es] has quit [Quit: Leaving.] | 17:38 | |
gf712 | wiking: plans to manipulate ast from C++ for reflection.. its going to get messy :D https://www.youtube.com/watch?v=CRDNPwXDVp0&list=PLHTh1InhhwT6V9RVdFRoCG_Pm5udDxG1c&index=11 | 18:03 |
-!- gf712 [9052087c@gateway/web/freenode/ip.144.82.8.124] has quit [Ping timeout: 256 seconds] | 18:19 | |
-!- geektoni [c1cdd24a@gateway/web/freenode/ip.193.205.210.74] has quit [Quit: Page closed] | 18:25 | |
-!- essam [c0c8120e@gateway/web/freenode/ip.192.200.18.14] has quit [Quit: Page closed] | 19:40 | |
-!- priyanka [8b050b63@gateway/web/freenode/ip.139.5.11.99] has joined #shogun | 20:30 | |
priyanka | Hello All!! I am interested in participating in GSOD and I have some doubts | 20:31 |
-!- ussdd95[m] [ussdd95mat@gateway/shell/matrix.org/x-ladezbdjcasuwxcn] has quit [Quit: Idle kick: User has been idle for 30 days.] | 20:33 | |
-!- priyanka [8b050b63@gateway/web/freenode/ip.139.5.11.99] has quit [Ping timeout: 256 seconds] | 20:56 | |
-!- priyanka [9d25d395@gateway/web/freenode/ip.157.37.211.149] has joined #shogun | 21:06 | |
-!- priyanka [9d25d395@gateway/web/freenode/ip.157.37.211.149] has quit [Client Quit] | 21:07 | |
-!- rcurtin [~ryan@knife.lugatgt.org] has joined #shogun | 21:58 | |
--- Log closed Thu May 16 00:00:17 2019 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!