Tensorflow 如何加上「;其他";神经网络课程?
我必须在真实、虚假和其他图像之间进行分类,但我只有真实和虚假人脸的数据集,如何添加“其他”类,即既不是真实也不是虚假人脸 这就是我加载数据集的方式Tensorflow 如何加上「;其他";神经网络课程?,tensorflow,keras,deep-learning,neural-network,conv-neural-network,Tensorflow,Keras,Deep Learning,Neural Network,Conv Neural Network,我必须在真实、虚假和其他图像之间进行分类,但我只有真实和虚假人脸的数据集,如何添加“其他”类,即既不是真实也不是虚假人脸 这就是我加载数据集的方式 TRAINING_DIR = "Dataset\Training Data" train_datagen = ImageDataGenerator() train_generator = train_datagen.flow_from_directory(TRAINING_DIR,
TRAINING_DIR = "Dataset\Training Data"
train_datagen = ImageDataGenerator()
train_generator = train_datagen.flow_from_directory(TRAINING_DIR,
batch_size=16,
target_size=(300, 300))
这是我的输出
Found 1944 images belonging to 2 classes.
您可以根据网络的输出进行预测。如果它以超过90%的概率预测第一类,那么它就是第一类。如果低于10%,则为第二个。否则-它是“其他”
有一个机器学习比赛,他们让我们增加“其他”类。他们没有提供数据,所以我才这么问 这是否意味着不允许您使用任何其他数据?如果可以,请拍摄一些其他非面图像。学习第二个单独的模型
M2
,它有两个类:FACE
和OTHER
。对于此型号,将所有人脸图像(所有真假图像一起)标记为face
使用两个类REAL
和FAKE
训练您的原始型号M1
在培训这两个模型后,遵循如下决策过程:
For an input image `I`,
Does `M2` predict that the input is a `FACE`?
|--Yes: Does `M1` predict the image is `REAL`?
|--Yes: Output "real image".
|--No: Output "fake image".
|--No: Output "other"
如果您不能使用任何其他数据,请尝试Andrey的答案或研究可以检测分布外输入的方法。如果前两个类是“真”和“假”,那么“其他”是什么?1。真面目2。假面3。其他反对意见那么,我认为公认的答案行不通。比如说,图像成为真实人脸的概率为50%,这意味着模型不确定。为什么不使用非人脸的图像集合作为额外的训练数据?还有,为什么你需要一个“其他”分类标签?有一个机器学习比赛,他们告诉我们添加“其他”类。他们没有提供数据,所以这就是我问的原因。你能告诉我如何得到预测的概率吗?在keras?@AdarshWase中用于多类-您的NN输出通常具有softmax激活(输出概率)。即使不是这样,您也可以对输出应用softmax。我认为二进制分类应该是这样的