Tensorflow:将张量桶化,然后产生分类张量

时间:2019-09-26 13:56:01

标签: python tensorflow

我想将连续变量的张量转换为桶,然后转换为分类张量(基于边界的一次热编码)

说我有这个

input = [1,2,3,4,5,6,7,8,9]
boundaries = [3.5, 5.5]

我想要以下输出:

buckets = [0, 0, 0, 1, 1, 2, 2, 2, 2]
categorical = [[1, 0, 0],
               [1, 0, 0],
               [1, 0, 0],
               [0, 1, 0],
               [0, 1, 0],
               [0, 0, 1],
               [0, 0, 1],
               [0, 0, 1],
               [0, 0, 1]]

我知道tf.feature_column.bucketized_columntf.feature_column.categorical_column_with_identity,但是我想在纯张量上使用函数,而无需将数据转换为numeric_column

我也知道tf.one_hot允许从categorical获取buckets,但是不知道如何从输入张量获取buckets

请帮忙吗?

1 个答案:

答案 0 :(得分:1)

如问题中所述,使用tf.one_hot从存储桶中获取类别,然后使用tf.python.ops.math_ops._bucketize获取存储桶