Я пытаюсь запустить нейронную сеть несколько раз с различными параметрами, чтобы откалибровать параметры сетей (вероятность отсева, скорость обучения e.d.). Однако у меня проблема с тем, что работа с сетью при сохранении параметров одинаково по-прежнему дает мне другое решение, когда я запускаю сеть в цикле следующим образом:
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
для перетасовки входящих изображений для каждой эпохи.