繁体   English   中英

发生异常:调用层“conv2d”(类型 Conv2D)时遇到 ValueError 异常

[英]Exception has occurred: ValueError Exception encountered when calling layer "conv2d" (type Conv2D)

当我尝试构建此文件时出现此错误。 任何人都知道如何解决它? 万分感谢。 对不起,我的英语不好。

代码:

import numpy as np
import pickle
import cv2, os
from glob import glob
from keras import optimizers
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Dropout
from keras.layers import Flatten
from keras.layers.convolutional import Conv2D
from keras.layers.convolutional import MaxPooling2D
from keras.utils import np_utils
from keras.callbacks import ModelCheckpoint
from keras import backend as K
#K.set_image_dim_ordering('tf')
K.set_image_data_format('channels_first')

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'

def get_image_size():
    img = cv2.imread('gestures/7/32.jpg', 0)
    return img.shape

def get_num_of_classes():
    return len(glob('gestures/*'))

image_x, image_y = get_image_size()

def cnn_model():
    num_of_classes = get_num_of_classes()
    model = Sequential()

    model.add(Conv2D(16, (2,2), input_shape=(image_x, image_y, 1), activation='relu'))

错误日志: 错误日志

错误似乎在以下行中。

model.add(Conv2D(16, (2,2), input_shape=(image_x, image_y, 1), activation='relu'))

输入形状对于 model 中应用的卷积来说太小了。

您可以减小 Kernel 大小或在 Conv2D 层中应用 padding='same',如下所示:

  • 减小 Kernel 大小

    model.add(Conv2D(16, (1,1), input_shape=(image_x, image_y, 1), activation='relu'))

  • 应用填充

    model.add(Conv2D(16, (2,2), input_shape=(image_x, image_y, 1), padding='same', activation='relu'))

让我们知道问题是否仍然存在。 谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM