I have the following Keras/TensorFlow code:

```
my_initializer = keras.initializers.RandomNormal(mean=0.0, stddev=0.05, seed=1)

my_model = keras.models.Sequential([
    keras.layers.Dense(200, kernel_initializer=my_initializer, bias_initializer=my_initializer, activation="relu",input_shape=[len(features)]),
    keras.layers.Dense(100, kernel_initializer=my_initializer, bias_initializer=my_initializer, activation="relu"),
    keras.layers.Dense(50, kernel_initializer=my_initializer, bias_initializer=my_initializer, activation="relu"),
    keras.layers.Dense(25, kernel_initializer=my_initializer, bias_initializer=my_initializer, activation="relu"),
    keras.layers.Dense(1, kernel_initializer=my_initializer, bias_initializer=my_initializer)
])

my_model.compile(loss="mean_squared_error", optimizer="adam")
history = my_model.fit(train, train_y, epochs=70, batch_size=32)

```

As far as I know, I always run it with the same training data. After training, I print model parameters:

```
for layer in my_model.layers: print(layer.get_config(), layer.get_weights())

```

After every training, the parameters are different and the trained model produces different results on the validation data (the difference is 5-10% on each validation example; the overal performance is much more stable).

As far as I know, I do not use dropout (at list I did not enable it explicitly). Initial model parameter values are initialized with a seed (see the code).

Does anyone have any idea what could be wrong? I am relatively new to neural nets.