Python CNN中的Conv2D输出形状太小
第一个Conv2D层中的输入形状应该是(1001001),而输出是(None,9898200)。我知道200和None决定了什么,但我不确定98作为参数。 除此之外,我还随机选择了200个作为我的模型在Conv2D中的过滤器数量。如何为我的模型确定合适数量的过滤器。它是基于反复试验吗?请帮忙。谢谢Python CNN中的Conv2D输出形状太小,python,keras,cnn,Python,Keras,Cnn,第一个Conv2D层中的输入形状应该是(1001001),而输出是(None,9898200)。我知道200和None决定了什么,但我不确定98作为参数。 除此之外,我还随机选择了200个作为我的模型在Conv2D中的过滤器数量。如何为我的模型确定合适数量的过滤器。它是基于反复试验吗?请帮忙。谢谢 from keras.models import Sequential from keras.layers import Dense, Activation, Flatten, Dropout fro
from keras.models import Sequential
from keras.layers import Dense, Activation, Flatten, Dropout
from keras.layers import Conv2D, MaxPooling2D
from keras.callbacks import ModelCheckpoint
print(data.shape[1:])
model = Sequential()
model.add(Conv2D(200, (3,3), input_shape = data.shape[1:]))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size = (2,2)))
model.add(Conv2D(100,(3,3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Flatten())
model.add(Dropout(0.5))
model.add(Dense(50, activation = 'relu'))
model.add(Dense(2, activation = 'softmax'))
model.compile(loss = 'categorical_crossentropy', optimizer = 'adam', metrics = ['accuracy'])
model.summary()
(1001001)
型号:“顺序_3”
图层(类型)输出形状参数# conv2d_5(conv2d)(无,98,98,200)2000
激活_5(激活)(无、98、98、200)0
最大池2D池5(最大池2(无、49、49、200)0
conv2d_6(conv2d)(无、47、47、100)180100
激活_6(激活)(无、47、47、100)0
最大池2D池6(最大池2(无、23、23、100)0
展平3(展平)(无,52900)0
辍学3(辍学)(无,52900)0
致密_5(致密)(无,50)2645050
致密_6(致密)(无,2)102 总参数:2827252 可培训参数:2827252 不可训练参数:0
将
padding=“same”
作为参数添加到conv2d
中,输出维度将与输入维度相同
默认设置为padding=“valid”
,由于您使用3x3过滤器,步长为1,因此最终得到98x98维度,因为3x3过滤器可以容纳100x100 98次。将padding=“same”
作为参数添加到conv2d
中,输出维度将与输入维度相同
默认设置为
padding=“valid”
由于您使用的是3x3过滤器,步长为1,因此最终得到的尺寸为98x98,因为您的3x3过滤器可以容纳100x100 98次。很有意义!非常感谢您如果我的答案对您有帮助,如果您能“接受”我的答案就太好了:D很有意义!非常感谢您如果我的答案对您有帮助,如果您能“接受”m就太好了y回答:D