keras中vgg遇到的坑(错误ensorflow.python.framework.errors_impl.InvalidArgumentError: Negative dimension siz)

第一:如果包的错误和下面的错误是类似的,报这种类型的错误:因为Keras调用的后端深度学习的框架一般是theano或者TensorFlow,但是theano输入的tensor是(batch_size,channal,w,h),而TensorFlow的tensor是(batch_size,w,h,channal),如果用反了,就会报错

ensorflow.python.framework.errors_impl.InvalidArgumentError: Negative dimension size caused by subtracting 2 from 1 for 'max_pooling2d_2/MaxPool' (op: 'MaxPool') with input shapes: [?,1,128,128].

解决办法是调整我们的后台,只需要这两句就可以轻松解决

from keras import backend as K
K.set_image_dim_ordering('th')

 

第二:如果报错的代码和下面类似,那么主要是在我们在加载已经训练好的权重是,没有加上by_name=Ture

ValueError: You are trying to load a weight file containing 0 layers into a model with 16 layers.

    if weights_path:
        model.load_weights(weights_path,by_name=True)

第三:如果你的报错是这种情况:

Error when checking target: expected dense_3 to have shape (4,) but got array with shape (1,)

如果你做是识别或者分类的话,那么你的标签应该是没有进行ont_hot编码

labels = np_utils.to_categorical(labels, num_classes=4)

 

你可能感兴趣的:(机器学习)