我试图用不同的参数多次运行神经网络,以校准网络参数(辍学概率,学习率 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
来洗牌的每个纪元的传入图像。