Keras CNN可以预测多个类别吗?

时间:2019-11-06 18:28:37

标签: keras neural-network conv-neural-network

我制作了一个keras CNN模型来预测不同的手势,但是该模型没有预测正确的输出。我有10节课。但是对于某些图像,它显示的结果类似[0,1,0,0,1,0,0,0,0,0]。我的问题是为什么会这样。 我的建筑。

model = Sequential()

model.add(Conv2D(32, (5,5), input_shape=x.shape[1:])) 
model.add(Conv2D(32, (5,5), input_shape=x.shape[1:]))
model.add(Conv2D(32, (5,5), input_shape=x.shape[1:]))
model.add(Activation('relu'))
model.add(MaxPooling2D(2,2))

model.add(Conv2D(64, (3,3), input_shape=x.shape[1:]))
model.add(Conv2D(64, (3,3), input_shape=x.shape[1:]))
model.add(Conv2D(64, (3,3), input_shape=x.shape[1:]))
model.add(Activation('relu'))
model.add(MaxPooling2D(2,2))

model.add(Flatten())

model.add(Dense(64))
model.add(Activation('relu'))

model.add(Dense(64))
model.add(Activation('relu'))

model.add(Dense(10))
model.add(Activation('sigmoid'))

model.compile(loss='binary_crossentropy',
          optimizer = 'adam',
          metrics = ['accuracy']
          )
model.fit(x, y, epochs=10)

1 个答案:

答案 0 :(得分:0)

您正在使用binary_crossentropy损失,该损失应用于二进制分类问题。对于多类问题,应使用categorical_crossentropy。您可能还想将最后一层的激活更改为softmax

这是我所看到的明显的工程问题;话虽如此,您可能必须试验层数,时期,学习率等才能获得有效的模型。