此代码有什么错误(CNN和SVM分类)

时间:2019-05-17 10:14:30

标签: python keras deep-learning classification svm

出什么问题了?

这里是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 :(得分:0)

错误很明显,输入数据的形状与模型定义(第一个Conv2D层)中的输入形状不同,但是那又有什么问题呢?

您使用RGB图像,并且每种颜色都有3个不同的通道,因此模型中的输入形状应为input_shape=(256, 256, 3)而不是input_shape=(256, 256, 1)

黑白图像只有一个通道,因此对于黑白图像,应使用input_shape=(256, 256, 1)

答案 1 :(得分:0)

将其重塑为(1,150,150,3)!

您应该以这种方式重塑喀拉拉邦。 (-1,150,150,1)和输入形状(150,150,1)。