Tensorflow 分类标签 0 和 1
Tensorflow classification label 0 and 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?
谢谢。
要做什么取决于您构建模型的方式。只有两个标签,你正在做二进制 classification。如果在你的模型中,最后一个密集层有 1 个神经元,那么它被设置为二进制 classification。在那种情况下,你在 model.compile 中的损失函数应该是
loss=BinaryCrossentropy
Model.predict 在这种情况下将产生单值概率输出。您可以只使用 if 语句来确定 class。如果概率小于 .5,则为一个 class,如果大于或等于 .5,则为另一个 class。现在你可能已经构建了你的模型,其中最后一个致密层有 2 个神经元。在这种情况下,如果标签是整数,您应该使用 sparse_categorical_crossentropy,如果标签是一个热编码作为您的损失函数,则应该使用 categorical_crossentropy。 Model.predict 在这种情况下将产生两个概率作为输出。您希望 select 的索引概率最高为 class。
您可以使用 class=np.argmax(predictions)
我正在处理一个简单的分类问题。我继续完成示例并创建了一个模型。
我将标签栏排列如下。
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?
谢谢。
要做什么取决于您构建模型的方式。只有两个标签,你正在做二进制 classification。如果在你的模型中,最后一个密集层有 1 个神经元,那么它被设置为二进制 classification。在那种情况下,你在 model.compile 中的损失函数应该是
loss=BinaryCrossentropy
Model.predict 在这种情况下将产生单值概率输出。您可以只使用 if 语句来确定 class。如果概率小于 .5,则为一个 class,如果大于或等于 .5,则为另一个 class。现在你可能已经构建了你的模型,其中最后一个致密层有 2 个神经元。在这种情况下,如果标签是整数,您应该使用 sparse_categorical_crossentropy,如果标签是一个热编码作为您的损失函数,则应该使用 categorical_crossentropy。 Model.predict 在这种情况下将产生两个概率作为输出。您希望 select 的索引概率最高为 class。 您可以使用 class=np.argmax(predictions)