我尝试将keras图层连接到最后一个轴之外。
concat_layer = keras.layers.concatenate([layer1,layer2],axis=3);
layer1和layer2的形状都是(?,7,7),现在我希望它变成(?,7,7,2)而不是(?,7,14)。如果我写的像axis = 3,它会返回“IndexError:list assignment index out of range”...
我该怎么办?非常感谢你!
答案 0 :(得分:1)
Keras backend有一个 expand_dim 操作,您可以将其与Lambda图层一起使用。尝试:
import keras.backend as K
from keras.layers import Lambda, concatenate
layer1 = Lambda(lambda x: K.expand_dims(x, axis=3))(layer1)
layer2 = Lambda(lambda x: K.expand_dims(x, axis=3))(layer2)
concat_layer = concatenate([layer1, layer2], axis=3)
答案 1 :(得分:0)
您可以使用keras.backend.stack
,例如:
keras.backend.stack([layer1,layer2],axis=-1)
答案 2 :(得分:0)
将图层重塑为所需尺寸,然后使用新添加的轴进行连接
from keras.layers import Reshape
from keras.layers.merge import concatenate
layer1 = Reshape((7, 7, 1))(layer1)
layer2 = Reshape((7, 7, 1))(layer2)
concat_layer = concatenate([layer1, layer2], axis=3)