verne.freenode.net changed the topic of #mlpack to: http://www.mlpack.org/ -- We don't respond instantly... but we will respond. Give it a few minutes. Or hours. -- Channel logs: http://www.mlpack.org/irc/
< rcurtin>
zoq: ironstark: it would probably be better to build R from source, but if that is too complex we can just install R via the package manager
< rcurtin>
I think it would be nice to benchmark against MachineLearning.jl and Shark, but MLlib's target is distributed systems, so I am not sure that would be a good comparison
< rcurtin>
if there is time for MLlib we can add it, but we have to be careful to point out that we're only using Spark on one machine, not multiple machines, so I think a lot of people would call that benchmark "unfair"
sumedhghaisas_ has quit [Ping timeout: 246 seconds]
< partobs-mdp>
By the way, how should I write a signature for the function that returns a reference to matrix slice?
< partobs-mdp>
So that I would be able to write F(1) = Join(F(2), F(3)), where F(1) returns (say) reference to the first column of some arma::mat, F(2) - second, and so on
< partobs-mdp>
(Update) I managed to hack around it by returning arma::subview_col<T> - at least it compiles ^_^
< partobs-mdp>
Although I can't help thinking about it as a hack :) What do you think?
< zoq>
Couldn't you use Join(F(2), F(3), F(1)) instead of using a subview?
< partobs-mdp>
But shouldn't F(1) then also be arma::subview_col<T>?
< partobs-mdp>
Like this: F(arma::Col, arma::Col, arma::subview_col)
< zoq>
Ideally you would use a template, so that you could use a subview.
< partobs-mdp>
Well, I do use templates in the code - I omitted them here for brevity
< zoq>
The advantage is that someone could use the code with arma::mat or subview.
< rcurtin>
don't worry about the style checks, they are part of a bad merge I did yesterday; I'll fix it tomorrow
< rcurtin>
ah actually I'll just go ahead and fix it now, I already have the commits...
< zoq>
Let me rerun #1044
< zoq>
it's green again
witness_ is now known as witness
govg has quit [Ping timeout: 240 seconds]
govg has joined #mlpack
Erwan_r1d1 has joined #mlpack
< Erwan_r1d1>
Hi
< zoq>
Erwan_r1d1: Hello!
< Erwan_r1d1>
I'd like to ask some help about serialization but I'm just parsing the logs first
< zoq>
Erwan_r1d1: Sounds good.
sumedhghaisas_ has quit [Ping timeout: 246 seconds]
< Erwan_r1d1>
Ok, logs partly answered my question, but not totally
< Erwan_r1d1>
I think the issue comes because of the interaction of boost and mlpack
< Erwan_r1d1>
Let me provide some context :
< Erwan_r1d1>
I have the following setup :
< Erwan_r1d1>
- an abstract class "Serializable" that provides a pure virtual "serialize" method and declare as friend the boost::serialization::access class. - a class "Sequence" that contains both a map of (std::string, mlpack::gmm::GMM) and a vector of pointers to class "Motion". Both Motion and Sequence inherit from Serializable, and Motion is an abstract class too. - a class "DMP" that inherits from Motion, is thus also "Serializable".
< Erwan_r1d1>
My issue is the following : to serialize all my classes, I need to use the macro BOOST_SERIALIZATION_ASSUME_ABSTRACT( Motion ) to declare this class as abstract, and BOOST_CLASS_EXPORT_GUID( DMP, "DMP") so that boost knows this class.
< Erwan_r1d1>
However, if I do that, my compilation fails because of the lower/uppercase difference between mlpack and boost :
< Erwan_r1d1>
12 In file included from /usr/include/boost/serialization/serialization.hpp:44: 13 /usr/include/boost/serialization/access.hpp:118:11: error: no matching member function for call to 'serialize' 14 t.serialize(ar, file_version); 15 ~~^~~~~~~~~
< Erwan_r1d1>
What is strange is that in my Sequence class, I'm not yet serializing the map of GMM. So I can't call the CreateNVP macro that is intented to solve the problem.
< Erwan_r1d1>
I guess the macro is somehow parsing the whole class and setting the serialize function ?
< Erwan_r1d1>
Anyway
< Erwan_r1d1>
If I don't use the "BOOST_CLASS_EXPORT...", everything compiles fine but I get a runtime error on unregistered class. If I add the "oa.template register_type<DMP>();" in Sequence serialize function, I get a segfault when the Motion classes are serialized (it loops till segfault).
< Erwan_r1d1>
To put things in order : I apparently need to use the EXPORT macro to avoid the runtime issues when serializing ; If I use this macro, I encounter the case-issue. Is there a way I can use the macro and avoid the issue ?
< Erwan_r1d1>
(thanks for reading, any help appreciated :) )
< zoq>
Erwan_r1d1: rcurtin has written the serialization code and I think once he gets back he will respond, unfortunately that might be tomorrow. So make sure to check the log: http://www.mlpack.org/irc/
sumedhghaisas_ has joined #mlpack
< Erwan_r1d1>
Yes, I checked :)
< Erwan_r1d1>
No problem, I can wait
< partobs-mdp>
zoq: Added the include you mentioned - I think we can merge the PR one the CI checks are over :)
kris1 has quit [Quit: kris1]
kris1 has joined #mlpack
kris1 has left #mlpack []
Erwan_r1d1 has quit [Quit: Page closed]
partobs-mdp has quit [Ping timeout: 268 seconds]
kris1 has joined #mlpack
sumedhghaisas_ has quit [Ping timeout: 246 seconds]
mikeling has quit [Quit: Connection closed for inactivity]
sumedhghaisas_ has joined #mlpack
sumedhghaisas_ has quit [Ping timeout: 246 seconds]
Sam_____ has quit [Ping timeout: 260 seconds]
sumedhghaisas_ has joined #mlpack
sumedhghaisas_ has quit [Remote host closed the connection]
sumedhghaisas has joined #mlpack
witness has quit [Quit: Connection closed for inactivity]
< rcurtin>
Erwan_r1d1: hmm, I had not considered more complex uses of serialization when I wrote that code
< rcurtin>
can you tell me if the following kind-of-ugly idea works...
< rcurtin>
instead of holding a std::map<std::string, gmm::GMM>, create a 'wrapper class' SerializableGMM that either inherits from GMM or holds a GMM object internally
< rcurtin>
and also has a serialize() function that just calls GMM::Serialize() (i.e. 'ar & data::CreateNVP(gmm)')
< sumedhghaisas>
rcurtin: Hey Ryan... I have fixed the comments and the batch size issue.
< sumedhghaisas>
although for that serialization comment. I don't know what to do.
< rcurtin>
yeah, the only problem is, I am about to go to the sydney aquarium, so it might be a little while until I respond :)
< rcurtin>
thanks for taking care of the batch size though
< rcurtin>
I'll make sure I respond to the serialization comment later today
< sumedhghaisas>
I think that the network is serialized solely in FFN and RNN
< sumedhghaisas>
ohh okay ... no problem :)
< sumedhghaisas>
till then I have to complete some tests for NTM
< rcurtin>
I think you might be right, I will have to check closely