簡體   English   中英

具有不同圖像尺寸的Keras CNN

[英]Keras CNN with varying image sizes

我正在嘗試使用VOC2012數據集來訓練CNN。 對於我的項目,我需要黑白數據,因此我提取了R組件。 到現在為止還挺好。 問題在於圖像的大小不同,所以我不知道如何將其傳遞給模型。 我編譯了模型,然后創建了如下的32個迷你批處理(其中X_trainY_train是文件的路徑)。

for x in X_train:
    img = plt.imread(x)
    img = img.reshape(*(img.shape), 1)
    X.append(img)

for y in Y_train:
    img = plt.imread(y)
    img = img.reshape(*(img.shape), 1)
    Y.append(img)

model.train_on_batch(np.array(X), np.array(Y))

但是,我懷疑由於圖像的大小都不同,所以numpy數組的形狀為(32,)而不是我期望的形狀(32,height,width,1)。 我該如何處理?

根據某些消息來源,確實可以訓練至少一些具有不同輸入大小的體系結構。 Quora交叉驗證

當要生成大小可變的數組的數組時,可能只是使用Python的NumPy數組列表或類型為objectndarray來收集所有圖像數據。 然后在訓練過程中,Quora回答提到只能使用批處理大小1,否則可能會根據大小將多個圖像合並在一起。 甚至可以使用零填充來使圖像大小均勻,但是對於這種方法的有效性我不能說太多。

祝您研究順利!

示例代碼示例:

# Generate 10 "images" with different sizes
images = [np.zeros((i+5, i+10)) for i in range(10)]
images = np.array([np.zeros((i+5, i+10)) for i in range(10)])

# Or an empty array to append to
images = np.array([], dtype=object)

暫無
暫無

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

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