mlpack IRC logs, 2017-05-17

Logs for the day 2017-05-17 (starts at 0:00 UTC) are shown below.

May 2017
--- Log opened Wed May 17 00:00:09 2017
01:23 -!- mikeling [uid89706@gateway/web/] has joined #mlpack
03:22 -!- sumedhghaisas [81d70337@gateway/web/cgi-irc/] has quit [Quit: - A hand crafted IRC client]
04:21 -!- sumedhghaisas [81d70337@gateway/web/cgi-irc/] has joined #mlpack
04:25 -!- sumedhghaisas [81d70337@gateway/web/cgi-irc/] has quit [Client Quit]
06:21 -!- sumedhghaisas [81d70337@gateway/web/cgi-irc/] has joined #mlpack
06:31 -!- sumedhghaisas [81d70337@gateway/web/cgi-irc/] has quit [Quit: - A hand crafted IRC client]
07:00 -!- mentekid [] has quit [Quit: Leaving.]
07:20 -!- sumedhghaisas [81d70337@gateway/web/cgi-irc/] has joined #mlpack
07:27 -!- sumedhghaisas [81d70337@gateway/web/cgi-irc/] has quit [Quit: - A hand crafted IRC client]
09:20 -!- sumedhghaisas [81d70337@gateway/web/cgi-irc/] has joined #mlpack
09:33 -!- sumedhghaisas [81d70337@gateway/web/cgi-irc/] has quit [Quit: - A hand crafted IRC client]
13:16 -!- vivekp [~vivek@unaffiliated/vivekp] has joined #mlpack
14:26 < zoq> sumedhghais: I timed boost variant against boost visitor some weeks ago and could see any obvious performance improvements. The downside with boost variant is that it makes the construction of complex architectures really complicated like if you split your architecture into branches and merge them later on.
14:28 < rcurtin> zoq: do you mean "couldn't see any obvious performance improvements"?
14:28 < zoq> ah yeah, right, thanks for the correction
14:28 < rcurtin> :)
14:29 < rcurtin> when you say that you tested boost variant against boost visitor... I guess I am a little confused, I thought that the visitor paradigm was necessary to use boost::variant classes
14:31 < zoq> you are right once again, I was talking about variadic templates and std::tie against boost variant ...
14:31 < rcurtin> ah, right
14:32 < rcurtin> and the variadic template / std::tie approach is a lot closer to what Sumedh suggested in his code that he sent us some months back I think
14:32 < rcurtin> this is what I would have expected... but I can't say that I understand exactly what is going on with boost::visitor... it is very complicated
14:32 < rcurtin> every time I approach it, I can get to a point where I understand it, but then a week later I have forgotten the details :)
14:35 < zoq> I think variadic templates is what sumedh has in mind but not sure, I'll have to take a look at the code. I agree boost variant isn't really that easy to get, some parts are just magic.
14:36 < rcurtin> yeah, variadic templates seems to be what he does in his code:
14:36 < rcurtin> template<class... LayerType> class NeuralNetwork
14:37 < rcurtin> if I am remembering right that is what the ANN code originally was structured like
14:40 < zoq> yes, I guess we could support both strategies, if someone likes to take a shot at it and finds some reasonable performance improvements.
14:44 < rcurtin> if you saw no performance difference between the two approaches, I don't know if it's worth the time to pursue
14:45 < rcurtin> so I would think that only in the case that Sumedh can show some huge runtime difference between the approaches, only then would it be worth considering a giant refactor of the code
14:45 < rcurtin> but I suspect that boost::variant has enough magic inside of it that there won't be a big difference
14:50 < zoq> yeah, probably it is not worth the effort, but I guess let's see what Sumedh finds out.
15:15 < rcurtin> example auto-generated documentation for command-line programs and Python bindings:
15:16 < rcurtin> with this writing the PROGRAM_INFO() string is a little bit harder and you have to use auxiliary functions, but the nice thing is that the documentation will be auto-generated for all languages
15:33 < zoq> cool, I didn't thought about the code examples in the documentation, nice to see you also map the code snippets
15:36 < rcurtin> yeah, I will have to write a guide on "how to write a PROGRAM_INFO() string"
15:36 < rcurtin> since now you have to be careful with the language
15:36 < rcurtin> for a Python binding, the output parameters come back as the return value, in a dict
15:37 < rcurtin> but for a command-line binding, where to save the output parameters is specified as input
15:37 < rcurtin> so you have to be careful and write things like "the matrix may be saved with the (parameter name) output parameter", and not, e.g., "the file to save the matrix to is specified with the (parameter name) parameter"
15:41 < zoq> hm, it's not that simple as before but I guess you get used it.
15:44 < rcurtin> yeah, fortunately, it is a thing that you only have to write once
15:50 < zoq> right and it's still simple enough
17:31 -!- sumedhghaisas [81d70333@gateway/web/cgi-irc/] has joined #mlpack
18:10 -!- mikeling [uid89706@gateway/web/] has quit [Quit: Connection closed for inactivity]
20:30 -!- mentekid [] has joined #mlpack
21:33 -!- mentekid [] has quit [Quit: Leaving.]
21:43 -!- mentekid [] has joined #mlpack
23:16 -!- sumedhghaisas [81d70333@gateway/web/cgi-irc/] has quit [Quit: - A hand crafted IRC client]
--- Log closed Thu May 18 00:00:11 2017