Что это за ошибка в этом коде (классификация CNN и SVM) - PullRequest
0 голосов
/ 17 мая 2019

в чем проблема?

вот ссылка на github:

https://gist.github.com/moemous/5eeae0711002604d3c6f04a667cccea8

     ValueError                                Traceback (most recent 
     call last)
     <ipython-input-37-fd99ba55a36e> in <module>()
     7 for i in range(epochs):
     8   print('Starting run: {}'.format(i))
     ----> 9   wrapper.fit(x_train, y_train, epochs=1, batch_size=64)
     10   accuracy["with_svm"].append(wrapper.evaluate(x_test, y_test))
     11   accuracy["without_svm"].append(

     3 frames
    /usr/local/lib/python3.6/dist-packages/keras/engine/training_utils.py 
    in standardize_input_data(data, names, shapes, check_batch_axis, 
    exception_prefix)
    136                             ': expected ' + names[i] + ' to have 
    shape ' +
     137                             str(shape) + ' but got array with 
     shape ' +
      --> 138                             str(data_shape))
     139     return data
      140 

       ValueError: Error when checking input: expected conv2d_7_input to 
      have shape (256, 256, 1) but got array with shape (256, 256, 3)

Ответы [ 2 ]

0 голосов
/ 17 мая 2019

изменяет его на (1, 150, 150, 3)!

Вы должны изменить форму таким образом для керас. (-1, 150, 150, 1) и форма ввода (150,150,1).

0 голосов
/ 17 мая 2019

Ошибка очевидна, форма ваших входных данных не совпадает с формой ввода в определении модели (первый слой Conv2D), но что с этим не так?

Вы используете RGB-изображение, и оно имеет 3 разных канала для каждого цвета, поэтому ваша входная форма в модели должна быть input_shape=(256, 256, 3) вместо input_shape=(256, 256, 1).

Черно-белые изображения имеют только один канал, поэтому для черно-белых изображений следует использовать input_shape=(256, 256, 1).

...