HimanshuPathak[4 has quit [Ping timeout: 260 seconds]
kuries has quit [Ping timeout: 260 seconds]
kuries has joined #mlpack
<ShubhamAgrawal[m>
<rcurtin[m]> "Shubham Agrawal: you didn't..." <- I think it was about weight
<ShubhamAgrawal[m>
You can see that we are using weight.slice(outMap) which will just iterate from 0 to maps-1 only
zoq[m]1 has joined #mlpack
HimanshuPathak[4 has joined #mlpack
<rcurtin[m]>
Right, but there is only a 2D weight for each map. The same 2D weight is applied to all the higher dimensions of a particular input. But, it seems that this might not be the behavior you expected? I don't have a problem with holding one weight map for each higher input dimension, if you want to change the code
<ShubhamAgrawal[m>
But you initialized weight dimensions as
SlackIntegration has quit [Ping timeout: 252 seconds]
jonpsy[m] has quit [Ping timeout: 252 seconds]
fieryblade[m] has quit [Ping timeout: 248 seconds]
zoq[m]1 has quit [Ping timeout: 248 seconds]
AnwaarKhalid[m] has quit [Ping timeout: 248 seconds]
EshaanAgarwal[m] has quit [Ping timeout: 248 seconds]
Cadair has quit [Ping timeout: 248 seconds]
kartikdutt18[m] has quit [Ping timeout: 248 seconds]
rcurtin[m] has quit [Ping timeout: 248 seconds]
HimanshuPathak[4 has quit [Ping timeout: 255 seconds]
kuries has quit [Ping timeout: 260 seconds]
shrit[m] has quit [Ping timeout: 265 seconds]
ShubhamAgrawal[m has quit [Ping timeout: 265 seconds]
JeffinSam[m] has quit [Ping timeout: 260 seconds]
zoq[m] has quit [Ping timeout: 272 seconds]
rcurtin[m] has joined #mlpack
rcurtin[m] has quit [Quit: Bridge terminating on SIGTERM]
Cadair has joined #mlpack
rcurtin[m] has joined #mlpack
psydroid has joined #mlpack
SlackIntegration has joined #mlpack
zoq[m]1 has joined #mlpack
EshaanAgarwal[m] has joined #mlpack
HimanshuPathak[m has joined #mlpack
jonpsy[m] has joined #mlpack
JeffinSam[m] has joined #mlpack
AnwaarKhalid[m] has joined #mlpack
jjb[m] has joined #mlpack
kartikdutt18[m] has joined #mlpack
fieryblade[m] has joined #mlpack
ShubhamAgrawal[m has joined #mlpack
zoq[m] has joined #mlpack
shrit[m] has joined #mlpack
kuries has joined #mlpack
<rcurtin[m]>
how is that response different than what I suggested above? I am not following what you mean; can you please clarify the precise problem and what the fix would be?
<ShubhamAgrawal[m>
> to `weight.slice(outMap * inMaps + inMap)`
<ShubhamAgrawal[m>
Something on these lines
<rcurtin[m]>
yes, I see what you mean now; do you want to open a PR?
<ShubhamAgrawal[m>
I actually want to implement groups in convolution layer
<ShubhamAgrawal[m>
What do I need to change in this case?
<rcurtin[m]>
I'm not familiar with grouped convolutions; you should implement it as an entirely new layer, though
<ShubhamAgrawal[m>
rcurtin[m]: why
<ShubhamAgrawal[m>
> <@ryan:ratml.org> I'm not familiar with grouped convolutions; you should implement it as an entirely new layer, though
<ShubhamAgrawal[m>
* why?
<rcurtin[m]>
well, like I said, I am not familiar with grouped convolutions; but assuming it is a different operation than the regular convolution layer, it is better to keep the `Convolution` class as simple as possible
<ShubhamAgrawal[m>
rcurtin[m]: I think it will require to just adjust loops
<rcurtin[m]>
you're welcome to make the change and open a PR and see what it looks like, but be aware I may request it to be an entirely separate layer. it's important to keep each layer simple: as one related example, it's better to have a separate layer for convolution and transposed convolution, instead of adding some flag to the convolution class that toggles transposed convolution mode. This is because of the huge amount of increased code complexity
<rcurtin[m]>
of handling that flag, and also that it makes it harder for a new person to come along and quickly understand that code---if it is two separate classes, they can understand each class as performing one operation (convolution or transposed convolution), but if it's one, they have to understand both