【发布时间】:2020-07-01 07:10:27
【问题描述】:
我是 ANN 的新手,但我已经成功地训练了一个卷积模型(使用一些遗留的 tensorflow v1 代码),我的数据准确率高达 90% 左右。但是当我在任何给定的批次上评估(测试)它时,结果有点随机,即使它是 90% 正确的。我尝试重新评估数据 N 次并取平均值(使用 1 到 25 之间的 N),但每次评估与其他评估的差异仍然在 3% 到 10% 的数据点之间。
有什么方法可以使评估可预测,以便每次运行输入批次X 的评估总是产生完全相同的结果Y(一旦训练完成)?
我不确定它是否相关,但我的图层是这样批量标准化的:
inp = tf.identity(inp)
channels = inp.get_shape()[-1]
offset = tf.compat.v1.get_variable(
'offset', [channels],
dtype=tf.float32,
initializer=tf.compat.v1.zeros_initializer())
scale = tf.compat.v1.get_variable(
'scale', [channels],
dtype=tf.float32,
initializer=tf.compat.v1.random_normal_initializer(1.0, 0.02))
mean, variance = tf.nn.moments(x=inp, axes=[0, 1], keepdims=False)
variance_epsilon = 1e-5
normalized = tf.nn.batch_normalization(
inp, mean, variance, offset, scale, variance_epsilon=variance_epsilon)
比例部分是用随机数据初始化的,但我假设它在我做@987654324@时被加载?
【问题讨论】:
标签: python tensorflow neural-network