問題描述:
由於不同的backend(theno或tensorflow)對輸入inpu_img維度要求的次序不一樣,所以如果弄混就會出現上述錯誤.
解決方法:
方法一:
假設輸入爲:
model.add(ZeroPadding2D((1, 1), batch_input_shape=(1, 3, img_width, img_height)))
將其改爲
:
model.add(ZeroPadding2D((1, 1), batch_input_shape=(1, img_width, img_height, 3)))
方法二:
在網絡層明確指明:image_dim_ordering,
即輸入圖像的維度次序
;
例如加上如下語句
:
from keras import backend as K
if K.image_dim_ordering() == 'th':
model.add(ZeroPadding2D((1, 1), batch_input_shape=(1,3,img_width, img_height)))
else:
model.add(ZeroPadding2D((1, 1), batch_input_shape=(1,img_width, img_height,3)))
方法三
:
修改文件’
~/.keras/keras.json’
中的’
tf
’
爲’
th
’.
Reference:
http://stackoverflow.com/questions/39848466/tensorflow-keras-convolution2d-valueerror-filter-must-not-be-larger-than-t