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/
aashay has joined #mlpack
mentekid has joined #mlpack
mikeling|afk has joined #mlpack
mikeling|afk is now known as mikeling
sumedhghaisas has joined #mlpack
< rcurtin> ironstark: you'll probably have better luck in #shogun on Monday, I think maybe people aren't so active in there on the weekends
< sumedhghaisas> rcurtin: Hey Ryan
< sumedhghaisas> I also took a look at that boost::apply_visitor thing used in our neural networks ....
< sumedhghaisas> but it is still doing doing a loop over the layers stored in the vector
< sumedhghaisas> also I found this post
< sumedhghaisas> also in this post it says that uses function lookups
< rcurtin> how did you determine if it is doing a loop over the layers?
< sumedhghaisas> ahh no... I mean the layers instantiated in the neural network. Sorry
< sumedhghaisas> and each of that is a boost::variant
< sumedhghaisas> firstly I thought the layers are somehow connected statically to each other...
< sumedhghaisas> since I didn;t knew boost::variant worked
< rcurtin> unfortunately I won't be able to dig into this thoroughly unless you can produce (a) a demonstration showing that boost::variant is not able to statically put the network together and (b) a demonstration showing that this produces noticeable slowdown
< sumedhghaisas> ummm I am not sure about (b)... I could not find any justifiable source
sgupta1 has joined #mlpack
sgupta2 has joined #mlpack
< sumedhghaisas> they explain how boost::variant is implemented
< sumedhghaisas> so we store all the layers of the network in the vector... where each entry is a boost::variant object
< sumedhghaisas> and in the forward pass ... we go through the vector 1 by 1 and apply the visitor
< sumedhghaisas> so I thought the network is not statically put together ... cause we are storing the layers in a vector which is dynamically allocated...
< sumedhghaisas> I am not sure about the performance gain though so never mind... I was just trying to discuss the boost::variant thing... cause I got it totally wrong the first time
< sumedhghaisas> I thought before that it traverses the vector...
sumedhghaisas has quit [Quit: Ex-Chat]
sumedhghaisas_ has joined #mlpack
sumedhghaisas_ has quit [Remote host closed the connection]
chenzhe has quit [Ping timeout: 260 seconds]
sgupta2 has quit [Ping timeout: 246 seconds]
sgupta1 has quit [Ping timeout: 246 seconds]
sumedhghaisas has joined #mlpack
chenzhe has joined #mlpack
s1998 has joined #mlpack
chenzhe has quit [Quit: chenzhe]
govg has joined #mlpack
kris1 has joined #mlpack
shikhar has joined #mlpack
kris1 has quit [Ping timeout: 272 seconds]
govg has quit [Ping timeout: 260 seconds]
kris1 has joined #mlpack
Trion has joined #mlpack
govg has joined #mlpack
s1998 has quit [Ping timeout: 260 seconds]
kris1 has quit [Remote host closed the connection]
govg has quit [Ping timeout: 268 seconds]
< zoq> sgupta: Hey, just saw your blog post, really interesting, I like the Hemingway quote :) ... can you update the blog post date (2016 -> 2017)?
< sgupta> Oh yes. Sure :)
< zoq> sgupta: awesome now it's on top: http://www.mlpack.org/gsocblog/index.html
< sgupta> zoq: haha thanks :)
aneiman has joined #mlpack
< aneiman> hello
< aneiman> I I receive strange message "Invalid signature" on running mlpack decision tree
< aneiman> the full command line and output are here:
< aneiman> ~/mlpack-2.2.1/build/bin/mlpack_decision_tree --input_model_file ~/mlpack-2.2.1/build/test_nonlinsep.txt --output_model_file /tmp/out_dec_tree.csv [FATAL] invalid signature terminate called after throwing an instance of 'std::runtime_error' what(): fatal error; see Log::Fatal output Abort (core dumped)
< zoq> sgupta: I could probably find a Back to the Future quote that fits :)
< sgupta> zoq: Sure! That'll be fun
< aneiman> I use mlpack 2.2.1 , built on CentOs 2.6, 64 bit
< aneiman> Is it fixed in the further versions of mlpack?
< zoq> aneiman: Let's see, the first thing I notice is that you pass a model file 'input_model_file' (already trained model).
< zoq> aneiman: But probably you like to pass the matrix that contains the training points?
< aneiman> If the model is not trained yet, how I pass the input ?
< zoq> aneiman: --training_file or -t
< zoq> aneiman: take a look at: mlpack_decision_tree -h
< aneiman> The variant with the training file also doesnot give the result :
< aneiman> ~/mlpack-2.2.1/build/bin/mlpack_decision_tree --training_file ~/mlpack-2.2.1/build/test_nonlinsep.txt --output_model_file /tmp/out_dec_tree.csv [FATAL] Must specify --labels_file when --training_file is specified! terminate called after throwing an instance of 'std::runtime_error' what(): fatal error; see Log::Fatal output Abort (core dumped)
< aneiman> which labels file should I set?Should I extract the some labels from the input matrix ?
govg has joined #mlpack
< zoq> bin/mlpack_decision_tree -t test_nonlinsep.txt --labels_file test_labels_nonlinsep.txt --output_model_file model.xml --test_file test_nonlinsep.txt --predictions_file predictions.csv --probabilities_file probabilitie.csv
< zoq> If you do not pass a labels file the first row of the training file is used as labels.
witness_ has joined #mlpack
< aneiman> thank you ,zog
< zoq> aneiman: Glad I could help :)
< aneiman> Where can I read more about meaning of labels file? It is not clear for me
< zoq> take a look at the manpage: either mlpack_decision_tree -h or http://www.mlpack.org/docs/mlpack-git/man/mlpack_decision_tree.html
< aneiman> I mean more common info, not just usage
< zoq> It's just that some datasets, already contain the labels in most cases it's the last row, but some datasets split the labels so it comes in two files one that contains the features and another file for the labels.
< aneiman> Is it list of possible values of columns ?
< zoq> So if you have a dataset that contains the labels you do not have to pass "--labels_file" because it's the last row of the passed --training_file
< aneiman> is it last row or last column of the training set in case the unified file?
sgupta has quit [Ping timeout: 272 seconds]
< aneiman> thank you for the iris example
mentekid has quit [Quit: Leaving.]
< zoq> from your perspective it's the last column, right
< aneiman> many thanks,now it seems clear
mentekid has joined #mlpack
< zoq> another example is https://github.com/mlpack/mlpack/blob/master/src/mlpack/tests/data/GroupLens100k.csv that already contains the labels
< aneiman> thanks
vivekp has quit [Ping timeout: 260 seconds]
vivekp has joined #mlpack
Trion has quit [Quit: Have to go, see ya!]
Trion has joined #mlpack
govg has quit [Ping timeout: 268 seconds]
aneiman has quit [Quit: Page closed]
sgupta has joined #mlpack
< sgupta> rcurtin: how do I install packages in busybox? I looked at many places, using rpm dpkg. Nothing seems to work. Can you suggest something?
kris1 has joined #mlpack
< kris1> Lozhnikov: the above gist also has the implementation of vanilla_rbm.cpp. Please have a look when you have the time
< kris1> I did find the similar error here. but for me mlpack builds succesfully.
aashay has quit [Quit: Connection closed for inactivity]
govg has joined #mlpack
< rcurtin> sgupta: busybox has no package manager, you'd need to build all packages from source
< rcurtin> (that's ok, because in the end you'll be building containers with different compiler versions and different boost versions, etc., and all that will need to be hand-compiled)
< lozhnikov> kris1: I added some comments
< sgupta> rcurtin: okay :)
aashay has joined #mlpack
govg has quit [Ping timeout: 240 seconds]
sgupta has quit [Ping timeout: 268 seconds]
sgupta has joined #mlpack
Trion has quit [Quit: Have to go, see ya!]
sumedhghaisas has quit [Quit: Ex-Chat]
sumedhghaisas_ has joined #mlpack
sumedhghaisas_ has quit [Ping timeout: 260 seconds]
sumedhghaisas_ has joined #mlpack
sumedhghaisas_ has quit [Read error: Connection reset by peer]
sumedhghaisas__ has joined #mlpack
sumedhghaisas_ has joined #mlpack
sumedhghaisas__ has quit [Ping timeout: 260 seconds]
vivekp has quit [Ping timeout: 260 seconds]
vivekp has joined #mlpack
shikhar has quit [Quit: WeeChat 1.7]
< sumedhghaisas_> zoq: Hey Marcus
< sumedhghaisas_> a quick question
< sumedhghaisas_> my tests are failing so doing some bug testing
< sumedhghaisas_> on GRU
< sumedhghaisas_> so in LSTM ... the backward is returning
< sumedhghaisas_> g = boost::apply_visitor(deltaVisitor, output2GateModule);
< sumedhghaisas_> sorry thats my backward
< sumedhghaisas_> its returning
< sumedhghaisas_> g = boost::apply_visitor(deltaVisitor, input2GateModule);
< sumedhghaisas_> but the backward for an lstm gate should be the delta h^(t - 1) right?
< sumedhghaisas_> maybe I am missing something
< sumedhghaisas_> ahh sorry ... got my mistake
vivekp has quit [Ping timeout: 260 seconds]
vivekp has joined #mlpack
witness_ has quit [Quit: Connection closed for inactivity]
mikeling has quit [Quit: Connection closed for inactivity]
mentekid has quit [Quit: Leaving.]
< kris1> zoq: you there....
< kris1> Can you have a look at this
< kris1> i am having variadic template intialisation of GaussianDistribution(args...)
< kris1> can you help ??
< lozhnikov> kris1: I guess your question was about compilation errors. Thus, you forgot '*' at line 47 and '->' at line 41
< kris1> lozhnikov: Yup that works
< kris1> But why do we have to declare a pointer to ActivationFunction
< lozhnikov> kris1: since you use new at line 29
< kris1> Ohhh right
< kris1> Are you okay with this interface of the gibbs sampling. It's pretty simple solution to the other problems where having
mentekid has joined #mlpack
< lozhnikov> well, as for me the GibbsSampler class is too complicated. I prefer something like the BaseLayer class (methods/ann/layer/base_layer.hpp)
< kris1> I don't prefer using it as layer as it really only called by the CD-k algorithm or the sampling algorithm in rbm class. I think in its present form it serves out purpose well
< kris1> Also i think the real advantage of using layered architechture comes from using the backprop algorithm since we train our network using cd-k algorithm. I don't this it serves much use here.
< kris1> Though i did agree with your earlier point of using visible neurons and hidden neurons as layers.
< kris1> Do you see any disadvantages of using the gibbs sampler this way ? Lozhnikov:
pretorium[m] has quit [Ping timeout: 264 seconds]
< lozhnikov> The only disadvantage is that you can implement the same thing by means of the existing structures and the existing style
< kris1> Hmmm agreed.
< lozhnikov> And I am not sure that it is good to use such heavy classes as GaussianDistribution in order to sample a variable. As for me math::RandNormal() is better.
< kris1> Well the only restriction with our present implementation is that the ActivationClass should Random() function to sample as long as we have that we can use anything GaussianDistribution and math::RandNormal
< kris1> When i was implementing the gibbs layer in the layer base layer style i had some concerns and that's why i shifted towards this solution. I don't remember them now though maybe i it will come back to me :)
< lozhnikov> You've got another restriction: you use an instantiated object (I mean ActivationFnc) instead of static functions. But this is not a crucial point.
pretorium[m] has joined #mlpack
< kris1> What would be the advantage of using static function over a instantiated object. Except the memory of course.
< lozhnikov> I think an instantiated object needn't here. Moreover the ActivationFnc class can allocate memory in its constructor. I think static functions can solve this problem.
< kris1> lozhnikov: Could you send the gist of the static function based solution you have in mind. That would be really helpful.
< lozhnikov> kris1: I wrote an example a week ago: https://www.irccloud.com/pastebin/hiuZXY8l/sampler.cpp
mentekid has quit [Quit: Leaving.]
mentekid has joined #mlpack
< kris1> lozhnikov so the real advantage of using static function is that we would not need to assign memory to the ActivationFn Class right.(We could call with the class being instantiated)
< kris1> Right
< lozhnikov> Well, it is not obligatory that an instantiated object allocates memory... (but it can do that) So, I think that we shouldn't use instantiated objects if they are not needed
< kris1> okay lozhninkov i do get your point. I will work on it tomorrow.
< kris1> It's kinda late here
< lozhnikov> ok
kris1 has left #mlpack []
mentekid has quit [Quit: Leaving.]