我最近開始學習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,所以沒有區別,但我想這必須有一個符號的理由,我不理解它。
這就是tensorflow特有的東西,對嗎?神經網絡仍然有'inputize x inputsize x 3'的輸入,所以如果第一維度不是1,神經網絡將被執行多次,我們會得到多個預測? –
是的,這對於tensorflow是特別的。該模型已經使用批量圖像進行了訓練,因此網絡已被定義爲接受一批圖像並行執行預測。網絡輸入實際上是[[None,inputSize,inputSize,3]'。凡None表示從1到無窮大的每個值。 因此,您可以輸入單個(批量爲1的批次)或多個圖像(批量的大小> 1)並獲得一批預測,每個輸入圖像一個 – nessuno
好的,謝謝,我會更多地關注學習張量流特性:D。 –