Я пишу оболочку tenorflow.Keras для выполнения экспериментов ML.
Мне нужна моя инфраструктура, чтобы иметь возможность выполнять эксперимент, как указано в файле конфигурации yaml, и параллельно работать в графическом процессоре.
Тогда мне нужна гарантия, что, если я снова проведу эксперимент, я получу, если не те же самые результаты, что-то достаточно близкое.
Чтобы попытаться убедиться в этом, мой учебный скрипт содержит эти строки вначало, следуя указаниям официальной документации :
# Set up random seeds
random.seed(seed)
np.random.seed(seed)
tf.set_random_seed(seed)
Этого оказалось недостаточно.
Я выполнил одну и ту же конфигурацию 4 раза и составил графикрезультаты:
Как видите, результаты сильно различаются в зависимости от пробежек.
Как настроить тренировкув Керасе, чтобы убедиться, что я получаю достаточно похожие результаты при обучении в GPU?Это вообще возможно?
Полный учебный сценарий можно найти здесь .
Некоторые из моих коллег используют просто чистый TF , и ихрезультаты кажутся намного более последовательными.Более того, они, похоже, не вызывают какой-либо случайности, кроме как для того, чтобы разделить поезд и валидацию всегда одинаково.