假设我的数据有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]的形状,而且由于我们没有指定的行长度,我不能reshape
或unpack
形状如此[?]。
那么,我怎样才能转换像
这样的输入[[1],
[2],
[3],
...
]
进入这样的嵌入表示:
[
[....], #a vector
[....], #a vector
[....], #a vector
...
]
相关的帖子有:What does tf.nn.embedding_lookup function do?和TensorFlow Embedding Lookup 但那些帖子并没有解决我的问题。
答案 0 :(得分:-2)
我想我知道你的意思。问题是这些功能有哪些?如果它们是数字的,那么您实际上并不需要嵌入层 - 您可以使用完全连接的层。但是,如果他们是绝对的,我认为你有两个选择: 1.为每个特征单独嵌入(因此你最终会有25个嵌入层,需要连接) 2.首先将功能合并为一个