错误如下:
ValueError: Negative dimension size caused by subtracting 2 from 1 for 'pool_2/MaxPool' (op: 'MaxPool') with input shapes: [?,1,1,32].
首先了解MaxPooling1D:
tf.layers.max_pooling1d(
inputs,
pool_size,
strides,
padding='valid',
data_format='channels_last',
name=None
)
用于1维输入的MaxPooling层
- pool_size:表示pooling window的大小
- strides:指定pooling操作的步长
- padding:一个字符串。padding的方法:string,valid或same,大小写不敏感。
- data_format:一个字符串,channels_last(默认)或channels_first中的一个,输入中维度的排序,channels_last对应于具有形状(batch, length, channels)的输入,而channels_first对应于具有形状(batch, channels, length)的输入。
- name:一个字符串,表示层的名称。
出现错误原因:
是图片通道的问题,也就是”channels_last”和”channels_first”数据格式的问题。
input_shape=(3,28,28)是theano的写法,而tensorflow需要写出:(28,28,3)
其他人的处理方法:
查了很多方法我的问题都没有解决:
法一:配置.keras下的keras.json文件,将channels_last修改为channels_first
<