0

我使用 2 个输入和 keras 功能 API 应用了这个模型,我希望得到分类报告(精度、召回率、f1 分数、支持),而不仅仅是准确度......

input_1 = Input(shape=(maxlen,))
input_2 = Input(shape=(12,))

embedding_layer = Embedding(vocab_size, 100, weights=[embedding_matrix], trainable=False)(input_1)
CNN_Layer_1 = Conv1D(128,2, activation='relu',\
                                 kernel_regularizer = regularizers.l2(0.0005),\
                                 bias_regularizer = regularizers.l2(0.0005))(embedding_layer)
CNN_Layer_2 = GlobalMaxPooling1D()(CNN_Layer_1)

CNN_Layer_3 = Dropout(0.5)(CNN_Layer_2)

CNN_Layer_4 = Dense(10, activation='sigmoid',\
                                kernel_regularizer=regularizers.l2(0.001),\
                                bias_regularizer=regularizers.l2(0.001),)(CNN_Layer_3)

dense_layer_1 = Dense(512, activation='relu')(input_2)
dense_layer_2 = Dense(256, activation='relu')(dense_layer_1)
dense_layer_3 = Dense(128, activation='relu')(dense_layer_2)
dense_layer_4 = Dense(64, activation='relu')(dense_layer_3)
dense_layer_5 = Dense(10, activation='sigmoid')(dense_layer_4)

concat_layer = Concatenate()([CNN_Layer_4, dense_layer_5])
dense_layer_6 = Dense(10, activation='relu')(concat_layer)
output = Dense(2, activation='softmax')(dense_layer_6)
model = Model(inputs=[input_1, input_2], outputs=output)

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['acc'])
print(model.summary())
history = model.fit(x=[X1_train, Xtrain_scaled], y=y_train, batch_size=128, epochs=20, verbose=1, validation_split=0.2)

score = model.evaluate(x=[X1_test, Xtest_scaled], y=y_test, verbose=1)

print("Test Score:", score[0])
print("Test Accuracy:", score[1])


                           
4

0 回答 0