Keras VGG16中ValueError: filter must not be larger than the input問題的解決

問題描述:


由於不同的backend(thenotensorflow)對輸入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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章