前言:我对机器学习完全陌生,所以这可能是一个简单的解决方案
期望:首先我训练了一个CNN模型,使用二元交叉熵对两类(好的和坏的)进行验证,正确率为97%,提交了新的图像进行预测,并得到了预期的结果(这两个新的图像在90年代被正确排序的概率是正确的)
1 #print(model.predict_classes(img))
0.965675 #print(model.predict_proba(img))
问题:现在我尝试切换到分类交叉熵来使用三个类(b1 b2 b3),模型的训练精度为96%。我提交了3个新的图像预测,2个图像应该匹配,一个是左外野,不应该匹配任何东西。所有三张图片都应该符合1。概率
[1] #print(model.predict_classes(img))
[[0. 1. 0.]] #print(model.predict_proba(img))
[2]
[[0. 0. 1.]]
[1]
[[0. 1. 0.]]
问:为什么左外场的图像会与训练到96%的模型匹配?为什么所有的概率都在“1”这个范畴内(100%)
附录:
model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3),
activation='relu',
input_shape=input_shape))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(num_classes, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='Adadelta', metrics=['accuracy'])
目前没有回答
相关问题 更多 >
编程相关推荐