# Not able to understand how dw1, dw2 loop got eliminated

I am not able to understand how we eliminated the second loop that run dw1, dw2 and consolidated it to just dw. Can someone please help.

Hey @Harshita_Gupta1,
Welcome to the community. Can you please let us know which week and which assignment are you referring to?

Cheers,
Elemento

Hello, thank you for replying. This is Course 1, Week 2 - Vectorizing Logistic regression
I am unable to understand how we eliminated the loop of dw1, dw2 to make a vector of only dw

Hey @Harshita_Gupta1,
I am assuming here you are referring to the implementation of the `optimize` function. I guess you can easily find the answer to your query by understanding the structure of `dw`. Letâ€™s say that you have 10 neurons. In that case, `dw1` will contain the gradient of `w1` wrt the loss function. Similarly, `dw2` will contain the gradient of `w2` wrt the loss function, and so on. In this case, we will write the code for updating the parameters as follows:

w1 = w1 - learning_rate * dw1
w2 = w2 - learning_rate * dw2

and so on. Now, you can easily create a vector `dw` to store all the `dw(i)`, i.e., `dw = [dw1, dw2, ....., dw10]`, and similarly, a vector `w` to store all the `w(i)`, i.e., `w = [w1, w2, ....., w10]`. Once you have created the vectors `dw` and `w`, all you need to use is the same update rule, but with the vectors that you have created instead of the scalar quantities, and it will update all the 10 weights together. The code will be as follows:

w = w - learning_rate * dw

Let me know if this helps.

Cheers,
Elemento

This was very helpful. Thank you so much