使用张量流

时间:2016-12-04 07:05:34

标签: tensorflow embedding

假设我的数据有25个功能。在Keras,我可以轻松地为每个输入要素实现Embedding图层,并将它们合并在一起以提供给以后的图层。

我看到tf.nn.embedding_lookup接受id参数,该参数可以只是一个普通整数或一个整数数组([1,2,3,..])。但是,要素输入通常具有

形状
x = tf.placeholder(tf.float32, [None, in_feature_num]) 

我可以使用

将功能拆分为自己的功能
X = tf.split(1,in_feature_num,x)

并且每个特征输入的形状为[?,1]。但是embedding_lookup没有形成[?,1]的形状,而且由于我们没有指定的行长度,我不能reshapeunpack形状如此[?]。

那么,我怎样才能转换像

这样的输入
[[1],
 [2],
 [3],
  ...
]

进入这样的嵌入表示:

[
  [....], #a vector
  [....], #a vector
  [....], #a vector 
   ...
]

相关的帖子有:What does tf.nn.embedding_lookup function do?TensorFlow Embedding Lookup 但那些帖子并没有解决我的问题。

1 个答案:

答案 0 :(得分:-2)

我想我知道你的意思。问题是这些功能有哪些?如果它们是数字的,那么您实际上并不需要嵌入层 - 您可以使用完全连接的层。但是,如果他们是绝对的,我认为你有两个选择: 1.为每个特征单独嵌入(因此你最终会有25个嵌入层,需要连接) 2.首先将功能合并为一个