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
X
andY
. If you look at themodel
function skeleton, there is noX
andY
variables. Basically, by doing this, you are passing in global variables, also something you shouldn’t be doing. You should use the actualmodel
function’s parameters instead ofX
andY
. - When you are passing in the values to be used in the
optimise
function you are setting up new values fornum_iterations
andlearning_rate
. Please don’t change these values, instead use the default values as set up in the parameters of themodel
function.
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.