I have built a simple neural network,
model = Sequential()
model.add(Dense(20, input_dim=5, activation=\'sigmoid\'))
model.add(Dense(1, activation=\'sigmoid\
Here's a complete working example (implemented with TensorFlow 2 and Keras).
import tensorflow as tf
import numpy as np
def get_model():
inp = tf.keras.layers.Input(shape=(1,))
# Use the parameter bias_initializer='random_uniform'
# in case you want the initial biases different than zero.
x = tf.keras.layers.Dense(8)(inp)
out = tf.keras.layers.Dense(1)(x)
model = tf.keras.models.Model(inputs=inp, outputs=out)
return model
def main():
model = get_model()
model.compile(loss="mse")
weights = model.layers[1].get_weights()[0]
biases = model.layers[1].get_weights()[1]
print("initial weights =", weights)
print("initial biases =", biases)
X = np.random.randint(-10, 11, size=(1000, 1))
y = np.random.randint(0, 2, size=(1000, 1))
model.fit(X, y)
weights = model.layers[1].get_weights()[0]
biases = model.layers[1].get_weights()[1]
print("learned weights =", weights)
# Biases are similar because they are all initialized with zeros (by default).
print("learned biases =", biases)
if __name__ == '__main__':
main()
Quite simple, its just the second element in the array returned by get_weights() (For Dense layers):
B_Input_Hidden = model.layers[0].get_weights()[1]
B_Output_Hidden = model.layers[1].get_weights()[1]