Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
tf.estimator.inputs.pandas\u input\u fn标签张量_Pandas_Tensorflow_Input - Fatal编程技术网

tf.estimator.inputs.pandas\u input\u fn标签张量

tf.estimator.inputs.pandas\u input\u fn标签张量,pandas,tensorflow,input,Pandas,Tensorflow,Input,正在试用Tensorflow的内置pandas\u input\u fn()和我命名为training\u示例的pandas数据帧 这是一个非常简单的数据框架,描述了一组特性和标签;然后将其作为参数x在pandas\u input\u fn()函数中传递,如下所示,如果我正确理解文档,它应该返回一个输入函数,其中的数据已经解析为特征和标签 input_function = tf.estimator.inputs.pandas_input_fn( x= training_examples, y=

正在试用Tensorflow的内置
pandas\u input\u fn()
和我命名为
training\u示例的pandas数据帧

这是一个非常简单的数据框架,描述了一组特性和标签;然后将其作为参数
x
pandas\u input\u fn()
函数中传递,如下所示,如果我正确理解文档,它应该返回一个输入函数,其中的数据已经解析为特征和标签

input_function = tf.estimator.inputs.pandas_input_fn(
x= training_examples,
y= None,
batch_size=128,
num_epochs=1,
shuffle=True,
queue_capacity=1000,
num_threads=1,
target_column='y'
)
但是,当我尝试将此函数传递给
.train()
方法时,出现如下错误:

ValueError: You must provide a labels Tensor. Given: None. Suggested 
troubleshooting steps: Check that your data contain your label feature. Check 
that your input_fn properly parses and returns labels.

不确定我做错了什么?

尝试使用target\u column=None,并在Y=training\u示例['label/target']中使用实际的Y列。

train\u input\u函数将其自身的特性和标签元组进行压缩。你的评论是正确的

x = training_examples[[feature_column_list]]
y = training_examples[label_column_name]
使用完整的数据集(在分解为训练和测试之前),我发现它可以有效地生成训练和测试输入函数。这就利用了sklearn的train_test_split功能和“stratify”,以确保标签中每个类别的案例比例正确

sklearn.model_selection import train_test_split

train_x, test_x, train_y, test_y = train_test_split(x, y, stratify=y)
此时,您可以指定输入函数

train_input_fn = tf.estimator.inputs.pandas_input_fn(x=train_x, y=train_y, shuffle=True, num_epochs=whatever, batch_size=whatever)

test_input_fn = tf.estimator.inputs.pandas_input_fn(x=test_x, y=test_y, shuffle=False, batch_size=1)

我不确定这里的y参数是否用于指定标签列的名称?从
y
:熊猫
系列
对象
None
如果不存在。您是否已经有一个名为
'y'
的列?通过指定
y=traning_examples['label column']
来解决它,但不确定这是最好的方法不知道,从未使用过张量流,最好的方法是遵循教程,使用他们的代码和示例数据来了解您应该做什么