Как получить стабильные результаты с TensorFlow, установив случайное начальное число

Я пытаюсь запустить нейронную сеть несколько раз с разными параметрами, чтобы откалибровать параметры сети (вероятности отсева, скорость обучения и т. Д.). Однако у меня проблема в том, что работа сети при сохранении неизменных параметров все же дает мне другое решение, когда я запускаю сеть в цикле следующим образом:

filename = create_results_file()
for i in range(3):
  g = tf.Graph()
  with g.as_default():
    accuracy_result, average_error = network.train_network(
        parameters, inputHeight, inputWidth, inputChannels, outputClasses)
    f, w = get_csv_writer(filename)
    w.writerow([accuracy_result, "did run %d" % i, average_error])
    f.close()

Я использую следующий код в начале моей функции train_network перед настройкой уровней и функции ошибок в моей сети:

np.random.seed(1)
tf.set_random_seed(1)

Я попытался добавить этот код перед созданием графа TensorFlow, но я продолжаю получать разные решения в выводе результатов.

Я использую AdamOptimizer и инициализирую вес сети, используяtf.truncated_normal, Кроме того, я используюnp.random.permutation перетасовать входящие изображения для каждой эпохи.

Ответы на вопрос(2)

Ваш ответ на вопрос