我有点困惑......我首先开始:
model = Sequential() # (32, 32, 3)
model.add(Conv2D(4, (3, 3), activation='relu', input_shape=input_shape))
model.add(Conv2D(8, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(16, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(2, activation='softmax'))
还有两个模型,其中一个额外的Conv2D, Conv2D, MaxPool, Dropout
块具有模型2中的16和32个转换滤波器,另外两个模块具有16,32,64,128个转换滤波器。
我的最大准确率分别为75%,78%,82%......
然后我将第一个模型中Conv2D中的过滤器数量更改为16和32,将平面层中的节点数量更改为300,精度达到97%。 然而,改变模型2和3,它们与模型1基本相同,但层数更多,并没有提高准确性,实际上使情况更糟......我在额外的Conv层和不同的数量中尝试了不同数量的滤波器平面层中的节点,从300到1500,但似乎没有任何区别。无论如何,具有最少层数的第一个模型似乎做得最好。
为什么?