张量流版本='1.12.0'
keras 版本 = '2.1.6-tf'
我正在使用带有 tensorflow 后端的 keras。
我想得到预测的概率值。我希望概率总和为 1。我尝试使用 'softmax' 和 'categorical_crossentropy' 但没有任何效果。
这是我的模型:
X = pickle.load(open("X.pickle", "rb"))
y = pickle.load(open("y.pickle", "rb"))
number_of_gestures = 5
y = to_categorical(y, num_classes=number_of_gestures) #to_categorical is a function from keras - np_utils.
model = Sequential()
model.add(Conv2D(16, (2,2), input_shape=(IMG_SIZE, IMG_SIZE, 1), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2), padding='same'))
model.add(Conv2D(32, (5,5), activation='relu'))
model.add(MaxPooling2D(pool_size=(5, 5), strides=(5, 5), padding='same'))
model.add(Conv2D(64, (5,5), activation='relu'))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(number_of_gestures, activation='softmax'))
sgd = optimizers.SGD(lr=1e-2)
model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])
model.fit(X, y, batch_size=500, epochs=40, validation_split=0.1)
概率如下所示:
[1。0. 0. 0. 0.]
我希望它看起来像这样:
[0.897。0.023。0.158。0.780。0.1021]
我知道它不等于 1,但这只是一个例子。