我已经建立了以下模型:
def create_model(conv_kernels = 32, dense_nodes = 512):
model_input=Input(shape=(img_channels, img_rows, img_cols))
x = Convolution2D(conv_kernels, (3, 3), padding ='same', kernel_initializer='he_normal')(model_input)
x = Activation('relu')(x)
x = MaxPooling2D(pool_size=(2, 2))(x)
x = Convolution2D(conv_kernels, (3, 3), kernel_initializer='he_normal')(x)
x = Activation('relu')(x)
x = MaxPooling2D(pool_size=(2, 2))(x)
x = Dropout(0.25)(x)
x = Flatten()(x)
conv_out = (Dense(dense_nodes, activation='relu', kernel_constraint=maxnorm(3)))(x)
x1 = Dense(nb_classes, activation='softmax')(conv_out)
x2 = Dense(nb_classes, activation='softmax')(conv_out)
x3 = Dense(nb_classes, activation='softmax')(conv_out)
x4 = Dense(nb_classes, activation='softmax')(conv_out)
lst = [x1, x2, x3, x4]
model = Model(inputs=model_input, outputs=lst)
sgd = SGD(lr=lrate, momentum=0.9, decay=lrate/nb_epoch, nesterov=False)
model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])
return model
当我进行预测时:
model.predict(X_test)
它工作正常。但是,当我想获得这样的预测概率时:
model.predict_proba(X_test)
我的模型没有 predict_proba 功能。为什么不?是因为模型的多输出性质吗?