Python 为什么要使用model.add(conv2D)两次

Python 为什么要使用model.add(conv2D)两次,python,tensorflow,keras,Python,Tensorflow,Keras,在上面的代码中,我怀疑为什么要在每个层中使用model.add(Conv2D)两次。是用过滤器做两次卷积,还是必须加两次才能做一次。是的,做两次卷积。他们不应该称之为“层”,也就是“块”,一组层。将这些块分开是很有趣的,这样可以知道图像是通过池缩小的,但是每个块都有4层。这4个中有2个是卷积层。无论是两个语句上的过滤器数量相等,还是可能也不同,我不明白y需要给出64和64。相反,我可以一步给出128。 #1st convolution layer model = Sequential() mod

在上面的代码中,我怀疑为什么要在每个层中使用model.add(Conv2D)两次。是用过滤器做两次卷积,还是必须加两次才能做一次。

是的,做两次卷积。他们不应该称之为“层”,也就是“块”,一组层。将这些块分开是很有趣的,这样可以知道图像是通过池缩小的,但是每个块都有4层。这4个中有2个是卷积层。无论是两个语句上的过滤器数量相等,还是可能也不同,我不明白y需要给出64和64。相反,我可以一步给出128。
#1st convolution layer
model = Sequential()
model.add(Conv2D(64, kernel_size=(3, 3), activation='relu', input_shape=(X_train.shape[1:])))
model.add(Conv2D(64,kernel_size= (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2), strides=(2, 2)))
model.add(Dropout(0.5))

#2nd convolution layer
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2), strides=(2, 2)))
model.add(Dropout(0.5))

#3rd convolution layer
model.add(Conv2D(128, (3, 3), activation='relu'))
model.add(Conv2D(128, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2), strides=(2, 2)))
model.add(Flatten())