Tensorflow 使用is#U培训和#x27;正确';和';假';-冻结模型的精度不同
我试图推断出mobilenetV2模型 我已经使用tensorflow/models/slim对模型进行了培训。 该模型在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
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%。