小编bub*_*ble的帖子

使用 Keras 进行多输出分类

我正在使用 keras 构建多输出分类模型。我的数据集是这样的

[x1,x2,x3,x4,y1,y2,y3]

x1,x2,x3 是特征,y1,y2,y3 是标签,y1,y2,y3 是多类。

我已经建立了一个模型(我忽略了一些隐藏层):

def baseline_model(input_dim=23,output_dim=3):
    model_in = Input(shape=(input_dim,))
    model = Dense(input_dim*5,kernel_initializer='uniform',input_dim=input_dim)(model_in)
    model = Activation(activation='relu')(model)
    model = Dropout(0.5)(model)

    ...................

    model = Dense(output_dim,kernel_initializer='uniform')(model)
    model = Activation(activation='sigmoid')(model)

    model = Model(model_in,model)
    model.compile(optimizer='adam',loss='binary_crossentropy', metrics=['accuracy'])
    return model
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用keras的方法使其支持分类:

estimator = KerasClassifier(build_fn=baseline_model)
estimator.fit()
estimator.predict(df[0:10])
Run Code Online (Sandbox Code Playgroud)

但我发现结果不是多输出的,只输出一维。

[0,0,0,0,0,0,0,0,0,0]

那么对于多输出分类问题,我们能不能使用KerasClassifier函数来学习呢?

multilabel-classification deep-learning keras tensorflow multiclass-classification

2
推荐指数
1
解决办法
6721
查看次数