Hi to everyone,

I have this problem:

Even though I passed all the tests before, when I run the ‘logistic_regression_model’ cell it gives me the error: ‘ValueError: cannot reshape array of size 50 into shape (3,1)’

I passed the test with 100/100 anyways, but I really want to understand why there is this error.

Thank to everyone in advance,

Davide.

That probably means that you are referencing global variables in your *model* function instead of the actual parameters that are passed in. You should only reference local variables in your functions, which includes the “formal parameters” declared in the function definition.

Thank you for the reply.

Sorry but I don’t understand the concept of ‘referencing global variables’ in this case. Even though I know what a global variable is. Can you please explain it a bit better? Maybe with an example.

I’m stuck on the same problem in the week 3, exercise 8, on the initialization of the parameters:

Well, that was just a suggestion of one common type of mistake that causes mismatching dimensions. That may not be the mistake you have made.

I checked and the shape of the X value in that test case is 2 x 3, so your W1 should be of shape 4 x 2. So why did it turn out to be 4 x 5? If your previous functions like *initialize_parameters* and *forward_propagation* etc passed the unit tests, then the bug must be in *nn_model*. Either you are passing the wrong values to the initialize routine. Try adding some print statements to show the shapes of your W1 and W2 values in the main loop before you call forward propagation.

Something is clearly wrong. Now your job is to figure out what it is.

Actually here’s a theory: maybe you hard-coded the return values from the *layer_sizes* function, instead of using the “shapes” of the input variables. If you just always return 5 for *n_x*, that still passes the test case in the notebook, but it’s a fundamental mistake and will cause havoc later when you actually use the *layer_sizes* function.

Note that your reply is about the Week 3 assignment. Sorry, I didn’t read you original post about the Week 2 assignment carefully enough: you are hard-coding the dimensions in your *model* function instead of using the dimensions of the input variables. You assume that there are 4 features and 3 samples. Also why do you reshape *Y_test* to be a column vector? That is not necessary.

Sorry mentor I think we are not understand eachother (or maybe I just don’t understand).

I’m talkin about the exercise 8 of the week 3 (nn_model).

What it asks is to create the parameters. Of course I created them with the function I created before:

I really don’t understand why it’s not working (even though of course the mistake is mine). That function needs 3 input, I give ‘(n_x, n_h, n_y)’. Where is the problem?

The error is:

You need to figure out why your W1 value ends up being 4 x 5 instead of 4 x 2. I have suggested several places to look for the bug: did you “hardcode” 5 as the first return value in *layer_sizes*? If not, then where did that value of 5 come from? It is nowhere to be found in the inputs for that test case. I already mentioned this in my first reply.

I suggest you put this code in *nn_model* after the call to *initialize_parameters*:

```
W1 = parameters['W1']
print(f"W1.shape = {W1.shape}")
```

What do you see?

Oh yes I hardcoded 5 in layer_sizes… What a mistake… Thank you a lot for the help!!!

I still have to look at what was wrong in the week 2, I will let you know also about it. Thank you!

It looks like you hardcoded several things there as well. Please see my earlier reply about that.