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