Imbalanced
。如果是这样,您可以尝试:我已经使用Keras / Tensorflow建立了一个神经网络模型,该模型在建立时(使用'fit_generator')报告了良好的训练和验证准确性(90%ish),并且在测试集上使用了'evaluate_generator'函数报告了类似的准确性。但是,当我随后尝试使用该模型来生成预测时,无论是使用“ predict_generator”还是针对单个文件手动生成预测,它都会为每个预测给出“ 0”的答案。下面的代码。我没有经验,非常感谢指导。谢谢。
from keras.preprocessing.image import img_to_array, load_img, ImageDataGenerator
from keras.models import load_model
import glob, sys
import numpy as np
myModel = load_model("Gender.h5")
dataGenerator = ImageDataGenerator()
testGen = dataGenerator.flow_from_directory("newData\\A1\\test",target_size=(218,178),
batch_size=32, class_mode='binary',shuffle=False,color_mode="rgb")
testGen.reset()
print("Test Set Accuracy: %0.1f%%"%(100*myModel.evaluate_generator(testGen)[1]))
testGen.reset()
testPredictions = myModel.predict_generator(testGen)
predictedClassIndices=np.argmax(testPredictions,axis=1)
filenames = testGen.filenames
for f in range(len(filenames)):
print(filenames[f],":",predictedClassIndices[f])
[我已经使用Keras / Tensorflow建立了一个神经网络模型,该模型在建立时(使用'fit_generator')报告了良好的训练和验证准确性(90%ish),并使用了'...]报告了相似的准确性] >> [
Imbalanced
。如果是这样,您可以尝试:Dataset
是平衡
testPredictions
结果时,这里的问题出在最终步骤。 argmax
方法返回the indices of the maximum values along an axis
。 在这种情况下,它始终为0
,因为沿着axis=1
,我们只有一个元素(with index 0
)。因为您正在执行binary classification
,所以应用0.5
probability threshold
分配classes
最有意义。相同的代码如下所示:predictedClassIndices = testPredictions > 0.5
for idx, filename in enumerate(filenames):
print(filename,":",predictedClassIndices[idx])
然后输出将为True
和False
,其中False
表示Value of Label = 0 (Female)
,True表示Value of Label = 1 (Male)
,或者可以采用其他方式,如下所示:
female/female.1546.jpg : [False]
female/female.1547.jpg : [ True]
female/female.1548.jpg : [False]
female/female.1549.jpg : [False]
female/female.1550.jpg : [False]
female/female.1566.jpg : [False]
female/female.1593.jpg : [ True]
female/female.1594.jpg : [False]
male/male.1514.jpg : [ True]
male/male.1520.jpg : [False]
male/male.1525.jpg : [False]
male/male.1551.jpg : [ True]
male/male.1555.jpg : [False]
male/male.1574.jpg : [ True]
male/male.1594.jpg : [ True]
male/male.1597.jpg : [ True]
male/male.1599.jpg : [ True]
希望这会有所帮助。祝您学习愉快!
Imbalanced
。如果是这样,您可以尝试: