在建模过程中如何改变keras张量的形状?

在建模过程中如何改变keras张量的形状?,keras,Keras,我有一个自动编码器模型,看起来像: input\u img=input(shape=(128,128,1)) x=Conv2D(…)(输入法) x=MaxPoolig2D(…)(x) ... out=Conv2D(1,(3,3),激活='sigmoid')(x) my_model=模型(输入,解码) my_model.compile(optimizer='adadelta',loss=my_custom_loss) 目前,out的形状与input\u img相同,比如说(None,128,12

我有一个自动编码器模型,看起来像:

input\u img=input(shape=(128,128,1))
x=Conv2D(…)(输入法)
x=MaxPoolig2D(…)(x)
...
out=Conv2D(1,(3,3),激活='sigmoid')(x)
my_model=模型(输入,解码)
my_model.compile(optimizer='adadelta',loss=my_custom_loss)
目前,
out
的形状与
input\u img
相同,比如说
(None,128,128,1)
。我想操纵
out
使shape
(无、128、128、2)
。那个额外块的内容是无关的


如果有人想知道我为什么要这样做:这是因为我想在基本真值
y\u true
中有一些额外的信息,以便我可以定义一个特定的成本函数,
my\u custom\u loss
。似乎为了做到这一点,定义成本函数时,
out
的形状必须与
y\u true
的形状匹配…

如果内容确实不相关,可以用零填充。它可能看起来像:

zeros = Lambda(lambda x: K.zeros_like(x))(out) # (None, 128, 128, 1)
out = Concatenate([out, zeros]) # (None, 128, 128, 2)
确保忽略正在添加的额外填充