I am having an issue with the conv_forward function where i get the error operands could not be broadcast together with shapes (2,3,4) (3,3,4)
but when print the shapes of a_prev_slice and w it comes out as (3,3,4) (3,3,4) I have looked at a bunched of discussion and am yet to figure out what is wrong pls help.
Please post a screen capture image that shows the entire context of the error message. This will tell us exactly which test is failing.
Well the shapes may be correct early in the iterations, but the error may happen when you hit the end of a row or column. Here’s the best post I know of that describes in words how the algorithm works here. Please have a careful look at that and then compare to what your code is currently doing.
Let us know how it goes.
The other thing that may be useful is to put print statements in your code to see the shapes of everything. Here’s what I see on that test cell with a bunch of print statements:
stride 2 pad 1
New dimensions = 3 by 4
Shape Z = (2, 3, 4, 8)
Shape A_prev = (2, 5, 7, 4)
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!
stride 1 pad 3
New dimensions = 9 by 11
Shape Z = (2, 9, 11, 8)
Shape A_prev = (2, 5, 7, 4)
Shape A_prev_pad = (2, 11, 13, 4)
Z[0,0,0,0] = 1.4306973717089302
Z[1,8,10,7] = -0.6695027738712113
stride 2 pad 0
New dimensions = 2 by 3
Shape Z = (2, 2, 3, 8)
Shape A_prev = (2, 5, 7, 4)
Shape A_prev_pad = (2, 5, 7, 4)
Z[0,0,0,0] = 8.430161780192094
Z[1,1,2,7] = -0.2674960203423288
stride 1 pad 6
New dimensions = 13 by 15
Shape Z = (2, 13, 15, 8)
Shape A_prev = (2, 5, 7, 4)
Shape A_prev_pad = (2, 17, 19, 4)
Z[0,0,0,0] = 0.5619706599772282
Z[1,12,14,7] = -1.622674822605305
Second Test: All tests passed!