tensorflow:铸造<;数据类型:';int64'&燃气轮机;标签到bool

tensorflow:铸造<;数据类型:';int64'&燃气轮机;标签到bool,tensorflow,Tensorflow,我正在运行代码,没有任何更改,我得到了错误: WARNING:tensorflow:Casting <dtype: 'int64'> labels to bool. 警告:tensorflow:将标签强制转换为bool。 我的问题是:这意味着什么?这将如何影响我想要预测2个以上可能结果的其他模型 此错误出现在预测为布尔值、是/否的情况/教程中。但是如果我有三个可能值的标签,我想这个布尔转换会扼杀我的结果,对吗 此警告的来源是什么?如何避免此警告,以便我可以训练具有两个以上可能结果

我正在运行代码,没有任何更改,我得到了错误:

WARNING:tensorflow:Casting <dtype: 'int64'> labels to bool.
警告:tensorflow:将标签强制转换为bool。
我的问题是:这意味着什么?这将如何影响我想要预测2个以上可能结果的其他模型

此错误出现在预测为布尔值、是/否的情况/教程中。但是如果我有三个可能值的标签,我想这个布尔转换会扼杀我的结果,对吗


此警告的来源是什么?如何避免此警告,以便我可以训练具有两个以上可能结果的网络?

使用DNNClassifier时,我遇到了完全相同的错误。要解决这个问题,我需要将
n_classes
参数指定为目标中的类数

n_classes
参数用于指定目标中的类数。默认情况下,它假定目标中只有两个类,因此将目标值转换为布尔值

m = tf.contrib.learn.DNNClassifier(
        model_dir=model_dir,
        n_classes=10, # <---------
        feature_columns=deep_columns,
        hidden_units=[400,50],
        optimizer=tf.train.ProximalAdagradOptimizer(
            learning_rate=0.001,
            l1_regularization_strength=0.001
        ))
m=tf.contrib.learn.DNNClassifier(
model_dir=model_dir,

n_classes=10,#我在本教程中使用
tf.contrib.learn.LinearClassifier
时遇到此错误:

然而,在我的例子中,问题在于在本教程的
输入中定义标签张量

df[LABEL_COLUMN] = (df["income_bracket"].apply(lambda x: ">50K" in x)).astype(int)
修复方法是将类型更改为bool:

df[LABEL_COLUMN] = (df["income_bracket"].apply(lambda x: ">50K" in x)).astype(bool)

你能解释一下这个问题中的
n_classes
变化吗?n_classes参数是指定目标中有多少个类。默认情况下,它假定目标中只有两个类,所以它将目标值转换为bool。