我一直在使用卷積神經網絡進行物體檢測,並且遇到以下問題:Tensorflow:尺寸不一致的張量?
對於物體檢測任務,通常一個輸入圖像與未定數目的物體邊界框相關聯。每個邊界框可以用4個座標表示。因此,代表包圍盒爲張量,形狀爲:
[batch_size, variable_num_bbox(?), 4]
注意,在這裏,它不只是variable_num_bbox不能圖施工前,即使在一個批次中指定,而且,輸入,不同的圖像可以有不同數量的邊界框。
作爲一個說明性實例,我想以下數組轉換成張量:
[[[1, 2, 3, 4], [2, 3, 4, 5]], [[3, 4, 5, 6]]]
這裏,variable_num_bbox = 2用於第一圖像,但它是1所述的第二圖像。
我試過了,並且失敗了幾種將上面的嵌套列表轉換爲張量的方法,這導致了我們的問題,張量流是否支持具有不一致尺寸大小的張量?如果不是,是否有計劃支持它給開發者提供這種靈活性?如果它不會被支持,有沒有辦法繞過這個問題的對象檢測任務?一種解決方案是設置batch_size = 1,並且邊界框可以表示爲形狀爲[variable_num_bbox(?),4]的張量,所以是的,維度不一致性消失了,但這會損害效率顯著。
感謝您的鼓舞人心的答覆。但在我的情況下,我需要加載用於訓練的地面真值邊界框,並且將每個圖像的所有gtbox加載到一個張量並對其進行採樣可能不太實際。但是絕對地,將邊界框表示爲張量列表**是有意義的,這是更加靈活的。 – bichen
是的,我建議您使用張量列表(邊界框)。從4D張量的轉換僅僅是在某些形式的對象檢測中出現的情況的例子,例如YOLO,SSD等。 – RobR