繁体   English   中英

如何在检查目标时修复错误:预期 activation_5 有 2 个维度,但得到了形状为 (24943, 50, 50, 1) 的数组

[英]How to fix Error when checking target: expected activation_5 to have 2 dimensions, but got array with shape (24943, 50, 50, 1)

我正在构建一个 CNN 来从 kaggle 中预测猫和狗(文件类型:jpg)。 我在带有 Python 3.6 的 anaconda 环境中使用 tensorflow 后端。 但我收到此错误:

ValueError:检查目标时出错:预期 activation_8 有 2 个维度,但得到了形状为 (24943, 50, 50, 1) 的数组

import tensorflow as tf
from tensorflow.keras.datasets import cifar10
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten
from tensorflow.keras.layers import Conv2D, MaxPooling2D
import pickle
pickle_in = open("X.pickle","rb")
X = pickle.load(pickle_in)
pickle_in = open("y.pickle","rb"`
y = pickle.load(pickle_in)
X = X/255.0
model = Sequential()
model.add(Conv2D(256, (3, 3), input_shape=X.shape[1:]))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(256, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())  # this converts our 3D feature maps to 1D feature vectors
model.add(Dense(64))
model.add(Dense(1))
model.add(Activation('sigmoid')) 
model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])
model.fit(X, y, batch_size=32, epochs=3, validation_split=0.3)

这是 model.summary() 表

层(类型)输出形状参数#

conv2d_22 (Conv2D) (无、48、48、256) 2560


activation_30(激活)(无、48、48、256)0


max_pooling2d_22 (MaxPooling (None, 24, 24, 256) 0


conv2d_23 (Conv2D)(无、22、22、256)590080


activation_31(激活)(无、22、22、256)0


max_pooling2d_23 (MaxPooling (None, 11, 11, 256) 0


flatten_11(扁平化)(无,30976)0


密集_19(密集)(无,64)1982528


密集_20(密集)(无,1)65


activation_32(激活)(无,1)0

总参数:2,575,233 可训练参数:2,575,233 不可训练参数:0


你的代码看起来很奇怪。

尝试 model.summary() 并检查尺寸。

如果你想在两件事之间进行分类,你需要最后一个 Dense 层有 2 个神经元。

也许您还忘记对目标向量 ( y ) 进行单热编码。 您可以通过以下方式执行此操作:

y = to_categorical(y)

希望能帮助到你!

暂无
暂无

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

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