我正在使用预训练的模型之一进行张量流对象检测。但是,模型的训练配置将检测次数限制为5个盒。关于如何在推理期间更改此参数的任何想法?
我正在使用的模型是经过link训练的模型。它的配置是here和here。此处将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。
答案 0 :(得分:0)
首先,如果要使用更大的num_detections:0
,可以向其添加一个正整数。但是我认为您可能无法做到这一点,因为您加载了一个冻结的图,该图不应更改权重和参数的值。
第二,即使更改num_detections:0
的值,也不能更改框数。因为num_detection
操作之前在NMS步骤上确定保留了多少个框。因此,您只需更改错误的变量。我无法帮助您找到正确的变量。抱歉
最后,您可以在模型的配置文件中更改max_total_detections
的数量,以保留更多的边界框。如果您不想训练模型,则可以更改配置文件,训练0个步骤并保存模型。
有人有更好的解决方案吗?