Как настроить random seed в Tensorflow?

При обучении нейросети я получаю всегда разные результаты при одних и тех же параметрах. Мне нужно получать одни и те же результаты, если я не менял параметров.

Пробовал этот код:

tensorflow.random.set_seed(4)
  • не помогает, результаты обучения всегда разные.

Код нейросети:

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense, Dropout, Flatten
from tensorflow.keras.metrics import AUC
from tensorflow_addons.metrics import F1Score

batch_size = 4
num_neurons = 100

n_model = Sequential()
n_model.add(LSTM(num_neurons, return_sequences=True, input_shape=(maxlen, emb_dims)))
n_model.add(Dropout(.2))
n_model.add(Dropout(.2))
n_model.add(Flatten())
n_model.add(Dense(n_classes, activation="softmax"))
n_model.compile('rmsprop', loss='categorical_crossentropy', metrics=['accuracy', F1Score(num_classes=15)])

Ответы (2 шт):

Автор решения: Deprom

Можна через numpy numpy.random.seed(seed)

→ Ссылка
Автор решения: kryvoi

Первой строчкой перед строкой модели:

tf.keras.utils.set_random_seed(seed)
→ Ссылка