I can’t figure out how to get past this error with my prediction test. Help would be appreciated.
Hi @Stef_G,
For one, you are using hardcoded values and global variables in the assignment. Using hardcoded values and global variables might pass the tests in the assignment, but it will fail the autograder tests.
For example, instead of using 2, use X_train.shape[0]. With that being said, your implementation of w, b is incorrect, as you are using hard coded values.
Moreover, your implementation of params, grads, costs is also incorrect. In there, you are making 2 mistakes with the optimise function
- You are passing the original
XandY. If you look at themodelfunction skeleton, there is noXandYvariables. Basically, by doing this, you are passing in global variables, also something you shouldn’t be doing. You should use the actualmodelfunction’s parameters instead ofXandY. - When you are passing in the values to be used in the
optimisefunction you are setting up new values fornum_iterationsandlearning_rate. Please don’t change these values, instead use the default values as set up in the parameters of themodelfunction.
Fix this and your function will run.
Also note, in case you have used global variables and hardcoded values in other graded functions of the assignment, change those as well. As I mentioned, you might pass the assignment tests, but you will fail the grader tests.
Best,
Mubsi
Thanks @Mubsi , that got it running.
It just gives me the wrong value for w now:

What else am I missing?
Hi @Stef_G,
Okay here goes, I hope I explain this right:
Say I have an add function
def add(x, y=5):
return x + y
There are two ways I can use this function:
I can pass both values for x and y
add(x=4, y=7) or add(4, 7) # both are the same
11 # this is what the function will return me
The second way:
add(x=8) or add(8) # both are the same
13 # this is what the function will return me
In the first approach, even though there’s a default value for y (which is 5), I’m passing in values for both x and y, so when I pass a value of y, this new value replaces the default value for y.
In the second approach, I’m only passing a value for x, and not for y, so the default value for y is being used.
With this being said, so what I meant by this is:
(Only mentioning num_iterations for simplicity), so the function parameter with the default value is num_iterations=2000. Earlier, you made it num_iterations=200, so what this did was it gave num_iterations another default value of 200.
As I mentioned earlier, you shouldn’t hardcode this value, because the unit test which in this case is the hidden function model_test(model), uses a very different value of num_iterations.
The unit test uses a value of 50 for num_iterations. When you set it to num_iterations=200, it runs for 200 times, but the unit test expects it to run 50 times.
Now, when you have omit the mention of num_iterations, learning_rate and print_cost from your optimize function, they are using the default values set by the original function definition of model, which are 2000, 0.5 and False respectively. But the unit tests expects to pass in different values for these variables which is why you are failing the test.
So what you need to be doing is, mention these variables in the optimise function, but don’t assign any default or hardcoded values to them, and your function will pass.
Did I make sense ?
Mubsi
HI I’m dealing with the same problrm and the abobe solutiom doesn’t work for me.
I will be happy for yor help
Hello,Reut.
Did you manage to sort out the error, you were facing? Please let us know. Thanks.
Make sure you are using initialize_with_zeros function to initialize parameters with zeros.

