A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got... x = Co

bug背景:使用keras.layers.Concatenate层拼接

首先,我们看一下标题中这段bug的意思:Concatenate层要求我们的输入需要shape能匹配,除非是concat axis(用于连接的那个维度)。嗯,道理我都懂,这是啥意思?

意思就是你想拼两个东西,你得让人家能拼起来啊,比如说我现在想拼两个立方体,第一个长宽高是 20 20 10,第二个长宽高是 20 20 40,那么如果我从高的维度拼接,拼成的立方体就是20 20 50了对不?但是如果我想从长或者宽的维度拼,那是个什么玩意儿,它也拼不到一起啊是不是。我们标题中提到的这个bug也是这个意思,除了你要拼的那个维度,其余维度都得一样。

那么我们应该怎么指定所拼的维度是哪一维呢,在Concatenate层这儿,我们axis参数是几就是按哪一维度,你比如说:

 result = Concatenate(axis=1)([x, y])

x和y的维度都是(batchsize,channel,H,W),axis=1指的就是以channel这个维度的方向拼接,channel的大小可以不同,但是H,W和batchsize需要相同,channel_first对应的axis如上是1,对应的,如果是channel_last那么axis=3.

这里需要注意的是Concatenate有两个括号,第一个括号里填axis,第二个填要拼的tensor。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值