簡體   English   中英

如何解決 CNN 中的輸入形狀問題?

[英]How can I solve the input shape issue in CNN?

我正在使用對手寫字符進行分類並遵循我的 CNN model。 我已將圖像轉換為灰度並二值化。 我怎么解決這個問題?

model = models.Sequential()

model.add(layers.Conv2D(filters=10,kernel_size=(3,3),padding = 'same', input_shape=(100, 100, 3),activation = 'relu'))
model.add(layers.Conv2D(30,(5,5),activation='relu'))

model.add(layers.MaxPooling2D(pool_size=(2,2)))

model.add(layers.Dropout(0.5))

model.add(layers.Conv2D(40,(3,3),activation='relu'))
model.add(layers.Conv2D(60,(3,3),activation='relu'))

model.add(layers.MaxPooling2D(pool_size=(2,2)))

model.add(layers.Flatten())

model.add(layers.Dense(180,activation='relu'))

model.add(layers.Dropout(0.5))

model.add(layers.Dense(100,activation='relu'))
model.add(layers.Dense(12,activation='softmax'))

錯誤

ValueError: Input 0 of layer sequential_41 is incompatible with the layer: expected ndim=4, found ndim=3. Full shape received: [None, 100, 100]

在您的 model 中,您已將輸入形狀聲明為(100,100,3) model 需要 3 通道圖像,但您說您的輸入數據是灰度的,這意味着它只有一個通道。 這意味着您的輸入數據的形狀是(100,100,1) ,然后就是(100,100) 隨着batch_size維度的添加,它變為[None,100,100] ,這是您得到的錯誤。

將輸入形狀更改為(100,100,1)應該可以解決問題。

暫無
暫無

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

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