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/
chenzhe has quit [Quit: chenzhe]
kris1 has left #mlpack []
mikeling has joined #mlpack
sgupta1 has joined #mlpack
sgupta has quit [Ping timeout: 255 seconds]
aashay has joined #mlpack
sgupta1 has quit [Ping timeout: 240 seconds]
s1998 has joined #mlpack
Trion has joined #mlpack
s1998 has quit [Read error: Connection reset by peer]
vivekp has quit [Ping timeout: 240 seconds]
vivekp has joined #mlpack
mikeling has quit [Quit: Connection closed for inactivity]
shikhar has joined #mlpack
shikhar_ has joined #mlpack
shikhar has quit [Ping timeout: 246 seconds]
mikeling has joined #mlpack
shikhar_ has quit [Quit: WeeChat 1.7]
shikhar has joined #mlpack
< zoq> ironstark: Hello, have you had a chance to write a blog post yet? let us know if there are any issue.
Trion has quit [Quit: Have to go, see ya!]
< shikhar> zoq: Are builds on Jenkins allowed to use more than 1 core?
< zoq> shikhar: Depending on the job, yes if we start e.g. the matrix build bascially all 72 cores are used, since we start a bunch of jobs in parallel, so we have to find some reasonable values.
< shikhar> Alright, thanks :)
< shikhar> The Travis job finished but the times are nearly the same
< zoq> okay, I guess in this case no need to go with -j4
< rcurtin> there's not really good support for load balancing with Jenkins, so I'd suggest to use only one core for each build on Jenkins
kris2 has joined #mlpack
Trion has joined #mlpack
sgupta has joined #mlpack
< sgupta> rcurtin: hi! I am taking a debian as base. My question is, since we are creating a new user let say mlpack who doesn't have root privileges, doesn't we have to build mlpack beforehand inside the container?
Trion has quit [Quit: Have to go, see ya!]
< sgupta> rcurtin: I have tried lot many things and for debian, the size is 387 MB in which ~270 MB is our dependencies and rest is base image and necessary packages.
vivekp has quit [Ping timeout: 245 seconds]
vivekp has joined #mlpack
shikhar has quit [Quit: WeeChat 1.7]
aashay has quit [Quit: Connection closed for inactivity]
< zoq> ironstark: Pelican is picky when it comes to the metadata, 'Date: 2017-06-07 15:00:00' should work.
< ironstark> zoq: Updated
< zoq> ironstark: Looks great, thanks for the update.
< ironstark> :-)
< zoq> Actually I think if someone is interested to extract the meta information from the commit itself, I'm here to help :)
mikeling has quit [Quit: Connection closed for inactivity]
< rcurtin> sgupta: I'm not sure what you mean, the idea of the container is to provide an environment in which mlpack can be built, so we can't build mlpack in the Dockerfile
< rcurtin> do you want to open a PR with the smaller debian image? I can take a look and see if I can think of any more optimizations
aashay has joined #mlpack
kris2 has quit [Ping timeout: 240 seconds]
kris1 has joined #mlpack
< kris1> zoq: While running sgd we update the iterate('parameters') using the currenct_function('data point') at each iteration. we update the parameters of network. But now the parameters of the network have only changed right but the parameters of the layers that comprise the network have not changed. can you explain this? I need this for writing the cd-k algorithm
< zoq> kris1: hm, I think I have to see the code, to help you with the issue
< kris1> which code do you mean the sgd.hpp??
< kris1> or my cd-k code ??
< zoq> The code that you use to produce the issue.
< zoq> Something with a simple test case (something I could run), would be great.
< kris1> I have not written the rbm model so writing test would be a little difficult.
< kris1> Here is the revised vanilla rbm implementation https://gist.github.com/kris-singh/a5de37f17d68c9d11fbdb05bcb57dafc
< kris1> in the case of rbm i would want to forward propagate after the parameters of the network have been changed after finding the gradients on one of the data points. But for running the forward function, I would have to call the forward_visitor on all the layers in the network.
< kris1> My question is that how did the weights of layers that make up the network got updated
< kris1> Did you get my point?
< zoq> ah, ah, I think I misunderstood your question, you don't have an issue, you like to know how the layer parameter are updated, right?
< kris1> Yes
< zoq> So, that's relative simple, you call the optimizer with your parameter matrix:
< zoq> optimizer.Optimize(parameter);
< zoq> The parameter matrix contains all layer parameter. You basically pass the layer parameter to the optimizer.
< zoq> So, if you have one layer e.g. Linear you basically do: optimizer.Optimize(linear.Parameters());
< zoq> If you have more than one layer you can use the FFN class, or another class, that does the wrapping for you.
< lozhnikov> kris1: If I understand your question right that happens here (core/optimizers/sgd/sgd_impl.hpp:111 for example)
< lozhnikov> updatePolicy.Update(iterate, stepSize, gradient);
< zoq> right
< zoq> In your code it's: iterate += stepSize * gradient;
< zoq> btw. template<typename RBMType>CDK<RBMType>::Optimise(arma::mat iterate) should be template<typename RBMType>CDK<RBMType>::Optimise(arma::mat& iterate)
< lozhnikov> kris1: I'll look through your code in detail tomorrow and then I'll add some comments (now it's too late, it's time to sleep:)).
< kris1> okay lozhnikov:
< zoq> Btw. has anybody seen a good movie lately or can recommend something?
< rcurtin> I saw a movie called "CHAPPiE" some weeks back, I very much enjoyed it
< rcurtin> it's by the same director who did District 9
< rcurtin> but I dunno if that is the kind of movie you are looking for :)
pretorium[m] has quit [Ping timeout: 240 seconds]
< zoq> that's the one with the robot right?
< zoq> I guess, I have seen a poster.
< kris1> zoq: parameters matrix is a local matrix right . I do get the point that we update the parameter matrix. But every individual layer also has its own parameters. which we set using boost::apply_visitor(WeightSetVisitor(std::move(parameter),offset), network[i]); here we are setting the layer parameters for every layer in the network. But we do not do this when we are optimise.
pretorium[m] has joined #mlpack
vivekp has quit [Ping timeout: 240 seconds]
< kris1> Does the parameters matrix contain reference's(address) to the parameters of the individual layer matrix. I don't think so>
< kris1> ?
vivekp has joined #mlpack
< zoq> Sounds interesting, speaking of District 9, waiting for part 2
< zoq> The other way around, the layer bascially hold references to the local parameter matrix of e.g. FFN
< lozhnikov> kris1: look at methods/ann/ffn_impl:128
< lozhnikov> The FFN class passes parameters to the optimizer
< rcurtin> zoq: yeah, it is an interesting scifi story based around AI
< rcurtin> like many movies the technical details can be shaky at times but at one point they do actually correctly run some code on GPUs
< kris1> Yes, i think i get it now. The individual layer parameters are reference's to the parameter matrix of the FFN network. That would make sense
< rcurtin> weird to see a monitor in a movie with a valid bash shell running valid commands :)
< zoq> :)
< zoq> Have you seen Ex Machina? really liked the setting.
< zoq> kris1: yes, right
< kris1> So basically WeightSetVisitor makes the layer parameters point to the network parameters am i thinking correctly
< lozhnikov> kris1: yeah
< kris1> Ahhh great!!! thanks lozhnikov zoq
< kris1> lozhnikov i just wanted to ask you one thing i have implemented the visible and hidden layer right now. But they don't much right now ie their forward function serves as an identity function. Should i change that and sigmoid(Linear(input) + bias) but that would require me to template the visible layer to accept Linear and sigmoid layer.
< kris1> or should i just make a visible layer and concat it with linear and sigmoid layer typedef that layer
< rcurtin> zoq: I haven't, I'll add that one to my list
< lozhnikov> kris1: I think you can define Linear and Sigmoid as private members of the visible and layers
< lozhnikov> *and hidden
< rcurtin> I've been wanting to see Shaft for a few weeks now but that is a very different type of movie :)
< kris1> Hmmm but that would restrict it's usage.....template would be a better solution i guess
< kris1> lozhnikov:
< lozhnikov> I think it is definitely a good idea to pass VisibleLayerType and HiddenLayerType to the RBMType class as template parameters
< zoq> rcurtin: Not sure I heard of Shaft, just looked at the wiki page.
< lozhnikov> kris1: So the implementation of these layers will completely define the type of the RBM
< kris1> Yes i am doing that now. But i am implementing the forward_visible function in the rbm right now using forward_visitor. I actually wanted to move it to the visible layer but that would require me to either use linear and sigmoid as primitive types or as template parameters to the visible layer
< kris1> template parameters would give it more flexibility in case someone would later can also use linear+tanh for defining the visible layer
< lozhnikov> kris1: ok, I understand you. Maybe that is a good idea
< zoq> rcurtin: Btw. did you get a chance to look into: https://github.com/mlpack/mlpack/issues/1011#issuecomment-304718538
< zoq> I can fix the issues, but I think in case of e.g.
< zoq> adjustedScore = lastScore + lastQueryDescDist;
< zoq> adjustedScore = lastScore + lastRefDescDist;
< zoq> you know what to do
< rcurtin> yeah, I have some changes in progress
< rcurtin> I'll push what I have to a branch later tonight
< rcurtin> the score issue needed some further thought
< zoq> ah, okay great