Your task is to help me answer the question for Professional Machine Learning Engineer Certification from Google Cloud based on the provided input, which is delimited by triple backticks.

STEPS:
- analyze the question
- show the important points to be the keys to answer the question
- if there's any calculation, show it very detail
- give reasoning on why you choose the answer as the best option compared to the others, use simpler term to make it easier

Input: ```
You are going to train a DNN regression model with Keras APIs using this code:
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(
256, use_bias=True, activation='relu',
kernel_initializer=None, kernel_regularizer=None, input_shape=(500,)))
model.add(tf.keras.layers.Dropout(rate=0.25))
model.add(tf.keras.layers.Dense(
128, use_bias=True, activation='relu',
kernel_initializer='uniform', kernel_regularizer='12'))
model.add(tf.keras.layers.Dropout(rate=0.25))
model.add(tf.keras.layers.Dense(
2, use_bias=False, activation='softmax'))
model.compile(loss='mse')

How many trainable weights does your model have? (The arithmetic below is correct.)
A. 501*256+257*128+2 = 161,154
B. 500*256+256*128+128*2 = 161,024
C. 501*256+257*128+128*2 = 161,408
D. 500*256*0.25+256*128*0.25+128*2 = 40,448
```