I have worked on the conv_forward(A_prev, W, b, hparameters) function. I have an answer coming out, but test 1 indicates that it is wrong. I have tried every which way to examine the bias, the weights the slicing, but they all appear to be correct. I used the test that was successful against the conv_single_step() method and verified that the conv_forward(A_prev, W, b, hparameters) gets the correct answer still with this test:

np.random.seed(1)

a_slice_prev = np.random.randn(1, 4, 4, 3)

W = np.random.randn(4, 4, 3, 1)

W1 = np.zeros((4,4,3,2))

W1[:,:,:,0] = W[:,:,:,0]

W1[:,:,:,1] = W[:,:,:,0]

b = np.random.randn(1, 1, 1, 1)

b1 = np.zeros((1,1,1,2))

b1[:,:,:,0] = b[:,:,:,0]

b1[:,:,:,1] = b[:,:,:,0]

hparameters = {“pad” : 0,

“stride”: 1}

Z,cache = conv_forward(a_slice_prev, W1, b1, hparameters)

print(“Z =”, Z[0,0,0])

assert (type(Z[0,0,0,0]) == np.float64), “You must cast the output to numpy float 64”

assert np.isclose(Z[0,0,0,0], -6.999089450680221), “Wrong value”

For test one of the conv_forward(A_prev, W, b, hparameters) method testing though I keep getting:

First Test: Z’s mean is incorrect. Expected: 0.5511276474566768

Your output: 0.5329033220060434

First Test: Z[0,2,1] is incorrect. Expected: [-2.17796037, 8.07171329, -0.5772704, 3.36286738, 4.48113645, -2.89198428, 10.99288867, 3.03171932]

Your output: [-0.05723279 0.03991888 -6.24285862 0.53960581 -5.04059676 6.96991358

3.69509379 -0.20955895]

Any ideas?