tf.keras.metrics公司.TruePosites()在中返回错误的值模型.拟合()作为度量传递给模型.编译()

2024-09-29 06:29:02 发布

您现在位置:Python中文网/ 问答频道 /正文

当我将一个热编码标签作为训练和验证数据传递到tensorflowkeras'model.fit()函数时,度量tf.keras.metrics.TruePositives()返回错误的值。在

我在运行Tensorflow 2.0。在

例如,如果这是我的代码:

model.compile(optimizer, 'binary_crossentropy', 
              ['accuracy', tf.keras.metrics.TruePositives()])

history = model.fit(train_data, train_labels_binary, batch_size=32, epochs=30,
                    validation_data=(val_data, val_labels_binary), 
                    callbacks=[early_stopping])

train_labels_binary这是:array([[1, 0], [1, 0], [0, 1]])

得到的y_pred是{}

那么tf.keras.metrics.TruePositives()应该返回1,但它返回3。在

任何帮助都将不胜感激!!在


Tags: 数据编码datalabelsmodeltftrainval
1条回答
网友
1楼 · 发布于 2024-09-29 06:29:02

好的,我做了更多的实验,当输入不是1-热编码并且只有1个输出神经元时,它是固定的。因此,如果我们更改以下两行代码,所有指标都会正确运行:

这个:train_labels = np.eye(2)[np.random.randint(0, 2, size=(10, 1)).reshape(-1)]

收件人:train_labels = np.random.randint(0, 2, size=(10, 1))

以及

这个:model.add(layers.Dense(units=2, activation='sigmoid'))

收件人:model.add(layers.Dense(units=1, activation='sigmoid'))

相关问题 更多 >