簡體   English   中英

numpy和Keras中“重塑”功能的差異

[英]Difference of function of “reshape” in numpy and Keras

我的情況是使用FCN進行像素預測,我有7個類別,因此我輸入圖像512 * 512,然后提供512 * 512 * 7進行模型預測,我想根據(高度寬度渠道)以保存最終結果。

因為我最后使用通道,所以輸入形狀對我來說很有意義。但是Keras拆分出的輸出形狀的形式我相信是:

                 (channels*height *width).

我的嘗試是使用“重塑”功能,它起作用了……這確實使我感到困惑,在我的實驗中,當我使用重塑功能時,圖像會被完全弄亂,在這種情況下,它確實可以正常工作好(在Keras中使用重塑功能)。

pr = m.predict( np.array([X]))[0]

#reshape to channel last and take the largest index in 7 predictions for each piexl 
pr = pr.reshape(( output_height ,  output_width , n_classes ) ).argmax(axis=-1)

我所期望的工作方式應該是np moveaxis或numpy.rollaxis。 提前致謝!

默認情況下,Keras已經是channels_last ,因此您可能不執行任何重塑操作。

檢查model.summary()以查看形狀。

您是正確的,如果您打算更改頻道順序,則重塑會弄亂圖像。 因此,您將尋找一個Permute((3,1,2))層以最后移至第一個或Permute((2,3,1)層以移至最后一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM