我正在使用其中一个预训练模型进行推理,张量流对象检测。但是,模型的列车配置将检测次数限制为仅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。
首先,如果你想要一个更大的num_detections:0
,你可以添加一个正整数。但我认为您可能无法这样做,因为您加载了一个不应更改权重和参数值的冻结图。
其次,即使更改了num_detections:0
的值,也无法更改框的数量。因为在num_detection
操作之前NMS步骤确定保留了多少个盒子。所以你只需改变错误的变量。我无法帮你找到合适的变量。对不起。
最后,您可以在模型的配置文件中更改max_total_detections
的数量,以保留更多的边界框。如果您不想训练模型,可以更改配置文件,训练0步并保存模型。
谁有更好的解决方案?