There’s an error in the mean in the conv_forward() function. I have checked some previous threads on this exercise and I’ve tried matching my process with theirs but I can’t find anything different or wrong in my logic. Can anyone help?
I added some print statements in my code and here’s what I see from the first test case for conv_forward:
stride 2 pad 1
New dimensions = 3 by 4
Shape Z = (2, 3, 4, 8)
Shape A_prev_pad = (2, 7, 9, 4)
Z[0,0,0,0] = -2.651123629553914
Z[1,2,3,7] = 0.4427056509973153
Z's mean =
0.5511276474566768
Z[0,2,1] =
[-2.17796037 8.07171329 -0.5772704 3.36286738 4.48113645 -2.89198428
10.99288867 3.03171932]
cache_conv[0][1][2][3] =
[-1.1191154 1.9560789 -0.3264995 -1.34267579]
First Test: All tests passed!
Interestingly your Z[0,2,1] values and your cache_conv values agree, but the Z mean is wrong there as well.
The most common mistakes here are in handling the stride. Note that it is 2 in this test case and that the stride applies in the input space (A_prev), not in the output space (Z), right?
1 Like
I did an absolutely foolish mistake. I didn’t take the loop for w(horizontal start and end) inside the loop for h(vertical).
Thanks for replying![]()
It’s great news that you were able to find the problem under your own power. Lots more interesting material ahead. Onward! ![]()
1 Like
