我只是使用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'.
我真的很感谢你的帮助
答案 0 :(得分:0)
tf.contrib.layers.sparse_column_with_integerized_feature
仅适用于int32
或int64
值,因此无法完全按照您的要求运行。
但tensorflow
支持数字列中的多维,因此您可以使用tf.feature_column.numeric_column
并指定您拥有的shape
。请注意,张量流将期望所有这些形状都相同,因此您需要将所有值填充到一个共同的形状。
冒号':'
分隔符适用于多价列,here's an example如何使用pandas将多个值读入DataFrame
(问题与XML有关,但对CSV有效) 。您可以将此model.train()
传递给input_fn
的数据框。