2017-06-20 81 views
1

我最近開始學習Tensorflow,特別是我想用卷積神經網絡進行圖像分類。我一直在尋找在官方倉庫的機器人演示,特別是這個例子:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/android/src/org/tensorflow/demo/TensorFlowImageClassifier.java什麼是TensorFlow中圖像張量的形狀

線145,它創建與圖像的輸入數據的張量,因爲這樣的:

inferenceInterface.feed(inputName, floatValues, 1, inputSize, inputSize, 3); 

現在,我一直在試圖理解這是幹什麼的,最後調用這個方法:Tensor.create。我不明白的是爲什麼由該函數的輸入參數(也稱爲「尺寸」)給出的張量的形狀爲{1, inputSize, inputSize, 3}。第二和第三維是圖像的寬度和高度,第四維是圖像的RGB數據。但爲什麼它的第一個維度是1?這個張量的形狀不應該是{inputSize, inputSize, 3}而是?我想因爲維度是1,所以沒有區別,但我想這必須有一個符號的理由,我不理解它。

回答

3

Tensorflow適用於多批圖像。 該模型因此接受一批形狀爲inputSize x inputSize x 3的圖像。

1是批量大小。因此,在實踐中,您正在爲網絡提供一批具有張量形狀的單張圖像1 x inputSize x inputSize x 3

+0

這就是tensorflow特有的東西,對嗎?神經網絡仍然有'inputize x inputsize x 3'的輸入,所以如果第一維度不是1,神經網絡將被執行多次,我們會得到多個預測? –

+0

是的,這對於tensorflow是特別的。該模型已經使用批量圖像進行了訓練,因此網絡已被定義爲接受一批圖像並行執行預測。網絡輸入實際上是[[None,inputSize,inputSize,3]'。凡None表示從1到無窮大的每個值。 因此,您可以輸入單個(批量爲1的批次)或多個圖像(批量的大小> 1)並獲得一批預測,每個輸入圖像一個 – nessuno

+0

好的,謝謝,我會更多地關注學習張量流特性:D。 –

相關問題