Tensorflow对象检测模块中的边界框数

问题描述 投票:0回答:1

我正在使用其中一个预训练模型进行推理,张量流对象检测。但是,模型的列车配置将检测次数限制为仅5个盒子。有关如何在推理期间更改此参数的任何想法?

我正在使用的模型是在link上训练的模型。它的配置是herehere。 max_total_detection在这里设置为5。我不知道如何更新它以获得更多的更新。

任何帮助将非常感谢!

我已经尝试加载图形并查看预训练模型中的变量。我找到了一个名为“num_detections”的变量,但我不确定如何使用任何有助于推理的代码重新分配它。

在推理期间,我使用代码here

我添加以下行:

num_detections = tf.get_default_graph().get_tensor_by_name('num_detections:0')
sess.run(tf.assign(num_detections, num_detections+10),feed_dict={image_tensor: np.expand_dims(image,0)})

但它给我一个错误,说变量没有任何assign属性。我假设是因为我无法改变它。

有没有其他方法可以更新它?或者我需要重新训练吗?

编辑:第一个答案有效!使用配置文件中更改的数字框重新训练1 num_steps。

tensorflow object-detection object-detection-api pre-trained-model
1个回答
0
投票

首先,如果你想要一个更大的num_detections:0,你可以添加一个正整数。但我认为您可能无法这样做,因为您加载了一个不应更改权重和参数值的冻结图。

其次,即使更改了num_detections:0的值,也无法更改框的数量。因为在num_detection操作之前NMS步骤确定保留了多少个盒子。所以你只需改变错误的变量。我无法帮你找到合适的变量。对不起。

最后,您可以在模型的配置文件中更改max_total_detections的数量,以保留更多的边界框。如果您不想训练模型,可以更改配置文件,训练0步并保存模型。

谁有更好的解决方案?

© www.soinside.com 2019 - 2024. All rights reserved.