Как правило, для получения воспроизводимых результатов с кератами вам нужно будет установить одно и то же случайное начальное число перед каждым экспериментом. Предполагая, что вы используете бэкэнд тензор потока:
from numpy.random import seed
seed(1234)
from tensorflow import set_random_seed
set_random_seed(5678)
Если теперь вы хотите различное случайное поведение между экспериментами, вы можете явно установить разные случайные начальные числа. Что касается случайности пакетного перемешивания в функции подгонки, то должно быть достаточно каждый раз по-разному выставлять случайное начальное число, поскольку keras использует np.random.shuffle () для перемешивания.