Course4, week1, Assgnmt1- Grader stuck at 50/100


I have finished the assignment and all tests seem to pass but my grader is stuck at output 50/100. I have downloaded a fresh copy of the assignment and re-did it. I have studies the forums and fixed the float32 vs float64 while converting bias. But I am still stuck. what else can i try? Here is the grader output which doesnt tell much into which 2 tests are failing.

[ValidateApp | INFO] Validating ‘/home/jovyan/work/submitted/courseraLearner/W1A1/Convolution_model_Step_by_Step_v1.ipynb’
[ValidateApp | INFO] Executing notebook with kernel: python3
Tests failed on 2 cell(s)! These tests could be hidden. Please check your submission.

My comment may not be helpful but you could check if you get the ’ All tests passed’ message on all of the 8 exercises that we do in the Assignment.

There is a bug in that the tests in the notebook pass if you forget to implement the stride in conv_forward and pool_forward. You end up with that mysterious message from the grader in that case. One way to check if this is your problem is to carefully examine the outputs for the stride = 2 test case for pool_forward: they all need to agree, not just the first rows. If they don’t, then this is your problem. It would have been better if the test “threw” in that case, but it doesn’t. It just requires that you read very carefully.

A bug is filed about all this.

Thanks Paul,

On careful examination of the output, I found that you’re right and that is indeed the error. Not all of my values match for pool forward. They do match for conv_forward. Would you give any guidelines on how to debug this. I have gone over my code multiple times and I cant think of a cause.


I fixed the error. I implemented the stride and it worked like a charm.


It’s great that you were able to solve it. The stride is a pretty big deal here. The bug against the test cases has been outstanding for a while now. Hoping for a fix sometime soon, so that other students don’t fall into this same trap.

For anyone else who sees this thread, the stride logic is the same in both conv_forward and pool_forward. The loops are over the output space and you must touch every point in the output space (don’t skip any). The stride happens in the input space. You have to draw the picture of how things work in the input space to see how the logic needs to work.