2017-06-29 19 views
0

我正在研究最近發佈的用於對象檢測的「SSD-Mobilenet」模型。 從以下位置下載的模型:https://github.com/tensorflow/models/blob/master/object_detection/g3doc/detection_model_zoo.mdTensorflow SSD-Mobilenet模型使用transform_graph進行量化後精度下降

從網站下載的凍結圖形文件正常工作,但是在量化之後精度顯着下降(主要是隨機預測)。

我建立tensorflow R1.2從源,並用於下面的方法來量化:

巴澤勒濱/ tensorflow /工具/ graph_transforms/transform_graph --in_graph = frozen_inference_graph.pb --out_graph = optimized_graph.pb - -inputs ='image_tensor'--outputs ='detection_boxes','detection_scores','detection_classes','num_detections' - 轉換 ='add_default_attributes strip_unused_nodes(type = float,shape =「1,224,224,3」)fold_constants(ignore_errors = true)fold_batch_norms fold_old_batch_norms quantize_weights strip_unused_nodes sort_by_execution_order'

我嘗試了各種組合的「 變換「部分,並且上面提到的變換有時會給出正確的預測,但是沒有接近原始模型的地方。

有沒有其他方法可以提高量化模型的性能?

回答

2

在這種情況下,SSD使用mobilenet,因爲它的功能提取器。爲了增加速度。如果您閱讀了mobilenet紙,它是一個輕量級卷積神經網絡,專門使用可分離卷積來減少參數。

據我所知可拆分卷積由於通道明智的卷積可能會丟失信息。

因此,當根據TF實現量化圖形時,它將16位操作數和權重設置爲8位。如果你閱讀TF中的量化教程,他們清楚地提到了這個操作更像是在已經訓練過的網絡中增加一些噪聲,希望我們的模型得到很好的推廣。

因此,這將工作得非常好,幾乎沒有任何損失,對於初期,重網等重型車型來說,其準確性的準確性還是很高。但是,隨着mobilenet的輕量級和簡單性,它確實會造成精度損失。

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

How to Quantize Neural Networks with TensorFlow

+0

你的意思是32位OP和權重的8位... –

相關問題