小编Kim*_*404的帖子

ValueError:检查输入时出错:预期 conv2d_input 有 4 个维度,但得到了形状的数组(无,1)

我完成了由 20 个类别组成的模型的训练,达到了 0.9993 的准确率,目前正在进行测试。我正在遵循本教程,但我收到错误

prediction = model.predict(['test1.jpg'])
Run Code Online (Sandbox Code Playgroud)

训练数据定义为

for features, label in training_data:
    x.append(features)
    y.append(label)

x = np.array(x).reshape(-1, IMG_SIZE, IMG_SIZE,1)
Run Code Online (Sandbox Code Playgroud)

这是我对 cnn 的定义

x = pickle.load(open("x.pickle", "rb" ))
y = pickle.load(open("y.pickle", "rb"))

x = x/255.0

model = Sequential()
model.add(Conv2D(64,(3,3), input_shape = x.shape[1:IMG_SIZE]))
model.add(Activation("relu"))
model.add(MaxPool2D(pool_size=(2,2)))

model.add(Conv2D(64,(3,3), input_shape  = x.shape[1:IMG_SIZE]))
model.add(Activation("relu"))
model.add(MaxPool2D(pool_size=(2,2)))

model.add(Flatten())
model.add(Dense(64))

model.add(Dense(20))
model.add(Activation("sigmoid"))
Run Code Online (Sandbox Code Playgroud)

这也是我对模型的总结

Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d (Conv2D)              (None, 222, 222, 64)      640       
_________________________________________________________________
activation (Activation)      (None, 222, …
Run Code Online (Sandbox Code Playgroud)

python machine-learning conv-neural-network keras tensorflow

5
推荐指数
1
解决办法
1533
查看次数