我正在使用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')
但是,所有这些都不改变任何内容(例如前两个),或者在那些行上失败(后两个)。
答案 0 :(得分:3)
如果input_shape
错误,则所有修补程序均无效。 input_shape
层的Conv2D
应该为(width, height, channels)
,不包含样本尺寸,因为Keras隐式插入了该尺寸。
您给出的input_shape
的宽度将被解释为一个,这是一个问题。您需要正确设置input_shape
的格式,并添加渠道尺寸。