Tensorflow 使用is#U培训和#x27;正确';和';假';-冻结模型的精度不同

Tensorflow 使用is#U培训和#x27;正确';和';假';-冻结模型的精度不同,tensorflow,tensorflow-lite,Tensorflow,Tensorflow Lite,我试图推断出mobilenetV2模型 我已经使用tensorflow/models/slim对模型进行了培训。 该模型在is\u training=true时给出了适当的精度。 但是当我这样做的时候,是_training=false并保存模型,那么推理的准确性就很低了 在这两种情况下,我可以在图表中看到以下差异。 使用is_training=true,则moving_mean和moving_variance分别变为Const和Const_1。这是我能看到的唯一区别。 在推理过程中,FusedB

我试图推断出mobilenetV2模型

我已经使用tensorflow/models/slim对模型进行了培训。 该模型在
is\u training=true
时给出了适当的精度。 但是当我这样做的时候,
是_training=false
并保存模型,那么推理的准确性就很低了

在这两种情况下,我可以在图表中看到以下差异。 使用
is_training=true
,则
moving_mean
moving_variance
分别变为
Const
Const_1
。这是我能看到的唯一区别。 在推理过程中,
FusedBatchNorm
节点的输出在这两种情况下是不同的

请帮助我理解为什么会发生这种情况,以及如何解决这个问题

有同样的问题

TF文件建议如下:

update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS)
with tf.control_dependencies(update_ops):
    train_step = tf.train.AdamOptimizer(1e-4).minimize(loss)
我在测试中获得了更好的准确度,因为“is_训练:False”也有同样的问题

TF文件建议如下:

update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS)
with tf.control_dependencies(update_ops):
    train_step = tf.train.AdamOptimizer(1e-4).minimize(loss)

使用is\u training:False

测试时,我获得了更好的准确性。您是否测量了
is\u training=True
is\u training=False
的相同数据的准确性。如果您使用的是不同的数据,那么可能是过度拟合的情况。我使用相同的数据测试is_training=True和is_training=False。我将列出我正在做的步骤。1.测量训练精度(is_training=true)。使用is_training=true保存检查点。2.已还原保存的检查点(is_training=true)并进行评估。准确度与训练准确度相同。3.恢复检查点并将is_训练更改为false,并保存检查点。4.创建了一个带有检查点(is_training=false)5的冻结图。模型的测量精度。准确率从65%降低到16%。您是否测量了
is_training=True
is_training=False
的相同数据的准确率。如果您使用的是不同的数据,那么可能是过度拟合的情况。我使用相同的数据测试is_training=True和is_training=False。我将列出我正在做的步骤。1.测量训练精度(is_training=true)。使用is_training=true保存检查点。2.已还原保存的检查点(is_training=true)并进行评估。准确度与训练准确度相同。3.恢复检查点并将is_训练更改为false,并保存检查点。4.创建了一个带有检查点(is_training=false)5的冻结图。模型的测量精度。准确率从65%降至16%。