[英]Reshaping Embedding layer output for Conv2D?
嵌入层有 output 形状
embedding_4 (Embedding) (None, 10, 50)
其中 10 是单词的数量,50 是向量的维度。 如何重塑张量以将其输入到
Conv2D(50,(2,50),padding='same',activation='relu')
层。 使用 Keras 编写代码。
因此,正如评论所暗示的那样,如果您使用Conv1D
会更好,因为Conv1D
所需的输入是等级3
。 此外,对于Conv2d
,您需要输入等级为4
。
您可以执行以下操作来实际重塑您的输入。
example = np.zeros((32,10,50))
reshape = np.expand_dims(example , axis=1)
Output 将是:
(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
Output 形状如下:
(None, 1, 10, 50)
正如注释None
将是您的batch_size
和1
是您的频道。
但也像评论建议的那样,你应该问问自己Conv2D
会带来什么好处,而Conv1D
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.