如何从TensorFlow2模型获得0或1的二进制分类预测?

问题描述

我正在尝试在TensorFlow中进行二进制分类。我遇到的问题是,尽管我的模型能够实现高精度,但我不确定如何在不使用某些任意函数或截止值的情况下从0或1的角度获得输出的预测。

# Labels
sample of labels: [1,1,0]

# Model
def cross_sell_model(preprocessing_head,inputs):
    body = tf.keras.Sequential([
        layers.Dense(64),layers.Dense(1)
    ])

    preprocessed_inputs = preprocessing_head(inputs)
    result = body(preprocessed_inputs)
    model = tf.keras.Model(inputs,result)

    model.compile(optimizer='adam',loss=tf.losses.BinaryCrossentropy(from_logits=True),metrics=['accuracy'])
    
    return model

cross_sell_model = cross_sell_model(cross_sell_preprocessing,inputs)

# Training
history = cross_sell_model.fit(x=cross_sell_features_dict,y=cross_sell_labels,epochs=2,shuffle=True,validation_split = 0.2)

Epoch 1/2
9528/9528 [==============================] - 55s 6ms/step - loss: 0.2763 - accuracy: 0.8770 - val_loss: 0.2694 - val_accuracy: 0.8790
Epoch 2/2
9528/9528 [==============================] - 57s 6ms/step - loss: 0.2710 - accuracy: 0.8770 - val_loss: 0.2672 - val_accuracy: 0.8790

# Predictions
cross_sell_model(cross_sell_feat_dict)

<tf.Tensor: shape=(381109,1),dtype=float32,numpy=
array([[-0.475],[-3.463],[-0.479],...,[-6.866],[-1.443],[-2.572]],dtype=float32)>

我目前正在复制此Tensorflow Example中的步骤,但我只是使用其他数据集来执行二进制分类

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...