简体   繁体   English

CNN Keras:ValueError:负数尺寸是由'conv2d的2减去3引起的

[英]CNN Keras: ValueError: Negative dimension size caused by subtracting 3 from 2 for 'conv2d

I got this error when using Keras: Is it because input_size not larger than the filter? 使用Keras时出现此错误:是因为input_size不大于过滤器?

If input_shape=(64,64,3))), there will be no error. 如果input_shape =(64,64,3))),则不会有错误。

 ``ValueError: Negative dimension size caused by subtracting 3 from 2 for 
  'conv2d_24/convolution' (op: 'Conv2D') with input shapes: [?,2,2,128], 
  [3,3,128,128].

My code are here: 我的代码在这里:

from keras import layers
from keras import models
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu',                     
                                    input_shape=(32, 32, 3))) 
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(128, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(128, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Flatten())
model.add(layers.Dense(512, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))

Default layer padding is valid , which means no padding. 默认的图层填充valid ,表示没有填充。 This way dimension reduce from 32 not to 16 but to 15. You can use padding='same' instead. 这种方式将尺寸从32减少到16,而不是减少到15。您可以改用padding='same' In this case output has the same length as the original input. 在这种情况下,输出的长度与原始输入的长度相同。

from keras import layers
from keras import models
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu',padding='same',                     
                                    input_shape=(32, 32, 3))) 
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu',padding='same'))
model.add(layers.MaxPooling2D((2, 2),padding='same'))
model.add(layers.Conv2D(128, (3, 3), activation='relu',padding='same'))
model.add(layers.MaxPooling2D((2, 2),padding='same'))
model.add(layers.Conv2D(128, (3, 3), activation='relu',padding='same'))
model.add(layers.MaxPooling2D((2, 2),padding='same'))
model.add(layers.Flatten())
model.add(layers.Dense(512, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 ValueError:'{{node conv2d_3/Conv2D}} 从 1 中减去 2 导致的负维度大小 - ValueError: Negative dimension size caused by subtracting 2 from 1 for '{{node conv2d_3/Conv2D}} 'Conv2D' 从 1 中减去 3 导致的负尺寸大小 - Negative dimension size caused by subtracting 3 from 1 for 'Conv2D' '{{node conv2d_3/Conv2D} 从 1 中减去 3 导致的负维度大小 - Negative dimension size caused by subtracting 3 from 1 for '{{node conv2d_3/Conv2D} InvalidArgumentError: 1减3导致的负维度大小'{{node conv2d_28/Conv2D}} - InvalidArgumentError: Negative dimension size caused by subtracting 3 from 1 '{{node conv2d_28/Conv2D}} “ Encoder / conv6 / Conv2D”的2减去3导致的负尺寸大小 - Negative dimension size caused by subtracting 3 from 2 for 'Encoder/conv6/Conv2D' 多个Conv1D图层:由于'conv1d_2 / convolution / Conv2D从1中减去8而导致的负尺寸大小 - Multiple Conv1D Layers: Negative dimension size caused by subtracting 8 from 1 for 'conv1d_2/convolution/Conv2D ValueError:由 1 为 'conv3d_3/convolution' 减去 22 引起的负尺寸大小(操作:'Conv3D') - ValueError: Negative dimension size caused by subtracting 22 from 1 for 'conv3d_3/convolution' (op: 'Conv3D') Keras-输入尺寸为[?,4,80,64],[5,5,64,64]的'conv2d_5 / convolution'(op:'Conv2D')的4中减去5引起的负尺寸大小 - Keras - Negative dimension size caused by subtracting 5 from 4 for 'conv2d_5/convolution' (op: 'Conv2D') with input shapes: [?,4,80,64], [5,5,64,64] Keras 负维度 size Conv2D - Keras negative dimension size Conv2D 'conv2d_2/convolution' 从 1 中减去 3 导致的负维度大小 - Negative dimension size caused by subtracting 3 from 1 for 'conv2d_2/convolution'
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM