ValueError: Negative dimension size caused by subtracting 3 from 1 for 'conv2d_6/convolution' (op: '

本文探讨了Keras与TensorFlow在图像数据处理上的差异,特别是在图像通道排列方式上的不同(channels_first vs channels_last),以及如何通过调整Keras后端设置或输入数据shape来解决这一问题。同时,文章还提到了当使用'valid'填充参数时可能遇到的维度问题,并给出了将参数更改为'same'的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原因一:

keras的后端是theano,默认channels_first,即他的图像形状是input_shape=(img_channels, img_rows, img_cols )。

而在tensorflow中则是默认channels_last,即input_shape=(img_rows, img_cols, img_channels)。

解决方法:

可添加这两行代码,使其变为channels_last;也可以自行调整输入数据的shape。

from keras import backend as K
K.set_image_dim_ordering("tf")

原因二:

如果padding参数为valid,这意味着将出现卷积过程中发生的自动降维,则可能会得到负尺寸。

解决方法:

将padding的参数替换成same。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值