我创建了一个简单的Keras神经网络,该神经网络在两个数据集(组合了两组类别(一组19个类别和一组具有54个类别))上进行了训练,我想限制这些预测只能将模型定义为一组类(即仅来自测试数据集的类(54个类))。
这是我的(相关)代码:
network = Sequential([])
network.add(Dense(units, activation='relu', input_shape=(768*3,)))
network.add(Dropout(dropout))
network.add(Dense(len(rels), activation='softmax'))
optimizer = Adam(lr=learning_rate)
network.compile(optimizer=optimizer,
loss='categorical_crossentropy',
metrics=['accuracy'])
trainX, valX, trainy, valy = train_test_split(trainX, trainy, random_state=2020, test_size=0.1)
history = network.fit(trainX, trainy, validation_data=(valX, valy), epochs=epochs, batch_size=batch_no, verbose=0)
y_pred = network.predict(testX, verbose=0)
我希望y_pred而不是对所有73个类别都具有概率,而对前19个类别的标准概率为0,对所有其他类别的预测概率则为
我希望能够获得此修改后模型的测试准确性和测试损失。
我将如何去做?