经过训练的ANN(张量流)模型可以预测吗?

时间:2020-07-01 07:10:27

标签: python tensorflow neural-network

我是ANN的新手,但是我已经成功地训练了卷积模型(使用一些传统的tensorflow v1代码),其数据的准确度达到了约90%左右。但是,当我对任何给定的批次进行评估(测试)时,即使90%正确,结果还是有些随机。我尝试重新评估数据N次并取平均值(使用1到25之间的N),但是每种评估在3%到10%的数据点之间仍然存在差异。

是否有任何方法可以使评估可预测,以便每次运行输入的批次X的评估总是产生完全相同的结果Y(一旦完成培训)?< / p>

我不确定是否相关,但是我的图层是按以下方式进行批量标准化的:

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)

缩放部分是使用随机数据初始化的,但是我假设在执行tf.compat.v1.train.Saver().restore(session, checkpoint_fname)时会加载它?

1 个答案:

答案 0 :(得分:0)

我假设您正在对训练批次进行模型测试?

您不能将整个训练数据集中一部分的准确性等同于整体的准确性。

将其视为回归问题。如果仅获取一部分数据集,则无法保证其平均值接近整个数据集。

如果要保持一致的准确性,请对整个数据集进行评估。