将tf.nn.embedding_lookup与多列一起使用

时间:2018-08-07 20:06:36

标签: python tensorflow lstm embedding-lookup

我现在在使用张量流制作预测模型(lstm)模型时遇到问题。 我尝试将embedding_lookup与多个分类列一起使用。 这是我的数据(shape [100,12,16])

[[[1, 1, 1, 7, 1, -1, 26, 9],
  [1, 5, 2, -5, 2, 20, 25, 8],
  [1, 4, 3, 1, 1, 32, 1, 7],
  ...]]

为了进行预测,每一行都有多个功能,我将这些功能更改为分类数据(0、1、2 ...)。之后,我想为每列使用嵌入层,然后将所有内容合并为LSTM的输入数据。 如何使用嵌入层并相互连接?

这是我的代码

def get_var(self, name='', shape=None, dtype=tf.float32):
    return tf.get_variable(name, shape, dtype=dtype, initializer=self.initializer)
def get_embedding(self, data='', name='', shape=[], dtype=tf.float32):
    return tf.nn.embedding_lookup(self.get_var(name=name, shape=shape), data)


emb_concat = self.get_embedding(tf.cast(data[:,:, 0], 'int32'), name='emb_ap2id'+type, shape=[3, 2])

emb = self.get_embedding(tf.cast(data[:,:, 1], 'int32'), name='emb_month'+type, shape=[12, 11])
emb_concat = tf.concat(emb_concat, emb, axis=2)

它不起作用,并且我收到一个错误消息。

result img

0 个答案:

没有答案