我有两个嵌入层,一个指定mask_zero=True
,另一个没有,如下面定义的那样。在
a = Input(shape=[30])
b = Input(shape=[30])
emb_a = Embedding(10, 5, mask_zero=True)(a)
emb_b = Embedding(20, 5, mask_zero=False)(b)
cat = Concatenate(axis=1)([emb_a, emb_b]) # problem here
model = Model(inputs=[a, b], outputs=[cat])
当我试图在axis=1
处连接它们时,我期望输出的大小为[None, 60, 5]
,但它引发了一个错误:
为什么emb_a
的形状变成[None, 30, 1]
?为什么还有另一个空张量[]
输入到串联中?在
如果两个嵌入层都被分配了mask_zero=True
,或者两者都被分配了mask_zero=False
,则不会引发此错误。
如果它们在axis=2
处串联,也不会引发此错误。在
我的keras版本是2.0.8。在
谢谢。在
因为在一种情况下,},这导致了一些内部问题(这不应该发生),可能是一个bug,您可以在Github上报告它。在
mask_zero=True
,而在另一种情况下是{目前,我认为有效的两个选项是只对两个嵌入使用其中一个:}
mask_zero=True
或{解决此问题的另一种方法是在
^{pr2}$axis=-1
上连接相关问题 更多 >
编程相关推荐