gpt4 book ai didi

python - 当作为指标传递给 model.compile() 时,tf.keras.metrics.TruePositives() 在 model.fit() 中返回错误值

转载 作者:太空宇宙 更新时间:2023-11-03 20:31:55 24 4
gpt4 key购买 nike

当我将单热编码标签作为训练和验证数据传递到tensorflow keras的model.fit()函数中时,指标tf.keras.metrics.TruePositives() code> 返回错误值。

我正在运行 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_predarray([[1, 0], [1, 0], [0, 1]])

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

任何帮助将不胜感激!!

最佳答案

好吧,我做了一些更多的实验,当输入不是 1-hot 编码并且只有 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'))

关于python - 当作为指标传递给 model.compile() 时,tf.keras.metrics.TruePositives() 在 model.fit() 中返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57445940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com