嵌入层的输出形状为
embedding_4 (Embedding) (None, 10, 50)
其中10是单词数,而50是向量的维数。如何重整张量以将其输入给
Conv2D(50,(2,50),padding='same',activation='relu')
层。使用Keras编写代码。
答案 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_size
,1
将成为您的频道。
但也有一条评论建议您应该问自己Conv2D
会给Conv1D
带来什么好处。