我使用的是 Keras 版本 2.3.1 和 TensorFlow 2.0.0。
我在网络中第一个卷积层的实例化中引入了名义错误:
model = Sequential([
Conv2D(16, 3, input_shape=(1, 10000, 80)),
LeakyReLU(alpha=0.01),
MaxPooling2D(pool_size=3),
Conv2D(16, 3),
LeakyReLU(alpha=0.01),
MaxPooling2D(pool_size=3),
Conv2D(16, 3),
LeakyReLU(alpha=0.01),
MaxPooling2D(pool_size=3),
Conv2D(16, 3),
LeakyReLU(alpha=0.01),
MaxPooling2D(pool_size=3),
Dense(256),
LeakyReLU(alpha=0.01),
Dense(32),
LeakyReLU(alpha=0.01),
Dense(1, activation='sigmoid')])
据我所知,TF 维度顺序应设置为(样本、行、列)。我的输入是形状为 1000, 80 的数组。
我已尝试了在网上找到的所有修复方法,包括:
K.common.set_image_dim_ordering('tf')
K.set_image_data_format('channels_last')
K.tensorflow_backend.set_image_dim_ordering('tf')
K.set_image_dim_ordering('tf')
但是,所有这些要么不会改变任何内容(如前两行的情况),要么在这些行上失败(后两行)。
最佳答案
如果 input_shape
错误,这些修复都不起作用。 Conv2D
层的 input_shape
应为 (宽度、高度、 channel )
,样本尺寸不包含在内,因为它是由 Keras 隐式插入的。
您提供的 input_shape
将以宽度 1 进行解释,这是一个问题。您需要正确设置 input_shape
格式并添加 channel 维度。
关于python - 'conv2d_1/convolution' 的 1 减 3 导致的负维度大小 (op : 'Conv2D' ) with input shapes: [? ,1,10000,80], [3,3,80,16],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59514903/