1
我想在Keras中仅使用1个通道对图像进行分类(29 x 29)。如果中间像素在一定范围内,则输出为1,否则为0。Keras中图像的二进制分类
对于训练集,我有10000个输出为1的图像和30000个输出为0的图像,我正在使用以下建筑:
model = Sequential()
# kernel = (4, 4); 6 outputmaps 26x26
model.add(Convolution2D(6, 4, 4, input_shape=(img_channels, img_rows, img_columns)))
model.add(Activation('relu'))
# 6 outputmaps of 13x13
model.add(MaxPooling2D(pool_size=(2, 2)))
# 12 outputmaps of 10x10 ; kernel = (4, 4)
model.add(Convolution2D(12, 4, 4))
model.add(Activation('relu'))
# 12 outputmaps of 5x5
model.add(MaxPooling2D(pool_size=(2, 2)))
# 24 outputmaps of 4x4 ; kernel = (2, 2)
model.add(Convolution2D(24, 2, 2))
model.add(Activation('relu'))
model.add(Flatten())
model.add(Dense(1, activation='sigmoid'))
编译,我现在用的是binary_crossentropy损失
model.compile(loss='binary_crossentropy', optimizer='sgd', class_mode='binary')
精度波动,但它达到每个时期后的0.75的最终值。 有什么我失踪?有什么我应该改变或添加为了这个工作?
为什么这对于cnn来说不是个好问题? – maz