# W4_A2 _Ex-1_local variable ‘A’ referenced before assignment

I run my code, and this message comes out.
I have no idea - what part is wrong in my code.
Could you give me a hand?

UnboundLocalError Traceback (most recent call last)
in
----> 1 parameters, costs = two_layer_model(train_x, train_y, layers_dims = (n_x, n_h, n_y), num_iterations = 2, print_cost=False)
2
3 print("Cost after first iteration: " + str(costs[0]))
4
5 two_layer_model_test(two_layer_model)

in two_layer_model(X, Y, layers_dims, learning_rate, num_iterations, print_cost)
46 # A2, cache2 = …
47 # YOUR CODE STARTS HERE
—> 48 A1, cache1 = linear_activation_forward(X, W1, b1, relu)
49 A2, cache2 = linear_activation_forward(A1, W2, b2, sigmoid)
50

~/work/release/W4A2/dnn_app_utils_v3.py in linear_activation_forward(A_prev, W, b, activation)
209 A, activation_cache = relu(Z)
210
→ 211 assert (A.shape == (W.shape[0], A_prev.shape[1]))
212 cache = (linear_cache, activation_cache)
213

UnboundLocalError: local variable ‘A’ referenced before assignment

You are passing an incorrect value for the “activation” parameter to `linear_activation_forward`. Take a look at the source for `linear_activation_forward` (we wrote it in the previous exercise and we’re just using it here): how could you fall through that code and not set the value of A? It means the value of `activation` did not match either of the choices in the conditional logic there.

So how could that happen? Note that in python `relu` and `"relu"` are not the same thing: the former is an object reference to the function and the latter is a python string that happens to be the name of the function. And if you try this expression:

`relu == "relu"`

you will find that it evaluates to `False`.