Hello, i found a mistake in the instructions of conv and pool backward. In the comments there is a line :
#da_prev_pad[vert_start:vert_end, horiz_start:horiz_end, :] += None
# dA_prev[i, vert_start: vert_end, horiz_start: horiz_end, c] += None
the right instructions is :
#da_prev_pad[vert_start:vert_end, horiz_start:horiz_end, :] += None
#dA_prev[i, horiz_start: horiz_end,vert_start: vert_end , c] += None
the bug causes wrong values on dW (conv_backward) and empty array after some iterations (pooling_backward)