tf.contrib.layers.sparse_column_with_integerized_feature可以处理一列中具有多个输入的分类要素吗?

时间:2017-06-09 21:58:00

标签: python machine-learning tensorflow deep-learning

我只是使用Tensorflow及其tf.learn api来创建和训练DNNRegressor模型。我有一个多元的整数特征列(每行可以在该列中有多个整数值),我对此特征列使用tf.contrib.layers.sparse_column_with_integerized_feature。

现在我的问题是csv文件中多价特征列的正确分隔符是什么。 例如,我有一个csv,col2是多价功能,它不是一个热门功能:

  1, 2, 1:2:3:4, 5
  2, 1, 4:5, 6

如你所见,我使用':'在col2中分离整数特征值,但它看起来不对,我在运行DNNRegressor时出现此错误,并将此特征列声明为tf.contrib.layers.sparse_column_with_integerized_feature:

 'Value passed to parameter 'x' has DataType string not in list of allowed 
  values: int32, int64, float32, float64'.

我真的很感谢你的帮助

1 个答案:

答案 0 :(得分:0)

tf.contrib.layers.sparse_column_with_integerized_feature仅适用于int32int64值,因此无法完全按照您的要求运行。

tensorflow支持数字列中的多维,因此您可以使用tf.feature_column.numeric_column并指定您拥有的shape。请注意,张量流将期望所有这些形状都相同,因此您需要将所有值填充到一个共同的形状。

冒号':'分隔符适用于多价列,here's an example如何使用pandas将多个值读入DataFrame(问题与XML有关,但对CSV有效) 。您可以将此model.train()传递给input_fn的数据框。