Hello,
I got error in computing the cost, and this is the error text
ValueError Traceback (most recent call last)
in
3 X =np.array([[1., 2., -1.], [3., 4., -3.2]])
4 Y = np.array([[1, 0, 1]])
----> 5 grads, cost = propagate(w, b, X, Y)
6
7 assert type(grads[“dw”]) == np.ndarray
in propagate(w, b, X, Y)
30 # YOUR CODE STARTS HERE
31 A = sigmoid((np.dot(w.T,X)) + b)
—> 32 cost = (-1 / m) * ((np.dot(Y, np.log(A))) + (np.dot(1-Y, np.log(1-A))))
33 # YOUR CODE ENDS HERE
34
<array_function internals> in dot(*args, **kwargs)
ValueError: shapes (1,3) and (1,3) not aligned: 3 (dim 1) != 1 (dim 0)
I suspect that there is a dimensional mismatch, I 've tried many approached and the same sort of error.
Thanks.
You should check the shape of Y
and np.log(A)
and then remember what is the matrix multiplication rule (see below from Wikipedia):
I 'll do so, there is no dimensional analysis in the instruction so I didn’t expect I had to do so.
I 've solved the problem of dimensional analysis (I guess), and I got this error:
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
<ipython-input-23-be03942b69a5> in <module>
7 assert type(grads["dw"]) == np.ndarray
8 assert grads["dw"].shape == (2, 1)
----> 9 assert type(grads["db"]) == np.float64
10
11
AssertionError:
Please help how I can solve this problem,
Thanks.
Hi @MoHassan, that error implies that the type of grads["db"]
is wrong, db
should be a float, you should check the type of db
in the propagate
function.
1 Like
I used np.sum for dp and for cost, it got the right value for db and exactly the double desired value for cost:
dw = [[0.99845601]
[2.39507239]]
db = 0.001455578136784208
cost = 10.604635958182634
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
<ipython-input-75-be03942b69a5> in <module>
14 print ("cost = " + str(cost))
15
---> 16 propagate_test(propagate)
~/work/release/W2A2/public_tests.py in propagate_test(target)
39 assert np.allclose(grads['dw'], expected_dw), f"Wrong values for grads['dw']. {grads['dw']} != {expected_dw}"
40 assert np.allclose(grads['db'], expected_db), f"Wrong values for grads['db']. {grads['db']} != {expected_db}"
---> 41 assert np.allclose(cost, expected_cost), f"Wrong values for cost. {cost} != {expected_cost}"
42 print('\033[92mAll tests passed!')
43
AssertionError: Wrong values for cost. 10.604635958182634 != 5.80154531
I double-checked the dimensional analysis and got the right answer.
Thanks so much.