具有多值稀疏分类数据的Pandas输入函数

时间:2019-02-03 15:47:21

标签: pandas tensorflow tensorflow-datasets

给出一个熊猫数据框

df = pd.DataFrame([
    [1, ["a", "b"], 10], 
    [2, ["b"], 20], 
], columns= ["a", "b", "label"])

“ b”列是代表稀疏分类数据的值列表时,如何创建输入函数以供训练和预测中的估计器使用?

由于b列,使用padas_input_fn无效,

train_fn = tf.estimator.inputs.pandas_input_fn(x=df[["a", "b"]], y=df.label, shuffle=True)

-错误-

 tensorflow.python.framework.errors_impl.InternalError: Unable to get element as bytes.

我可以创建一个tfrecords文件,使用BytesList写入b列,然后使用TFRecordDataset读取数据,而不是使用parse func来使用{{ 1}},它可以工作。

但是如何使用内存中的varLenFeature和/或熊猫输入fn将这些数据输入估算器?

下面是我的所有代码:

object/dataframe

1 个答案:

答案 0 :(得分:0)

由于我对tensorflow.estimator API缺乏经验,因此我没有针对您的查询的完整解决方案,但是您是否有可能重塑数据框?如果列b的列表中的值本质上是分类的,也许您可​​以尝试对它们进行一次热编码,然后在该过程中向df添加更多列?这样一来,您的df就可以对所有估算器进行处理了。