在 运行 时间内将特征连接到输入层的词嵌入
Concatenating features to word embedding at the input layer during run time
假设我在嵌入查找后获得一个输入矩阵,如下所示:
[ [[0.5, 0.25, 0.47, 0.86
], [0.8. 0.12, 0.63, 0.97
], [0.7, 0.47, 0.32, 0.01
]], ..., [[...]] ] i.,e 每个嵌入在上述案例中,dim = 4,句子长度为 3。
我们如何使用 Tensorflow/TFLearn 或 Theano 中的占位符附加 dim say 2 的特征向量,动态对应于句子中的每个单词(即,在 运行 时间内)?所以final input will be of dim = embedding_dim + feature_dim.
P.S:输入矩阵是形状为 [x y z] 的 3D 张量,x = 批次中的句子数,y = 句子中的单词数(包括填充)。 z = 嵌入维度。最终形状将是 [x y z+2].
在 Tensorflow 中,您可以创建所需形状 [x, y, 2] 的占位符,然后使用 tf.concat 将其连接到输入张量。假设 'inputs' 是你的 [x, y, z] 嵌入张量,你可以这样做:
features = tf.placeholder(tf.float32, [x, y, 2])
new_inputs = tf.concat(2, [inputs, features]) # Concatenate along the 3rd dimension
假设我在嵌入查找后获得一个输入矩阵,如下所示:
[ [[0.5, 0.25, 0.47, 0.86
], [0.8. 0.12, 0.63, 0.97
], [0.7, 0.47, 0.32, 0.01
]], ..., [[...]] ] i.,e 每个嵌入在上述案例中,dim = 4,句子长度为 3。
我们如何使用 Tensorflow/TFLearn 或 Theano 中的占位符附加 dim say 2 的特征向量,动态对应于句子中的每个单词(即,在 运行 时间内)?所以final input will be of dim = embedding_dim + feature_dim.
P.S:输入矩阵是形状为 [x y z] 的 3D 张量,x = 批次中的句子数,y = 句子中的单词数(包括填充)。 z = 嵌入维度。最终形状将是 [x y z+2].
在 Tensorflow 中,您可以创建所需形状 [x, y, 2] 的占位符,然后使用 tf.concat 将其连接到输入张量。假设 'inputs' 是你的 [x, y, z] 嵌入张量,你可以这样做:
features = tf.placeholder(tf.float32, [x, y, 2])
new_inputs = tf.concat(2, [inputs, features]) # Concatenate along the 3rd dimension