Python 如何检测keras NN照片上没有预定义类别的项目?

Python 如何检测keras NN照片上没有预定义类别的项目?,python,neural-network,keras,conv-neural-network,Python,Neural Network,Keras,Conv Neural Network,我尝试对一组人脸进行人脸识别。对于解决方案,我在Keras中使用了一个基本的神经网络 model = Sequential() model.add(Convolution2D(65, 3, 3, input_shape=(1, 50, 50))) .... model.add(Dense(persons_cnt, activation='softmax')) model.compile(loss='categorical_crossentropy', optimize

我尝试对一组人脸进行人脸识别。对于解决方案,我在Keras中使用了一个基本的神经网络

model = Sequential()
model.add(Convolution2D(65, 3, 3, input_shape=(1, 50, 50)))
....
model.add(Dense(persons_cnt, activation='softmax'))
model.compile(loss='categorical_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])
输入层上有一组大小为50x50px的灰度图像,输出层上有[0 1 0…]等向量

当我和培训组的人一起用照片测试模型时,一切都正常。但如果我用一张随机陌生人的照片调用
model.predict()
,我总是会从训练集中得到一个人的决定。例如,对于两个人,我总是得到答案
[1,0]
[0,1]
,并且没有办法得到答案
[0,0]
或至少
[0.5,0.5]
(最后一个有时可能吗?)

我还尝试将陌生人添加到训练集中,并为他们分配新类别(他们的训练输出为
[0,0,1]
)。但在这种情况下,我的NN无法为年龄计算适当的权重


那么,有没有办法从预定义的集合中识别出人而忽略其他人呢?

你所说的“年龄权重”是什么意思?你的问题是如何将“未知/陌生人”输出添加到你的网络中?@nemo我的意思是它可以迭代数千个时代,准确性几乎保持不变。是的,你正确理解了我的问题。