tensorflow:将<dtype:'int64'=“”>标签转换为bool

时间:2017-07-02 10:57:19

标签: tensorflow

我正在运行wide and deep tutorial代码并且没有更改我收到错误:

WARNING:tensorflow:Casting <dtype: 'int64'> labels to bool.

我的问题是:这意味着什么,以及如何影响我希望预测超过2种可能结果的其他模型?

此错误出现在情境/教程中,其中预测很可能是一个布尔值,是/否的情况。但是如果我有三个可能值的标签,我认为这个布尔转换会杀死我的结果吗?

这个警告的起源是什么以及如何避免它,以便我可以训练一个有两个以上可能结果的网络?

2 个答案:

答案 0 :(得分:1)

使用DNNClassifier时遇到了完全相同的错误。要解决它,我需要为目标中的类数指定$scope.answerSelected = function(checkAnswer) { if (checkAnswer.checkAnswer) { checkAnswer.count++; } $scope.answerBoxSelected = true; }; 参数。

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

n_classes

答案 1 :(得分:0)

在本教程中使用tf.contrib.learn.LinearClassifier时遇到此错误:https://www.tensorflow.org/tutorials/wide

但是,在我的情况下,问题是在教程的input_fn中定义标签张量。以前,它看起来如下:

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)