使用Keras进行图像分类:“预期激活_1具有形状(2,),但得到的数组具有(1,)”

2024-09-21 00:59:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在训练一个图像分类器来区分猫和狗。在

以下是我的相关代码:

FINAL_ACTIVATION = "softmax"
OPTIMIZER = keras.optimizers.Adamax()
STRIDES = (2, 2)
DROPOUT = 0.5

model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape = INPUT_SHAPE))
model.add(keras.layers.ELU())
model.add(MaxPooling2D(pool_size = (2, 2), strides = STRIDES))

model.add(Conv2D(64, (3, 3)))
model.add(keras.layers.ELU())
model.add(MaxPooling2D(pool_size = (2, 2), strides = STRIDES))

model.add(Conv2D(128, (3, 3)))
model.add(keras.layers.ELU())
model.add(MaxPooling2D(pool_size = (2, 2), strides = STRIDES))

model.add(Conv2D(128, (3, 3)))
model.add(keras.layers.ELU())
model.add(MaxPooling2D(pool_size = (2, 2), strides = STRIDES))

model.add(Flatten())

model.add(Dense(100))
model.add(keras.layers.ELU())
model.add(Dropout(DROPOUT))

model.add(Dense(50))
model.add(keras.layers.ELU())
model.add(Dropout(DROPOUT))

model.add(Dense(2))
model.add(Activation(FINAL_ACTIVATION))

model.compile(
    loss="categorical_crossentropy",
    optimizer = OPTIMIZER,
    metrics = ["accuracy"]
)

train_datagen = ImageDataGenerator(
    rescale = 1./255,
    shear_range = 0.2,
    zoom_range = 0.2,
    horizontal_flip = True
)

train_generator = train_datagen.flow(
    x_train,
    y_train,
    batch_size = BATCH_SIZE
)

model.summary()

model.fit_generator(
    train_generator,
    steps_per_epoch = x_train.shape[0] // BATCH_SIZE,
    epochs = EPOCHS
)

由于大量的培训文件,没有测试集。但是,当我尝试训练这个网络时,我得到了错误“ValueError:error when checking target:error when checking target:expected activation_1 to have shape(2,),but get array with shape(1,).”我在这里做错了什么?在

卷积神经网络对我来说还是有点不可思议的,所以我可能在这里犯了一些初学者的错误。我想我可能是。在

这是我的模型:

^{pr2}$

Tags: addsizemodellayerstraindropoutkerasdense
1条回答
网友
1楼 · 发布于 2024-09-21 00:59:51

作业甚至还没有开始执行。你的纱线中没有免费的Conatiner,因此工作无法开始

这不是错误,而是正常的纱线应用状态转换

相关问题 更多 >

    热门问题