Tensorflow加載多幅圖像進一個tensor

這裏加載多幅圖像進一個tensor,我用的還是opencv讀取圖像的做法,然後這裏要介紹Tensor的一個函數

Tensor Slice(int64 dim0_start, int64 dim0_limit) const;

可以看到它返回的還是一個tensor,參數是一個tensor的切片的起止下標,而且是一個左閉右開的區間,我就是利用這個函數將加載進來的多幅圖像塞進去的,並且對獲取到的切片操作的時候是會直接作用於原來的tensor上的,因此應該是一個共享地址(應該底層是指針的操作)。廢話不說,直接上代碼,以加載兩幅圖像爲例子,放到同一個tensor中:

Tensor resized_tensor(DT_FLOAT, TensorShape({ 2,input_height,input_width,1 }));
Tensor ten0 = resized_tensor.Slice(0, 1);
Tensor ten1 = resized_tensor.Slice(1, 1);
CVMat_to_Tensor(img, &ten0, input_height, input_width);
CVMat_to_Tensor(img1, &ten1, input_height, input_width);

這樣的話模型輸出會是一個第一維度爲2的tensor,分別對應輸入tensor的兩個維度的數據。

這是簡單的寫在手寫數字識別程序上的,結果顯示如下:

所以這個的話主要是後面想加載多幅圖像直接做預測就不用一幅一幅圖像的來做預測,後面可以考慮多幅圖像做運算與一幅一幅來的時間對比。

黑夜
象一羣又一羣
蒙面人
悄悄走近
然後走開
我失去了夢
口袋裏只剩下最小的分幣
"我被劫了"
我對太陽說
太陽去追趕黑夜
又被另一羣黑夜
所追趕

--顧城

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章