我正在使用conv net进行图像分类,我从头开始构建它
与垃圾相比,我得到了很好的结果
网络架构:
model = Sequential()
model.add(Conv2D(24,kernel_size=3,padding='same',activation='relu',
input_shape=(n,n,1)))
model.add(MaxPool2D())
model.add(Conv2D(48,kernel_size=3,padding='same',activation='relu'))
model.add(MaxPool2D())
model.add(Conv2D(64,kernel_size=3,padding='same',activation='relu'))
model.add(MaxPool2D(padding='same'))
model.add(Conv2D(96,kernel_size=3,padding='same',activation='relu'))
model.add(MaxPool2D(padding='same'))
model.add(Flatten())
model.add(Dense(128, activation='relu')) # SIZE 128 FC1
model.add(Dropout(0.5))
model.add(Dense(256, activation='relu')) # SIZE 256 FC2
model.add(Dropout(0.5))
model.add(Dense(12, activation='softmax'))
model.compile(optimizer="adam", loss="categorical_crossentropy",metrics=[recall, fmeasure,precision,"accuracy"]) 正如你所看到的,我的第一个全连接层(FC1)的大小是128,下一个是256 (FC2)
拥有比FC1更大的FC2是不是很“愚蠢”?如何计算FC2上的价值?
发布于 2019-06-13 22:32:19
这不是愚蠢或错误,而是不同寻常。当你试图进行预测时,一般的想法是在到达输出层之前逐渐减少完全连接层中的神经元数量。如果增加大小对您的数据有效,那么它没有什么问题。只需记住,更多的神经元也会导致数据过度拟合,也会导致更多的计算时间。
没有计算FC层大小的规则。很多时候,第一个FC层的神经元数量与通过展平完全连接的层之前的最后一层而获得的向量长度相同,但这是一个旧的方法,没有必要,也不能保证良好的结果。
https://stackoverflow.com/questions/56582378
复制相似问题