Could you print the input shapes
Please reshape Y_train to (-1,1), if it is not
I tried your notebook, and generated random numbers for X and Y where Y’s dimension was (63,)
As a result, the first step in backprop i.e
self.dA2 = self.H2 - Y gives an output of (63,63) instead of (63,1) due to broadcasting operation.
It would work well if Y was of shape (63,1)
Inside class FF_MultiClass_InputWeightVectorised,
change the following inside
self.dA2 = self.H2 - Y
self.dA2 = self.H2 - Y.reshape(-1, 1)
Y is 1-dim and you need to force it to a 2-d with 1 column otherwise automatic broadcast will make the operation incorrect.
Just noticed, I just duplicated what @databaaz wrote in his reply