Open in new window / Try shogun cloud
--- Log opened Thu May 08 00:00:39 2014
-!- thoralf [] has joined #shogun00:11
-!- thoralf [] has quit [Client Quit]00:13
-!- HeikoS [] has joined #shogun00:16
-!- mode/#shogun [+o HeikoS] by ChanServ00:16
-!- lisitsyn [~qdrgsm@] has joined #shogun00:20
-!- iglesiasg [] has quit [Quit: Leaving]00:20
-!- pickle27f [~pickle27@] has joined #shogun00:51
-!- pickle27f [~pickle27@] has quit [Quit: This computer has gone to sleep]01:08
-!- lisitsyn [~qdrgsm@] has quit [Quit: Leaving.]01:11
-!- rho__ [~quassel@] has quit [Ping timeout: 252 seconds]01:18
-!- Theo_ [8ca3fe9e@gateway/web/freenode/ip.] has quit [Ping timeout: 240 seconds]01:19
-!- khalednasr [~k.nasr92@] has joined #shogun01:32
-!- HeikoS [] has quit [Quit: Leaving.]01:35
-!- khalednasr [~k.nasr92@] has quit [Quit: Leaving]01:40
-!- soumyaC [uid15286@gateway/web/] has quit [Quit: Connection closed for inactivity]02:46
-!- PirosB3 [] has quit [Quit: PirosB3]03:27
-!- pickle27f [~pickle27@] has joined #shogun03:41
-!- pickle27f [~pickle27@] has quit [Quit: This computer has gone to sleep]03:53
-!- shogun-notifier- [] has joined #shogun05:25
shogun-notifier-shogun: Viktor Gal :develop * 8f7847e / CMakeLists.txt,cmake/FindPythonLibs.cmake:
shogun-notifier-shogun: Fix python interpreter and library version detection05:25
shogun-notifier-shogun: Viktor Gal :develop * 704010f / .travis.yml:
shogun-notifier-shogun: Enable ccache and caching the output of it on travis05:25
shogun-notifier-shogun: Viktor Gal :develop * e2dfa74 / .travis.yml:
shogun-notifier-shogun: Switch to anaconda when building python3.305:25
shogun-notifier-shogun: remove caching in travis as it is only available for private repositories05:25
shogun-notifier-shogun: Viktor Gal :develop * a0ed9b2 / .travis.yml:
shogun-notifier-shogun: travis: add fast_finish option and fix anaconda path05:25
shogun-notifier-shogun: Viktor Gal :develop * 7012034 / .travis.yml:
shogun-notifier-shogun: travis: upgrade miniconda version and activate conda environment05:25
shogun-notifier-shogun: Viktor Gal :develop * 93fec06 / .travis.yml:
shogun-notifier-shogun: travis specify PYTHON_LIBRARY for cmake when using miniconda05:25
shogun-notifier-shogun: Viktor Gal :develop * 3466b62 / .travis.yml:
-!- utsavjain [~utsav@] has left #shogun []05:37
-!- travis-ci [] has joined #shogun05:51
travis-ci[travis-ci] it's Viktor Gal's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun:
-!- travis-ci [] has left #shogun []05:51
-!- travis-ci [] has joined #shogun06:18
travis-ci[travis-ci] it's Viktor Gal's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun:
-!- travis-ci [] has left #shogun []06:18
-!- lambday [67157f4f@gateway/web/freenode/ip.] has joined #shogun06:22
-!- pickle27 [] has joined #shogun06:43
-!- iglesiasg [] has joined #shogun07:02
-!- mode/#shogun [+o iglesiasg] by ChanServ07:02
-!- pickle27 [] has quit [Remote host closed the connection]07:04
-!- Saurabh7 [~Saurabh7@] has quit [Ping timeout: 252 seconds]07:07
@iglesiasgHey guys07:27
shogun-buildbotbuild #295 of debian wheezy - memcheck is complete: Failure [failed memory check]  Build details are at  blamelist: Viktor Gal <>08:01
-!- iglesiasg [] has quit [Quit: Leaving]08:21
-!- shogun-notifier- [] has quit [Quit: transmission timeout]08:25
-!- witness___ [uid10044@gateway/web/] has joined #shogun08:29
-!- Saurabh7 [~Saurabh7@] has joined #shogun08:31
-!- Saurabh7 [~Saurabh7@] has quit [Quit: Leaving]09:44
-!- thoralf [] has joined #shogun10:35
-!- HeikoS [] has joined #shogun11:25
-!- mode/#shogun [+o HeikoS] by ChanServ11:25
-!- PirosB3 [] has joined #shogun11:39
-!- PirosB3 [] has quit [Quit: PirosB3]11:53
-!- PirosB3 [] has joined #shogun12:09
-!- soumyaC [uid15286@gateway/web/] has joined #shogun12:14
-!- HeikoS [] has quit [Ping timeout: 240 seconds]12:30
-!- Saurabh7 [~Saurabh7@] has joined #shogun12:39
-!- HeikoS [] has joined #shogun12:45
-!- mode/#shogun [+o HeikoS] by ChanServ12:45
-!- wiking_ [] has joined #shogun12:47
@HeikoSwiking_: hi! thanks a lot for the travis fix!12:48
-!- shogun-notifier- [] has joined #shogun12:48
shogun-notifier-shogun: khalednasr :develop * 1a9cb16 / / (8 files):
shogun-notifier-shogun: added more unit tests for neuralnets12:48
shogun-notifier-shogun: Heiko Strathmann :develop * c08dc9d / / (8 files):
shogun-notifier-shogun: Merge pull request #2210 from khalednasr/develop12:48
shogun-notifier-shogun: added more unit tests for neuralnets12:48
shogun-notifier-shogun: Wu Lin :develop * bfabcfa / / (8 files):
shogun-notifier-shogun: rename LogitPiecewiseBoundLikelihood class12:49
shogun-notifier-shogun: Heiko Strathmann :develop * bdaf87e / / (8 files):
shogun-notifier-shogun: Merge pull request #2214 from yorkerlin/rename_PiecewiseBoundLikelihood12:49
shogun-notifier-shogun: rename LogitPiecewiseBoundLikelihood class12:49
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 252 seconds]12:55
shogun-buildbotbuild #657 of FC19 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Heiko Strathmann <>, Wu Lin <>, khalednasr <>13:00
lambdayHeikoS: hey13:03
@HeikoSlambday: hey!13:04
@HeikoSjust commented on your stuff13:04
@HeikoSlambday: really like it13:05
@HeikoSthe traits13:05
lambdayHeikoS: checking your comment13:05
lambdayhaha :D13:05
@HeikoSand the precompiler settings ... very nice13:05
@HeikoSlambday: green from my side, so please go ahead13:05
lambdayso we'd use it like cmake -DSetLinalgBackend=Eigen3 ..13:05
lambdayalright :)13:05
lambdayHeikoS: plus I was thinking that pulling out some things from SGVector and SGMatrix and use this linalg methods instead internally13:06
lambdayso users won't have to bother at all13:06
lambdayjust would work13:06
lambdaywith whatever backend they choose13:06
shogun-buildbotbuild #2276 of bsd1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Heiko Strathmann <>13:09
@HeikoSlambday: yes very nice!13:10
@HeikoSlambday: that was the original motivation in fact13:10
@HeikoSlambday: all these ugly half-baked operations in there should go13:10
-!- PirosB3_ [] has joined #shogun13:10
@HeikoSlambday: like eigenvectors in SGMatrix, just so not clean13:10
-!- lambday [67157f4f@gateway/web/freenode/ip.] has quit [Ping timeout: 240 seconds]13:11
-!- lisitsyn [] has joined #shogun13:13
@HeikoSlisitsyn: pls comment in the shogun-team mail13:13
lisitsynHeikoS:already :)13:14
-!- lambday [67157f4f@gateway/web/freenode/ip.] has joined #shogun13:15
lambdayHeikoS: sorry I got dc :(13:15
lambdayso I think it can be used like cmake -DSetLinalgLib=Eigen3 ..13:16
shogun-buildbotbuild #658 of FC19 - libshogun is complete: Success [build successful]  Build details are at
lambdayjust checked how to do that - total novice in cmake :D13:16
wiking_lambday: do we really want compile time restriction on linalg engine?13:18
lambdaywiking_: I think its better otherwise its being too hard to maintain13:19
wiking_lambday: mmm but having it compile time is really a big restriction13:19
wiking_i mean it's just really fucking pain that one will have like13:19
wiking_4 different packages13:19
lambdaywiking_: only the global setting is set that way13:19
lambdaywiking_: we can use whatever we want in the code13:19
lambdayno matter what global setting was use13:20
wiking_yeah but see having it as a configure parameter13:20
wiking_it will make it compile time dependent13:20
-!- wiking_ is now known as wiking13:20
-!- wiking [] has quit [Changing host]13:20
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun13:20
-!- mode/#shogun [+o wiking] by ChanServ13:20
lambdaywiking: what's the restriction?13:20
@wikinglambday: just mentioned it above13:21
@wiking13:19 < wiking_> 4 different packages13:21
@wiking13:19 < wiking_> shogun-linalg-eigen13:21
@wiking13:19 < wiking_> shogun-linalg-viennacl13:21
lambdaywiking: well we do have checks for each of them whether they exist13:22
@wikingthat's another story13:22
@wikingi'm just saying13:22
lambdayand if I write a code using sg_linalg->set_backend(Eigen3)13:22
lambdaythen why can't we use -DSetLinalgBackend=Eigen3 instead?13:22
@wikingbecause that's runtime13:22
@wikingand what you are saying is compile time13:22
lambdaythat's better isn't it13:23
lambdayperformance wise13:23
-!- Netsplit *.net <-> *.split quits: sonne|work, PirosB313:23
-!- PirosB3_ is now known as PirosB313:23
@wikingi don't see why would there be performance difference13:23
lambdayno overhead of virtual calls13:23
@wikingif -DSetLinalgBackend == sg_linalg->set_backend(Eigen313:23
lambdaywiking: I guess its better when the alternative looks like this -
lambdaycheck LinearAlgebra.cpp line 8013:25
lambdaynow if that has to be done just for dot product13:26
lambday(and has to be done - for all PTYPES we need everything set)13:26
lambdaythen its a total nightmare13:26
lambdaymoving this pain in compile time is a better soln according to me13:26
lambdaythe code will be small and simple13:27
lambdaywhoa! sonney just added me to shogun maintainers :D13:27
@HeikoSlambday: congrats :)13:32
lambdayHeikoS: hehe thanks :D :D13:32
-!- Netsplit over, joins: sonne|work13:34
lambdaysonne|work: hey! :D13:34
@HeikoSwiking: so you think runtime solutions would be better?13:41
@HeikoSwiking: so we had a few examples where it showed an order of magnitude speedup if we dont do those calls.13:42
lambdayeven in terms of code managing its super bad :(13:42
@HeikoSwiking: this wont happen on all systems in the same way, but still some evidence13:42
@HeikoSwiking: I agree its painful to re-compile if one wants to change backend though - however, will people (apart from developers) really do that?13:43
@HeikoSlambday: now you can join us reviewing patches haha ;)13:46
lambdayHeikoS: haha :D13:46
lambdayHeikoS: thanks man! writing my thank you mail13:47
lambdayHeikoS: well, re-compile is required only when we want to change the global setting13:47
lambdayand if say, we changed set_backend(Eigen3) to set_backend(ViennaCL) in shogun classes, we're gonna have to recompile anyway13:48
lambdaythe users cannot use set_backend() from their code (and they shouldn't I guess - since as HeikoS said, we're not planning to be a linalg library :D)13:49
lambdaybut they can use any explicit backend they want13:49
@HeikoSlambday: so just to get this right, changing the default global backend (by shogun user) require re-compile, same for changing say only the linear solve solver used everywhere13:52
@HeikoSlambday: but the shogun developers can use specific implementations if they want13:52
@HeikoSthen those are fixed in shogun (and doe not require to re-compile things)13:53
lambdayHeikoS: you mean specific implementation, not using the global setting, right?13:54
lambdayit doesn't need to recompile13:54
lambdayonce I write the code, its there in the binary which method its gonna call - Eigen3 one or ViennaCL one13:54
lambdayso changing global backend isn't gonna change that13:55
lambdayeven a shogun user can use it this way13:55
lambdayimpl<some-template-params, Backend::Eigen3>::method(..)13:56
lambdaywe provide those other wrappers in src/linalg/modules for ease of use13:56
lisitsynargh I am sorry I am now folliwng that13:57
lisitsynso where do we stop lambday?13:58
lambdaylisitsyn: :D13:58
lisitsynis this the best solution found so far?13:58
lambdaythat's internal13:58
lambdaylisitsyn: wait let me show you13:58
lambdaylisitsyn: see? no backend13:59
lambdaylisitsyn: I am just saying, that *if* someone wants to use a specific backend, he can13:59
lambdayirrespective of what global backend was set13:59
lambdaylisitsyn: even better, we're put this inside SGVector::dot - so users would just do
lisitsynokay actually I have some weak objections on that ;)14:00
lambdaylisitsyn: on which one?14:00
lisitsyn'prefer non-member non-friend functions'14:01
lisitsynlinalg::dot<float, SGVector<float> >(a, b);14:01
lisitsyncan't we just infer these types?14:01
lisitsynwhy to put them here explicitly?14:01
lambdaylisitsyn: its because in linalg we're dealing with generic vectors and matrices14:01
lambdaylisitsyn: its going to be there already14:02
lisitsynehmm why not14:02
lisitsynshouldn't it be just inferred from a and b?14:02
lambdaylisitsyn: specialization for each PTYPE?14:02
lambdayof course can be done14:02
lambdayoverloaded methods?14:03
lisitsyntemplate <typename T> void someMyFunc(T a);14:03
lisitsyncalls with int14:03
lisitsyncalls with const char*14:03
lisitsynwhat restricts us to do the same thing?14:04
lambdaylisitsyn: I guess we can!14:04
lisitsynlambday: I see one thing14:05
lisitsynyou need float14:05
lisitsynto do that just put a typedef to SGVector14:05
lisitsyntypedef T ValueType;14:05
lisitsynso it would be like T::ValueType, T14:05
lambdaylisitsyn: where?14:05
lisitsynwhere T is SGVector<float>14:05
lambdaylisitsyn: oh in SGVector14:06
lisitsynjust inside SGVector14:06
lambdaythat's best solution!14:06
lambdaysame for SGMatrix14:06
lisitsynso we have14:06
lisitsynthat's cleaner14:06
lambdaygreat idea!14:06
lisitsynas for;14:06
lisitsynI think we don't need it14:06
lisitsynlets just keep sgvector clean14:06
lisitsynsee how they did that in viennacl14:06
lambdayin SGVector we already have it14:07
lisitsynlets drop it ;)14:07
lisitsynI think it would be better this way14:07
lambdayone problem though!14:07
lisitsynwhat's it?14:07
lambdaylisitsyn: ummm na its okay14:08
lambdayon second thought14:08
lisitsynwe can also have functions like14:08
lisitsynfill(x, 0);14:08
lambdaylisitsyn: well, actually I wanted this to work with Eigen3::Matrix<...>, ViennaCL::matrix .... everything..14:08
lisitsynfills matrix/vector with specified value14:08
lisitsynand so on14:08
lambdayso the typedef thig would work there or not I was confused14:08
lisitsyndot(Eigen3::Matrix, SGMatrix)14:09
lisitsynthis way?14:09
lambdaysome_method(Eigen3::Matrix, ...)14:09
lambdayI mean, internally we can totally use methods, move around objects from other libs14:09
lisitsynI lost it a bit14:10
lambdaye.g. get_cholesky().. method14:10
lisitsyndo we put cholesky stuff to linalg as well?14:10
lambdaylisitsyn: that's the dream!14:10
lisitsynok ok so14:11
lambdayI mean, we can use these methods to pass our local eigen3 matrices as well14:11
lisitsynyeah why not14:11
lambdaybut Eigen3::MatrixBase has this Scalar, right?14:11
lambdayso that can be used as typefef14:11
lambdaynot sure about ViennaCL14:11
lisitsynah I see14:11
lisitsynso you mean they typedef their type14:11
lisitsynwith different name14:11
lisitsynviennacl should eigen3 compatible14:11
lisitsynso if they have Scalar14:12
lisitsynlets have Scalar as well14:12
lambdayyep that's better14:12
lisitsynif they are really different14:12
lambdayif something fails - compilation error!14:12
lisitsynwe can actually select between Scalar or something else14:12
lisitsynsome trickery14:13
lambdayactually shouldn't be a problem14:13
lisitsynwhat I am sure about is that we shouldn't put these types here14:13
lisitsynC++ has good thing on types for that14:13
lambdaywhich ones?14:13
lisitsynI mean it can infer types and we can typedef things14:14
lambdayI am sure that its a better way14:14
lisitsynso if we have template parameters we don't need to put them explicit14:14
lambdayjust gotta make sure it works for those template <class Vector> type of things14:14
lambdaylisitsyn: viennacl calls this self_type14:22
lambdayno value_type14:22
lambdaylisitsyn: eigen3 calls scalar14:23
lisitsynlambday: ok so you need some selector14:23
lisitsynthere is a way14:23
lambdayadd another level14:23
lisitsynlambday: nah no no14:23
lisitsynlambday: you can do better14:24
lisitsynit looks like14:24
lambdayah IF thing14:25
lisitsynyeah we can do like that14:25
lambdayumm what about 3-4 backends?14:25
lisitsynI am not sure about details but should be solvable14:25
lambdayits gonna be a bit long14:26
lisitsynwhat's gonna be long?14:26
lambdaythis expression14:26
lambdaysay some other library calls it ValueType14:26
lisitsynwe just define some template struct14:26
lisitsyntemplate <typename T> Scalar14:26
lisitsynand partially specialize for SGVector/Eigen3/ViennaCl14:27
lisitsynthen we do14:27
lisitsyndot<Scalar<T>::type, T>14:27
lisitsynall you need to add a new type is to specialize Scalar thing14:27
sonne|workwiking: op lambday ...14:27
lisitsyngood enough? ;)14:27
lambdaylisitsyn: sounds great! let me try14:28
lambdaysonne|work: :D14:28
lisitsynlambday: you'd need template template though14:28
lisitsynah no14:28
lisitsynok easy thing14:28
lambdaylisitsyn: what is it14:29
lambday(btw I'm totally liking this :D)14:29
-!- PirosB3 [] has quit [Quit: PirosB3]14:30
lisitsyntemplate <template<class> class Storage, class Type> Scalar;14:30
lisitsyntemplate <> Scalar<SGVector<T>> { typedef T Type; };14:30
lisitsynsomething like that?14:30
lisitsyncould you try it so we can be sure it works14:30
lisitsynEigen3 matrix is not a template of one parameter though14:31
lisitsynthis sucks a bit14:31
lisitsynbut I am pretty sure we would resolve it whatever shit it takes14:31
lambdaylisitsyn: yeah I am trying - I'm sure there must be some way14:33
lambdayvariable template args14:38
lambdayso let it be like template <template<class,...> > struct Scalar14:39
lambdaythen we specialize for SGVector, Eigen3Vector etc14:39
lisitsynha yeah why not14:39
lambdaylisitsyn: let me try if it works14:40
-!- HeikoS [] has quit [Quit: Leaving.]15:09
-!- shogun-notifier- [] has quit [Quit: transmission timeout]15:49
-!- HeikoS [] has joined #shogun15:56
-!- mode/#shogun [+o HeikoS] by ChanServ15:56
-!- HeikoS [] has quit [Quit: Leaving.]16:04
-!- PirosB3 [] has joined #shogun16:11
shogun-buildbotbuild #296 of debian wheezy - memcheck is complete: Failure [failed memory check]  Build details are at  blamelist: Heiko Strathmann <>, Wu Lin <>, khalednasr <>16:14
-!- pickle27f [~pickle27@] has joined #shogun16:16
-!- lisitsyn [] has quit [Quit: Leaving.]16:28
-!- lambday [67157f4f@gateway/web/freenode/ip.] has quit [Ping timeout: 240 seconds]16:31
-!- Saurabh7 [~Saurabh7@] has quit [Read error: Connection reset by peer]17:06
-!- Saurabh7 [~Saurabh7@] has joined #shogun17:08
-!- Saurabh7 [~Saurabh7@] has quit [Ping timeout: 240 seconds]17:16
-!- HeikoS [] has joined #shogun17:29
-!- mode/#shogun [+o HeikoS] by ChanServ17:29
-!- HeikoS [] has quit [Ping timeout: 265 seconds]18:46
-!- thoralf [] has quit [Quit: Konversation terminated!]18:58
-!- PirosB3 [] has quit [Quit: PirosB3]18:58
-!- HeikoS [] has joined #shogun19:00
-!- mode/#shogun [+o HeikoS] by ChanServ19:00
-!- witness___ [uid10044@gateway/web/] has quit [Quit: Connection closed for inactivity]19:03
-!- thoralf [] has joined #shogun19:50
shogun-buildbotbuild #113 of osx2 - python is complete: Failure [failed test python modular]  Build details are at  blamelist: Viktor Gal <>19:52
-!- pickle27_ [~pickle27@] has joined #shogun20:06
-!- pickle27f [~pickle27@] has quit [Ping timeout: 258 seconds]20:09
-!- PirosB3 [] has joined #shogun20:13
-!- HeikoS [] has quit [Ping timeout: 258 seconds]20:13
-!- HeikoS [] has joined #shogun20:14
-!- mode/#shogun [+o HeikoS] by ChanServ20:14
-!- pickle27_ [~pickle27@] has quit [Quit: This computer has gone to sleep]20:16
-!- utsavjain [~utsav@] has joined #shogun20:21
-!- HeikoS [] has quit [Quit: Leaving.]20:37
-!- pickle27f [~pickle27@] has joined #shogun20:47
-!- utsavjain1 [~utsav@] has joined #shogun20:51
-!- utsavjain [~utsav@] has quit [Ping timeout: 250 seconds]20:53
-!- thoralf [] has left #shogun ["Konversation terminated!"]21:08
-!- thoralf [] has joined #shogun21:14
-!- iglesiasg [] has joined #shogun21:33
-!- mode/#shogun [+o iglesiasg] by ChanServ21:33
thoralfHey iglesiasg21:34
@iglesiasgHey thoralf21:36
-!- iglesiasg [] has quit [Quit: Leaving]23:14
-!- thoralf [] has quit [Quit: Konversation terminated!]23:22
-!- khalednasr [~k.nasr92@] has joined #shogun23:36
-!- utsavjain1 [~utsav@] has quit [Ping timeout: 252 seconds]23:55
--- Log closed Fri May 09 00:00:40 2014