Tensorflow 多值离散特征嵌入的处理(对取值个数不定的特征嵌入的处理)

这篇博客介绍了在TensorFlow中处理多值离散特征嵌入的两种方法:1) 使用`tf.nn.embedding_lookup_sparse`取平均;2) 自定义嵌入层后的操作来求和。对于不确定取值个数的特征,如电影类型,可以通过求平均或求和来整合嵌入向量。文中提到在使用`tf.nn.embedding_lookup_sparse`时需要注意的细节,并探讨了自定义方法的灵活性,尽管如何按非填充id个数求平均仍是个问题。
摘要由CSDN通过智能技术生成

多值离散问题:有的特征只有一个固定的取值,但是有的特征有不确定个数的取值,在tensorflow中特征输入又需要一样的长度。比如一个电影的类型可以有多种等,对电影类型进行嵌入时就会遇到问题。多个类型时,可以把多个类型的嵌入向量求和、求平均、根号等等。
一直不熟悉tensorflow,刚开始这个问题卡了我很久,还是记录一下吧。

1 tf.nn.embedding_lookup_sparse取平均

刚开始遇到这个问题,其实思路求平均等很简单,只不过自己不熟悉tensorflow,刚开始不知道如何自定义的处理,就按照网上搜到的这个方法。

TAG_SET = ["A","B","C","D","E"]#所有可能的取值
tags_str=["A|B|C",
          "E|",
          "C|D",
    ]#必须是List 每个元素是str

table = contrib.lookup.index_table_from_tensor(mapping=TAG_SET, default_value=-1)
split_tags = tf.string_split(tags_str,"|")

tags=tf.SparseTensor(indices=split_tags.indices,
                     values=table.lookup(split_tags.values),
                     dense_shape=split_tags
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值