IRC logs of #shogun for Thursday, 2018-05-24

--- Log opened Thu May 24 00:00:19 2018
-shogun-buildbot:#shogun- Build nightly trusty deb #165 is complete: Success [build successful] - http://buildbot.shogun-toolbox.org:8080/#builders/26/builds/16503:02
@sukey[https://github.com/shogun-toolbox/shogun] Issue https://github.com/shogun-toolbox/shogun/issues/430003:33
@sukey[https://github.com/shogun-toolbox/shogun] Issue https://github.com/shogun-toolbox/shogun/issues/4300 opened by vigsterkr03:33
-!- shogun-buildbot [~shogun-bu@7nn.de] has quit [Ping timeout: 245 seconds]03:45
@sukey[https://github.com/shogun-toolbox/shogun] New commit https://github.com/shogun-toolbox/shogun/commit/ee3da845c7e82a1cb4a2d08cdcaa3ded2a3d23e3 by vigsterkr03:46
-!- shogun-buildbot [~shogun-bu@7nn.de] has joined #shogun03:46
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4301 opened by vinx1304:33
-shogun-buildbot:#shogun- Build nightly jessie deb #153 is complete: Success [build successful] - http://buildbot.shogun-toolbox.org:8080/#builders/20/builds/15305:04
-shogun-buildbot:#shogun- Build nightly stretch deb #116 is complete: Success [build successful] - http://buildbot.shogun-toolbox.org:8080/#builders/38/builds/11605:04
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4302 opened by vinx1305:32
-!- shubham808 [0e8bf0fb@gateway/web/cgi-irc/kiwiirc.com/ip.14.139.240.251] has joined #shogun07:43
shubham808Hello, today i will be implementing the progress bar in most of the algorithm from the wiki page i made07:44
wuweiwiking: i'm still stuck in refcount problem07:52
wuweiwe can't unref in transformer::apply07:52
wuweiit doesnt work for swig, for example in python07:53
wuweiprocessed = transformer.apply(input)07:53
wuweiinput is unrefed, and then swig tries to delete input again07:54
wuweithat causes segment fault07:54
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4301 closed by vinx1308:08
@wikingwuwei, hey08:36
wuweiwiking: hi08:36
@wikingmmmm08:36
@wikingyo umean the cycle when you do transpormer.apply(input) { SG_REF(input)...... SG_UNREF(input)? }08:37
@wiking?08:37
wuweiapply { SG_UNREF(input); SG_REF(result); }08:37
wuweithat's what we have in apply08:38
wuweithat works in cpp08:38
@wikingmmm08:38
wuweibut the input object in swig becomes invalid, and swig tries to delete again08:38
@wikingit should be08:38
@wikingapply { SG_REF(input) ..... SG_UNREF(input); SG_REF(result);08:39
@wikingstill08:39
@wikingit could still drop the stack08:39
@wikingthe reason you need to do the SG_REF in the beginning08:39
@wikingthat you make sure that nobody tries to delete input while you do stuff with it08:39
@wikingbut on the end you should unref it08:40
@wikingsince you dont use it anymore (swig might still be using it08:40
wuweisure08:40
wuweibut then we should always unref input mannually08:40
wuweie.g. feats = transformer->apply(feats)08:40
wuweiin this case, memory leaks08:40
@wikingyou mean if things is in place?08:41
@wikingyeah but you should unref the output08:41
@wikinganyways08:41
wuweiyeah, we need result = apply(feats); unref(feats)08:42
wuweithat's a bit annoying,  we always need to use a new variale name08:44
@wikingso lets say in c++08:44
@wikingyou would do this08:44
@wikinginput = new DenseFeatures...08:44
@wikingauto result = transform::apply(input);08:44
@wikingsg_unref(input)08:45
@wikingno08:45
@wikingso the last 2 lines should be08:45
@wikingsg_unref(input);08:45
@wikingsg_unref(result);08:45
@wikingright?08:45
wuweiexactly08:45
@wikingok so the problem could be in this case is08:45
@wikingthat if you do a SG_REF(input).... SG_UNREF(input)08:46
@wikinginside apply08:46
@wikingthen actually input will be freed08:46
@wikingright?08:46
wuweiyeah08:46
@wikingbecause before transform::apply(input)08:46
@wikinginput.ref_count() = 008:47
@wikingok so in this case you can do internally a trick08:47
@wikingthat inside transporm::apply()08:47
@wikingif(input.ref_count() > 1) SG_UNREF(ref_count)08:49
@wikingSG_UNREF(input)08:49
wuweithat works, really tricky :)08:49
@wiking:P08:49
@wikingit's a bit shitty08:49
@wikingbut should work08:49
@wikingit shoudl work...08:49
@wikingimo08:49
@wikingbut lemme know if you still have problems08:50
wuweigreat! tests passed :)08:50
wuweibtw i'm a little confused about alphabet in string features08:52
wuweion how histogram in alphabet is maintained08:52
@wikingmmm08:52
@wikinggood question08:52
@wiking:D08:52
wuweiin StringFeatures::obtain_from_chars, histogram is not updated08:53
wuweiand if you then try to create a copy, StringFeatures(original.get_features(), original.get_alphabet())08:54
wuweiit fails08:54
wuweicuz check_alphabet_size won't pass08:54
wuweithat's whats happening on travis08:54
@sukey[https://github.com/shogun-toolbox/shogun] Issue https://github.com/shogun-toolbox/shogun/issues/4303 opened by vigsterkr08:54
wuwei:)08:54
@sukey[https://github.com/shogun-toolbox/shogun] Issue https://github.com/shogun-toolbox/shogun/issues/4303 vigsterkr added label: "development tasks"08:54
@wikingooogh08:54
@wikinglemme check08:55
wuweiyou could also check the example preprocessor_sortulongstring.py08:56
wuweiin fact i think when you calls obtain_from_char, then you will get characters beyond the alphabet you have08:57
@sukey[https://github.com/shogun-toolbox/shogun] Issue https://github.com/shogun-toolbox/shogun/issues/4304 vigsterkr added label: "development tasks"09:07
@sukey[https://github.com/shogun-toolbox/shogun] Issue https://github.com/shogun-toolbox/shogun/issues/4304 opened by vigsterkr09:07
@wikingmmm09:10
-!- shubham808 [0e8bf0fb@gateway/web/cgi-irc/kiwiirc.com/ip.14.139.240.251] has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]09:33
-!- shubham808 [0e8bf0fb@gateway/web/cgi-irc/kiwiirc.com/ip.14.139.240.251] has joined #shogun09:33
-!- shubham808 [0e8bf0fb@gateway/web/cgi-irc/kiwiirc.com/ip.14.139.240.251] has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]09:40
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4305 opened by shubham80809:40
-!- shubham808 [0e8bf0fb@gateway/web/cgi-irc/kiwiirc.com/ip.14.139.240.251] has joined #shogun09:41
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4301 reopened by vinx1309:56
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4301 closed by vinx1311:27
-!- shubham808 [0e8bf0fb@gateway/web/cgi-irc/kiwiirc.com/ip.14.139.240.251] has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]11:30
-!- shubham808 [0e8bf0fb@gateway/web/cgi-irc/kiwiirc.com/ip.14.139.240.251] has joined #shogun11:30
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has joined #shogun11:32
-!- mode/#shogun [+o HeikoS] by ChanServ11:32
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4297 merged by karlnapf11:54
@sukey[https://github.com/shogun-toolbox/shogun] New commit https://github.com/shogun-toolbox/shogun/commit/911d35d1bc5667d86f84c1077ab005299324f901 by karlnapf11:55
-shogun-buildbot:#shogun- Build trusty - libshogun - viennacl #478 is complete: Failure [failed update shogun (failure)] - http://buildbot.shogun-toolbox.org:8080/#builders/6/builds/47811:55
-shogun-buildbot:#shogun- Build deb1 - libshogun #449 is complete: Failure [failed update shogun (failure)] - http://buildbot.shogun-toolbox.org:8080/#builders/10/builds/44911:55
@sukey[https://github.com/shogun-toolbox/shogun] Issue https://github.com/shogun-toolbox/shogun/issues/4299 closed by karlnapf11:56
-!- shubham808 [0e8bf0fb@gateway/web/cgi-irc/kiwiirc.com/ip.14.139.240.251] has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]11:57
-!- shubham808 [0e8bf0fb@gateway/web/cgi-irc/kiwiirc.com/ip.14.139.240.251] has joined #shogun11:59
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4302 merged by karlnapf12:11
@sukey[https://github.com/shogun-toolbox/shogun] New commit https://github.com/shogun-toolbox/shogun/commit/5d65aa6955079a5f37e6804189c58d11ddf74ad2 by karlnapf12:11
@HeikoSwiking: jo!12:12
@wikingho12:12
@HeikoSshall I dare to remove RealFetaures from SWIG?12:12
@HeikoSor do that after release?12:12
@wikingafter12:15
@wikingbetter12:15
@wikingthis one is really not about api changes12:15
@wikingi mean they are there12:15
@wikingbut not feature complete :)12:15
@wikingso let's leave that for 7.012:15
@wikingor?12:15
@HeikoSyeah I was thinking that12:16
@wikingbtw: how do u feel about this https://github.com/shogun-toolbox/shogun/issues/430412:16
@HeikoSyep I think that's good12:16
@HeikoSfor internal use12:16
@wikingyeah i mean external even :)12:16
@wikingi mean think about somebody wanna do some automl shit12:16
@wiking:D12:16
@wikingusing shogun you need to manually do some mappers12:16
@wikingfor each model12:17
@wikingthis way you can autodiscover12:17
@wikingwhat u could use12:17
@wikingand yeah i've added the other one12:17
@wikinghttps://github.com/shogun-toolbox/shogun/issues/430312:17
@wikingjust to see where and how it blows up12:17
@wiking:D12:17
@HeikoSyep!12:18
@HeikoSgood tests those are12:18
@HeikoSframework tests12:18
@HeikoSshogun is slowly becoming a framework ;D12:18
-!- shubham808 [0e8bf0fb@gateway/web/cgi-irc/kiwiirc.com/ip.14.139.240.251] has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]12:18
@wikingbtw i'm not so sure what should we do for things like this12:21
@wikinghttps://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/multiclass/LSHKNNSolver.cpp#L99-L11012:22
@wikingas this is going to be copy-pasted around12:22
@wikingand that's not good :)12:22
@wikingi mean similar code12:22
@wikingand actually if you have12:23
@wikinga test for the enum12:23
@wikingif ((lhs->get_feature_class() == C_DENSE) && (rhs->get_feature_class() == C_DENSE))12:23
@wikinginstead of doing auto features = lhs->as<CDenseFeatures<float64_t>>();12:23
@wikingauto features = (CDenseFeatures<float64_t>*)lhs;12:23
@wikingis what you want12:23
@wikinglisitsyn, ^12:23
@wikingand there was another problem HeikoS with linalg12:25
@wiking1) viannacl seems to be a bit active again.. yey!12:25
@wiking2) say we have a simple model implemented PURELY linalg::12:26
@HeikoSabout the first thing12:27
@HeikoSthis is a special case somehow as you need to provide falcon with the template12:27
@wikingyeye but i mean12:27
@HeikoSargument12:27
@wikingyou could give a lambda12:27
@wikingthat describes what to do within the typecheck12:27
@HeikoSbut in general, cant this be solved via a clean API12:27
@wikingso that's 'usersupplied'12:27
@HeikoSlike the algorithm asks the features for a DotIterator12:28
@HeikoSand then if that is not implemented, there is an error12:28
@HeikoSbecause dense and sparse should be behind a similar API imo12:28
@HeikoSfrom an algorithm perspective12:28
@HeikoSfor string it is different of course12:29
@HeikoSbut there again12:29
@wikingyeah but the check is the same12:29
@wikingsomething = C_STRING12:29
@HeikoSthe only algorithms that can deal with strings AND real are kernel based algorithms12:29
@wikingand then you do some casting12:29
@wikingand la12:29
@HeikoSand there we could hide things behind the kernel API12:29
@HeikoSso the algorithm never knows the feature type12:29
@HeikoSjust asks for the kernel between features12:29
@HeikoSand then that is computed if possible12:30
@HeikoSand otherwise error12:30
@wikingyeah but that's only kernelmethods12:30
@HeikoSdo we have other thigns that support string and real?12:30
@HeikoSor in general, things that support feature types that cant be joined behind the same API?12:30
@wikingmmm12:31
@wikingi think you are mixing now12:31
@wikingi'm really just solely talking about12:31
@wikingdispatching code12:31
@wikingand how to avoid insane amount of12:31
@wikingcopypasting around12:31
@wikingnot literally copypasting12:31
@wikingbut kind of having the same12:31
@HeikoSfor the falcon thing, i cant think of another way12:32
@wikingok but think about now the other KNN12:32
@wikingsay balltree12:32
@wikingand we have to do the same shit12:33
@wikingif.... foo() else bar()12:33
@HeikoSlike balltree for various feature types?12:33
@wikingelseif asdf12:33
@wikingthat's how every train()12:33
@wikingwill look like if you support more than12:33
@wiking1 type of features12:33
@HeikoSI would argue this is only the case when we use external libraries12:34
@HeikoSas the solver itself should be written against a "distance" or "dot" api12:34
@HeikoSfor which no casting should be necessary12:34
@HeikoSor rather no dispatching12:34
@HeikoSor maybe just dispatching under the hood, but not inside the train method12:34
@wikingwhat does under the hood mean in this context for u?12:35
@HeikoSfor example in KNN12:35
@HeikoSi want to access pairwise distances12:35
@HeikoSso I have an API that I give my features and it gives me distances12:35
@HeikoSno matter what the features are12:35
@HeikoSinside train method I mean12:36
@wikingmmm and what if i want to do this ? :)12:36
@wikingwhat i'm trying to say is that12:36
@wikingsay we have eveyrthing ready with plugins12:36
@wikingand somebody walks in with YOLO200012:36
@wikingand he wants to glue stuff12:36
@HeikoS(good algorithm btw, YOLO2000)12:36
@HeikoSnot sure I understand12:37
@wikingthere's a lot of code that needs to be written12:37
@wikingwhich is just copypaste-like stuff12:37
@wikingi mean for example12:38
@wikingwhere you just cant do an algo with DotIterator12:38
@wikingright?12:38
@wiking:)12:38
@HeikoSDotIterator, KernelIterator, DistanceIterator12:38
@HeikoSthose go a long way12:38
@HeikoSbut yeah there will be more12:38
@HeikoSand for those, there is the problem of dispatching of course12:39
@HeikoSI dont know how to solve it12:39
@HeikoSbut I dont know any algorithms right now where this would pop up tbh12:39
@HeikoSe.g. GPs need the feature matrix in cases12:40
@HeikoSbut it doesnt make sense with anything else that dense real data12:40
@HeikoSsome string algorithms need to access the strings12:40
@HeikoSbut these also dont make sense with other features than string12:40
@HeikoSso the only thing i can think of that mixes those are kernel algorithms12:41
@wikingsay u need llt cholesky12:41
@wikingof your input12:41
@HeikoSyeah GP need that12:41
@wikingthat works both for dense and sparse12:41
@wikingso you walk in and say12:41
@HeikoScholesky for sparse doesnt make too much sense12:41
@wikinglalala12:41
@wiking?12:41
@wikingok lets look another decomopsition12:42
@HeikoScholesky factor is always dense, even if it is of a sparse matrix12:42
@wiking:D12:42
@wikingi mean you input is needed12:42
@wikingas is12:42
@wikingand not via iterable12:42
@HeikoSSGMatrix features.get_factorisation12:42
@HeikoSSGMatrix features::get_sparse_factorisation()12:43
@HeikoSwe dont have that12:43
@wikingin this case12:43
@wikingwhy do you care if its get_sparse_factorisation or get_factorisation12:43
@wiking:)12:43
@HeikoSand I agree if used linalg directly, that doesnt work as linalg wants a typed matrix12:43
@wikingi mean features will tell12:43
@HeikoSsome factorizations are sparse12:43
@HeikoSsome are dense12:43
@HeikoScholesky is always dense12:43
@HeikoSso both work12:44
@HeikoSdense_feats.get_cholesky()12:44
@HeikoSsparse_feats.get_cholesky()12:44
@wikingyeah but now you are doing something12:44
@wikingthat we kept undoing12:44
@wiking:)12:44
@wikingloading operators over objects12:44
@HeikoSsure12:44
@wikingand till now everyghing was converging12:45
@wikingthat you wanna do this via linalg12:45
@wikingnow suddenly we'll have a mixture of things12:45
@wikingi mean i dont mind12:45
@HeikoSDotIterator is the same no?12:45
@wikingjust currently this is not at all cleared up12:45
@wikingwhat sense?12:45
@HeikoSthere is some external code that you give features and it provides you with a way of accessing them12:45
@HeikoSI mean I agree with you12:45
@HeikoSjust saying this is what I meant when I said one can behind things behind an API12:46
@HeikoSlinalg is different12:46
@HeikoSit currently wants SGMatrix<float64_t>12:46
@wikingah so this is 'under the hood'12:46
@wikingyeah sure12:46
@wikingi mean that's just because its way unfinished12:46
@HeikoSyeah12:46
@wikingi mean currently we dont even do12:47
@wikinglinalg::dot12:47
@wikingover sparse vectors12:47
@wiking:P12:47
@HeikoSyeah12:47
@HeikoSactually12:47
@HeikoSnow this discussion makes me think whether we even want this12:47
@HeikoSsince this makes it mandatory inside the train method to know the exact type12:47
@HeikoSwhich means we need to have the copy paste mess12:47
@HeikoSbut what we want in the train method is just "dot product"12:48
@HeikoSor "cholesky factor"12:48
@HeikoSsince that is how the algorithm is defined12:48
@HeikoSso linalg design--12:48
@HeikoSnot sure what is the best way out of this12:48
@HeikoSI personally really like the DotIterator12:48
@HeikoSsince this solves so many problems12:48
@HeikoSyou can do basic type dispatching once before you start iterating (cheap)12:49
@HeikoSyou can offer it for sparse/dense under the same API12:49
@HeikoSyou know that you will iterate so it can be done fast12:49
@wikingsorry back12:49
@wikingok so there's another story here12:50
@wikingand this is the story of12:50
@wikingYOLO200112:50
@HeikoSlol12:50
@wikingsay i use linalg:: all the way12:50
@wikingso my way of thinking was12:50
@wikinglalala i'm nice and good12:50
@wikingnow it should be device agnostic12:51
@wikingis it really? :D12:51
@wikingie i dont see what will trigger something running on GPU or CPU12:51
@wikingin this case12:51
@HeikoSi think CPU/GPU should be define within the train method12:51
@wikingwhy?12:52
@HeikoSas it is quite hard to infer what is best there12:52
@wikingwhat i mean12:52
@HeikoSand algorithm design changes quite a bit12:52
@wikingwhy cant i have either?12:52
@wikingreally how?12:52
@wikingkmeans?12:52
@HeikoSwell, there is GPU versions of many algorithms and they look quite different12:52
@HeikoSe.g. for SVM solvers12:52
@wikingagain YOLO2001 is a simple algo12:53
@wikingno magic shit12:53
@HeikoSi see12:53
@wikingi do a) b) and thats all12:53
@wikingmeasure distances12:53
@wikingand then whatever12:53
@HeikoSwell as it is now, the caller of linalg has to decide12:53
@wikingyeah12:53
@HeikoSi.e. author of YOLO200112:53
@wikingi know12:53
@HeikoSnot the guy who runs it12:53
@wikingwhich imo is not the best12:53
@wikingsee tf12:53
@wikingthose are all agnostic12:54
@wikingright :)12:54
@HeikoSyeah I know12:54
@HeikoSthats better12:54
@wikingi mean you cannot switch runtime12:54
@wikingi give u that12:54
@wikingbut on the other hand12:54
@wikingoperators are agnostic of device12:54
@HeikoSthey are12:54
@wikingi mean from the user (algo implementer) perspective12:54
@HeikoSindeed12:54
@HeikoSand as such, this shouldnt be in the algo12:54
@HeikoSi agree12:54
@wikingso12:54
@wikingfickfuck12:55
@wiking:)12:55
@wikingfyi https://github.com/thrust/thrust12:55
@wikingSTL-like stuff12:55
@wikingthat is totally device agnostic12:55
@wiking:P12:55
@HeikoSbut still12:56
@HeikoSML algorithms are different12:56
@HeikoSthe algorithms DO change when doing CPU / GPU12:56
@wikingmmm12:56
@wikingi would beg to differ12:56
@wikingit's not *always* the case12:57
@HeikoSand sure in tf you can choose12:57
@HeikoSyeah not always of course12:57
@wikingso i mean12:57
@HeikoSjust I have seen many instances of it12:57
@wikingif your operators12:57
@wikingare agnostic12:57
@wikingsay linalg or tf12:57
@wikingthen as the story tells you12:57
@wikingactually things work12:57
@wikingpretty good12:57
@wiking= tf12:57
@HeikoSand also I have seen many instances of really inefficient things being done on the GPU since somebody just took some tf code and made it run on GPu12:57
@HeikoSand in tf, most things run on GPU since most things are matrix operations anyways, so the whole library is built for that12:58
@HeikoSit is more that is ALSO runs things on cpu if one wants12:58
@HeikoSit's complicated :/12:58
@wikingno it's not12:59
@wikingi dont think its' that complicated12:59
@HeikoSat the end of the day, I guess a framework should give freedom to both algorithm authors and users12:59
@wikingits just maybe things need some changes12:59
@wikingas as of now12:59
@wikingor as things is now12:59
@wikingyou cannot drive as a user anything12:59
@HeikoSi agree12:59
@wikingi mean honestly13:00
@wikingif we have SGVector13:00
@HeikoSmmh but it is also hard13:00
@wikingthat is strictly user facing interface13:00
@HeikoShow does the user specify that a shogun algo should run on gpu?13:00
@wikingand there we do on an operator[](index_t i)13:00
@HeikoSdoes he have to specify for every vector where it is?13:00
@HeikoSor just globally?13:00
@wikinga check every time where the memory resides13:00
@wikingthen i would think that this is something that is user bsed and not hidden behind13:00
@wikingthe algo13:00
@wikingbecause if you wanna strictly confine within an alog13:01
@wiking*algo13:01
@wikingwhere is what done13:01
@wikingthen the person should know what the heck he is doing :)13:01
@HeikoStrue13:01
@wikingand no need for operator[] (index_t i) { assert_on_cpu();13:01
@wikingfor SGVector13:01
@wikingbecause then you do GPUVector13:01
@wikingand that's all13:02
@wiking:)13:02
@wikingso there's a mixing of things here13:02
@wikingthat actually are pointing to different directions13:02
@HeikoSyes there is like multiple bigger design questions13:02
@wikingand currently we try to sit on 2 horses13:02
@wikingbut we are actually sitting on the ground13:02
@HeikoSwe are stitting in the horse-poo man13:03
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4285 synchronized by vinx1313:46
@wikingHeikoS, here?14:23
@wikinghave u tried this14:25
@wikinghttp://h2o-release.s3.amazonaws.com/h2o/master/3867/docs-website/h2o-py/docs/modeling.html?highlight=klime#h2oklimeestimator14:25
@wikinganyhow things like this we dont have at all14:27
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has quit [Ping timeout: 240 seconds]15:09
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has joined #shogun15:24
-!- mode/#shogun [+o HeikoS] by ChanServ15:24
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4285 synchronized by vinx1315:30
wuweiwiking: how do u see alphabet things:  histogram not updated, alphabet type is wrong, when you call obtain_from_char from string features15:58
wuweithat's the last thing to be fixed now for my pr15:58
@wikingmmm15:58
@wikingi have now a meeeting15:58
@wikingbut after that i can check into that15:58
@wikingok?15:58
@wikingsorry15:58
@wikingtoday way too many interrupts15:59
wuweisure15:59
wuweino worry15:59
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has quit [Ping timeout: 264 seconds]16:03
wuweiso here are update for today: 1) updated notebooks 2) got ref count fixed 3) fixed some bug when i refactored preprocessors (most tests passed on travis now); tomorrow i'm going to: 1) fix string preproc 2) get doc updated 3) check & refactor ICA converters for the new api16:10
@wikingthnx!16:18
@wikingok so now i'll look into the histogram thiingy16:18
-!- HeikoS [~heiko@eduroam-int-pat-8-249.ucl.ac.uk] has joined #shogun16:19
-!- mode/#shogun [+o HeikoS] by ChanServ16:19
-!- HeikoS [~heiko@eduroam-int-pat-8-249.ucl.ac.uk] has quit [Quit: Leaving.]16:49
-!- Elfarouk [9cc5ae08@gateway/web/freenode/ip.156.197.174.8] has joined #shogun17:08
-!- Elfarouk [9cc5ae08@gateway/web/freenode/ip.156.197.174.8] has quit [Ping timeout: 260 seconds]17:18
-!- Elfarouk [9cc5ae08@gateway/web/freenode/ip.156.197.174.8] has joined #shogun17:21
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4294 synchronized by FaroukY17:32
Elfaroukwikingm Are you here?17:36
Elfaroukwiking17:36
-!- shubham808 [0e8bf0fb@gateway/web/cgi-irc/kiwiirc.com/ip.14.139.240.251] has joined #shogun17:37
ElfaroukIs anyone here?18:21
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4293 synchronized by geektoni18:24
-!- smatrix [9d276d40@gateway/web/freenode/ip.157.39.109.64] has joined #shogun18:41
smatrixhi18:42
-!- smatrix [9d276d40@gateway/web/freenode/ip.157.39.109.64] has quit [Client Quit]18:42
-!- shubham808 [0e8bf0fb@gateway/web/cgi-irc/kiwiirc.com/ip.14.139.240.251] has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]19:21
-!- smatrix [9d276d40@gateway/web/freenode/ip.157.39.109.64] has joined #shogun19:41
-!- smatrix [9d276d40@gateway/web/freenode/ip.157.39.109.64] has quit [Client Quit]19:42
@wikingElfarouk, yes now19:52
Elfaroukwiking: I am having a problem with serialisation of the new class. I tried changing all the Eigen::Matrix to SGMatrix and all the Eigen::Vector to SGVector and the files compiled nicely. But when I compiled the entire project, I got a serialisation error19:58
Elfaroukthat SGMatrix<stan::math::var> can not be serialised19:58
ElfaroukDo you think it'd be better to go back to Eigen::Matrix / Eigen::Vector ?20:06
@wikingmmm20:14
@wikingok20:14
@wikingso20:14
@wikingfor stan::math::var20:14
@wikinguse Eigen::Matrix / Eigen::Vector for the time being20:15
@wikingbut for Eigen::Matrix / Eigen::Vector <double>20:15
@wikinguse the SGstuff20:15
@wikingfor stan::math::var we need to fihure out something20:15
ElfaroukAlright then, I'll do that20:17
ElfaroukSure, I also emailed Heiko and he told me that serialization is only supported now for basic types20:18
-!- ChanServ [ChanServ@services.] has quit [shutting down]21:07
-!- ChanServ [ChanServ@services.] has joined #shogun21:13
-!- ServerMode/#shogun [+o ChanServ] by weber.freenode.net21:13
-!- ChanServ [ChanServ@services.] has quit [shutting down]21:22
-!- ChanServ [ChanServ@services.] has joined #shogun21:31
-!- ServerMode/#shogun [+o ChanServ] by weber.freenode.net21:31
-!- Trixis is now known as Guest4054821:34
-!- Guest40548 is now known as Trixis21:53
-!- Trixis is now known as Guest1444721:54
-!- Guest14447 [~Trixis@unaffiliated/trixis] has quit [Quit: ZNC 1.6.5 - http://znc.in]21:57
-!- Trixis_ [~Trixis@unaffiliated/trixis] has joined #shogun21:57
-!- Trixis_ is now known as Trixis21:57
@sukey[https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4294 synchronized by FaroukY22:06
-!- iglesiasg [~iglesias@f119189.upc-f.chello.nl] has joined #shogun22:36
-!- Elfarouk [9cc5ae08@gateway/web/freenode/ip.156.197.174.8] has quit [Quit: Page closed]22:38
-!- Elfarouk [695d4ff2@gateway/web/freenode/ip.105.93.79.242] has joined #shogun22:38
iglesiasgoh did not notice you were around, Elfarouk. hi!22:47
ElfaroukHey iglesiasg22:47
iglesiasgHow is it going?22:48
ElfaroukGood, finished all comments on the new PR. Now addressing the changes required in the cookbook. Part of it will need to change factory.h so that a class can be instantiated with a factory so i am just having a look at previous prs to see how they did it22:49
iglesiasgYeah, I just had a look at the new PR22:49
iglesiasgI think there are still more things pending on that one though22:49
iglesiasgDid you have a chat with wiking regarding the antipattern comment?22:50
ElfaroukI did, but we're having a problem with serialisation22:50
Elfaroukright now SGVector<stan::math::var> can't be serialised22:50
Elfaroukcause only basic types can be serialised22:50
iglesiasgOk22:51
ElfaroukSo I tried switching everything to SGVector and SGMatrix, but it broke it because of the serialisation, so he told me to revert them back22:51
iglesiasgWhat broke?22:51
iglesiasgI mean, what part of the code you are writing/executing relies on serialization?22:52
ElfaroukJust the: SGVector<stan::math::var> and SGMatrix<stan::math::var>22:52
iglesiasgI don?t understand22:52
Elfaroukoriginally in the PR I was using Eigen::Matrix< stan::math::var, Dynamic, Dynamic>22:53
iglesiasgok22:53
iglesiasgmore specific22:53
Elfaroukwiking told me that's anti shogun pattern22:53
iglesiasgyou were using it in a member?22:53
iglesiasgin implementation code?22:53
ElfaroukOhhh yes, as a member22:53
iglesiasgin the signature of a method?22:53
Elfaroukand in part of the implementation of a code22:53
iglesiasgok, clear22:53
iglesiasgit is good that you understand these things22:53
iglesiasgsaying an anti pattern per se does not explain you much22:54
ElfaroukYea so we said for now lets see it but we definitely need to address it22:54
iglesiasgdo you understand why using SGVector rather than Eigen types?22:54
Elfarouklets leave it*22:54
iglesiasgfor the member22:54
ElfaroukI think now I understand because of the serialization. You only support serializing members which are basic data types22:55
ElfaroukSGVector is a basic datatype22:55
Elfaroukbut now Eigen::Matrix22:55
Elfarouknot*22:55
iglesiasgserialization is important if you want to serialize :)22:55
iglesiasgafaik, the whole serialization topic is somewhat WIP22:55
iglesiasgso do not worry about it **unless* you have to use serialization for the stuff you are doing22:56
Elfarouk:D alright22:56
iglesiasgthat's why I asked before what part of your code **relies** on serialization22:56
iglesiasgapart from serialization, it is about swig and type maps22:56
ElfaroukAhaa I see.22:56
ElfaroukI'll go back to the cookbook and then have a look at the new comments on the new PR22:57
iglesiasgthe stuff that is part of the "public" interface should in principle be accessible from the swig interfaces22:57
iglesiasgthat requires mapping C++ types to whatever interface language is22:57
iglesiasgof course the tool, swig, does this for free for very common types22:58
iglesiasgbut it cannot know every possible type in advance!22:58
iglesiasghope that clarifies a bit22:58
ElfaroukOhh I see now. So If you want to include sth in the "public" interface, then it needs to be serializable so that SWIG can be able to handle it?22:59
iglesiasgno, it does not need to be serializable22:59
iglesiasgconnection to other languages via swig is in-memory23:00
iglesiasgotherwise imagine the overhead! :O23:00
iglesiasgserialization goes beyond in-memory transactions23:00
ElfaroukI see23:01
iglesiasgAnyhow, yes, I agree. Since we are getting a bit stuck and going often back and forth, which I understand can be frustrating for you, let's focus on getting the cookbook pr done23:01
iglesiasgthen we switch to the cost functions one23:01
iglesiasgI think the cookbook should be soon finished23:02
iglesiasgfor the cost functions we will need to discuss and sync more23:02
ElfaroukSure. Once I am done with the cookbook and its merged we can do a 15 minute hangout call maybe23:02
Elfaroukjust discuss next steps23:02
iglesiasgyep23:03
iglesiasgand it is very good in that sense that you have already opened this second pr23:03
iglesiasgas it is a base to guide the discussion23:03
ElfaroukCool then. I'll let you know once I am done :D23:04
iglesiasgsure23:04
iglesiasgjust keeping it as these last few days is perfect23:04
iglesiasgwe check github notifications and all that :)23:05
ElfaroukAlright then :D23:05
iglesiasgGood night!23:23
ElfaroukGood night~23:26
--- Log closed Fri May 25 00:00:21 2018

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