重塑Conv2D的嵌入层输出?

时间:2020-08-03 07:59:17

标签: python tensorflow deep-learning conv-neural-network

嵌入层的输出形状为

embedding_4 (Embedding)         (None, 10, 50)

其中10是单词数,而50是向量的维数。如何重整张量以将其输入给

Conv2D(50,(2,50),padding='same',activation='relu')

层。使用Keras编写代码。

1 个答案:

答案 0 :(得分:0)

因此,正如评论所建议的那样,如果使用Conv1D会更好,因为Conv1D所需的输入的排名为3。另外,对于Conv2d,您将需要输入排名为4的输入。

您可以执行以下操作来实际重塑输入内容。

example = np.zeros((32,10,50))

reshape = np.expand_dims(example , axis=1)

输出将是:

(32, 1, 10, 50)

您还可以使用Keras的重塑图层API,如下所示。

import tensorflow as tf

model = tf.keras.Sequential()
model.add(tf.keras.layers.Reshape((1, 10, 50), input_shape=(10, 50)))

model.output_shape

输出形状如下:

(None, 1, 10, 50)

请注意,None将成为您的batch_size1将成为您的频道。

但也有一条评论建议您应该问自己Conv2D会给Conv1D带来什么好处。