微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Tensorflow 分类标签 0 和 1

如何解决Tensorflow 分类标签 0 和 1

我正在研究一个简单的分类问题。我继续执行示例并创建了一个模型。

我按照下面给出的方式排列了标签列。

label 0 1 1 0 0 1 因此,我想用样品测试系统。但它确实以百分比表示。

我希望它给出 2 个正确的值,0 或 1。

示例代码

input_dict = {name: tf.convert_to_tensor([value]) for name,value in sample.items()}
predictions = reloaded_model.predict(input_dict)
prob = tf.nn.sigmoid(predictions[0])

print(
    "This particular pet had a %.1f percent probability "
    "of getting adopted." % (100 * prob)
)

什么代码会导致 0 和 1?

谢谢。

解决方法

要做什么取决于您的模型是如何构建的。只有两个标签,您正在进行二元分类。如果在你的模型中最后一个密集层有 1 个神经元,那么它被设置为二元分类。在这种情况下,model.compile 中的损失函数应该是

loss=BinaryCrossentropy

Model.predict 在这种情况下将产生单值概率输出。您可以只使用 if 语句来确定类。如果概率小于 0.5,则为一类,如果概率大于或等于 0.5,则为另一类。现在您可能已经构建了您的模型,其中最后一个密集层有 2 个神经元。在这种情况下,如果标签是整数,您应该使用 sparse_categorical_crossentropy 或 categorical_crossentropy 如果标签是热编码为您的损失函数。这种情况下的 Model.predict 将产生两个概率作为输出。您要选择概率最高的索引作为类。 你可以用 class=np.argmax(predictions)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。