Установка начальных значений в заголовке файла приведет к различным результатам, так как инициализация будет использовать некоторые из случайных значений, прежде чем вы приступите к обучению.
Таким образом, вы должны установить начальные значения после выполнения инициализации. Инициализация может использовать любое начальное число, которое вы хотите, в том числе другое фиксированное начальное число, но затем вы должны сбросить его снова для обучения.
Вот некоторый псевдокод очень высокого уровня, который предполагает, что у вас есть функции для сборки, инициализировать и обучить модель. А также функции для сохранения и загрузки контрольных точек.
def set_seeds(seed):
random.seed(seed)
np.random.seed(seed)
tf.random.set_seed(seed)
# Make a checkpoint.
set_seeds(INIT_SEED)
model = build_model()
model = initialize_model(model)
save_checkpoint(model)
# Or load a checkpoint.
model = load_checkpoint()
# At this point seeds need to be identical.
# So re-fix the seeds for training, then proceed.
set_seeds(TRAIN_SEED)
trained = train_model(model)