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/
govg has quit [Ping timeout: 260 seconds]
govg has joined #mlpack
Mathnerd314 has quit [Ping timeout: 272 seconds]
nilay has joined #mlpack
< nilay> zoq: Hi, now I can complete training for the test net with one sample which uses inception layer. Like you said we use a small test with small input to check if forward output "looks correct". But how do we ensure the output looks correct?
nilay has quit [Ping timeout: 250 seconds]
mentekid has joined #mlpack
mentekid has quit [Ping timeout: 258 seconds]
govg has quit [Ping timeout: 252 seconds]
nilay has joined #mlpack
govg has joined #mlpack
nilay has quit [Quit: Page closed]
nilay has joined #mlpack
mentekid has joined #mlpack
< zoq> nilay: Hello, you can set the weights to some static value and compare it with a reference model or your own calculation.
< nilay> ok
mentekid has quit [Ping timeout: 252 seconds]
< nilay> zoq: does the Gradient method of inception layer look correct?
< zoq> nilay: at first glance, it looks good
< nilay> but then isn't this a problem for concat_layer, because we are only taking the base layers to concatenate, but we need the delta we have in the concat_layer for the gradient function of the bias_layer (which is below the base_layer)
mentekid has joined #mlpack
govg has quit [Ping timeout: 246 seconds]
Mathnerd314 has joined #mlpack
< zoq> nilay: I'm not sure I get the problem, if the network looks like {bias, concat(A, B)}, the concat layer passes the delta to A and B.
< nilay> zoq: are you saying i can pass the delta to the base layer and it'll all get handled
< zoq> If I didn't missed anything, yes
< nilay> zoq: so i have 4 base layers that i am passing to the concat_layer to concatenate them. Now when i am updating the gradient, i have the delta in the concat layer, but i want to be able to pass the delta to the bias layers which are under these base layers (only base_layers are only provided to us)
< nilay> do you see the problem?
< zoq> I'm not sure, so the concat layer is basically a BaseLayer but it take a bunch of layers as input right?
< nilay> it does not do any operation, it takes a bunch of layers as input, aggregates there output (forward pass), distribute errors (backward pass) and delta (gradient).
< zoq> So it returns the delta which can be used for the backward pass for the before the concat layer, I'm sorry I don't see a problem here, maybe you can write some proof of concept?
< zoq> I would recommend to finish the inception layer first, before moving on with the concat layer.
< nilay> inception layer is finished we just need to the small test you talked about
< zoq> in this case, I think we should finish that test first, and open a PR to get the code merged in.
< zoq> writing some good tests is always tedious work :(
< nilay> ok then, i'll write the test, one question, do we want to merge this code only or write a subnetwork_layer which can be duplicated better?
< zoq> I think we should first merge the inception layer, if it turns out a subnetwork would make things easier, we can open another PR.
< nilay> for the proof of concept about the previous discussion, inception layer does just that, we have a delta available to us in the Gradient function, now we use that delta not in the base layer but the bias layers which are under that base layer
< nilay> do people use subnetwork (layers like inception layer which are duplicated many times) in cnns today?
< zoq> But in the inception layer we do it manually, and if the the bias layer is not in the layer the surrounding cnn takes care of it.
< zoq> You mean inception layer A -> inception layer B -> ... -> inception layer N?
mentekid has quit [Ping timeout: 264 seconds]
< nilay> yeah subnetwork repeated many times in net, but may also have some other layers in between.
< zoq> yes, that's pretty common
< nilay> so such a layer would be good
< zoq> Yes, I think that would be a great addition.
< zoq> But it should work with every layer not just the inception layer.
< nilay> yes thats what i meant
< nilay> so i guess i will write the test first, and we'll discuss concat_layer later as i am not sure i got what you mean to say.
< zoq> sounds good
nilay has quit [Quit: Page closed]
mentekid has joined #mlpack
mentekid has quit [Ping timeout: 246 seconds]
mentekid has joined #mlpack
Aterons has joined #mlpack
< Aterons> Could anyone here spend a few minutes answering a complete newbi question about the Cpp API ?
< zoq> Aterons: Hello, we are here to help, don't hesitate to ask questions :)
mentekid has quit [Ping timeout: 246 seconds]
< Aterons> Hmh, I had thought I figured it out, but apparently not. I guess what I should ask really is: Should I be able to construct MLpack obejcts using mat/vectors declared "inside" the program or do they need to be loaded from CSV files ?
< Aterons> eg if I have "LinearRegression linR(d, r);"
< Aterons> and I declare the response vector as vec responses = { 1, 3, 5, 10, 17 }; ?
< Aterons> is that correct ? Or should I use some loadVecotr function to load those values from a file ?
< zoq> Aterons: You can either load your parameter e.g. CSV or declare the parameter: Take a look at line 72 in https://github.com/mlpack/mlpack/blob/master/src/mlpack/tests/linear_regression_test.cpp
mentekid has joined #mlpack
govg has joined #mlpack
mentekid has quit [Ping timeout: 244 seconds]
Mathnerd314 has quit [Ping timeout: 260 seconds]
Aterons has quit [Quit: Page closed]
Aterons has joined #mlpack
Aterons has quit [Quit: Page closed]
Mathnerd314 has joined #mlpack