python - ValueError : Error when checking input: expected conv2d_1_input to have 4 dimensions, 但得到形状为 (120, 1) 的数组

标签 python tensorflow neural-network keras conv-neural-network

当我打印(inp_shape)时,我得到(288, 512, 3)。但是我仍然收到错误“ValueError:检查输入时出错:预期 conv2d_1_input 有 4 个维度,但得到形状为 (120, 1) 的数组”。我不明白形状 (120, 1) 从何而来。

    dropout_prob = 0.2
    activation_function = 'relu'
    loss_function = 'categorical_crossentropy'
    verbose_level = 1
    convolutional_batches = 32
    convolutional_epochs = 3
    inp_shape = X_training.shape[1:]
    num_classes = 2
    opt = SGD()
    opt2 = 'adam'

    y_train_cat = np_utils.to_categorical(y_training, num_classes) 
    y_test_cat = np_utils.to_categorical(y_testing, num_classes)

    model = Sequential()
    model.add(Conv2D(filters=16, kernel_size=(3, 3), input_shape=inp_shape))
    model.add(Conv2D(filters=32, kernel_size=(3, 3)))
    #model.add(MaxPooling2D(pool_size = (2,2)))
    #model.add(Dropout(rate=dropout_prob))
    model.add(Flatten())
    model.add(Dense(128,activation=activation_function))
    #model.add(Dropout(rate=dropout_prob))
    model.add(Dense(64,activation=activation_function))
    #model.add(Dropout(rate=dropout_prob))
    model.add(Dense(32,activation=activation_function))
    model.add(Dense(num_classes,activation='softmax'))
    model.summary()
    model.compile(loss=loss_function, optimizer=opt, metrics=['accuracy'])
    history = model.fit(X_training, y_train_cat, batch_size=convolutional_batches, epochs = convolutional_epochs, verbose = verbose_level, validation_data=(X_testing, y_test_cat))
    model.save('../models/neural_net.h5')

最佳答案

添加此行

X_training= tf.reshape(X_training,[-1,288, 512, 3])

在将 X_training 提供给 model.fit 之前

关于python - ValueError : Error when checking input: expected conv2d_1_input to have 4 dimensions, 但得到形状为 (120, 1) 的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45451937/

相关文章:

python - 训练损失减少,开发损失增加

machine-learning - 训练 Keras Stateful LSTM return_seq=true 不学习

Python (visual studio) 错误中断

python - 如何限制请求执行时间?

python - 如何将图像文件从 S3 存储桶直接读入内存?

java - 如何将 .png 图像转换为字节数组 - Android、TFLITE 应用程序

machine-learning - Tensorflow:确定药物剂量的用例

python - 如何在用户输入时中断Python程序?

tensorflow - tf.keras : Evaluating model. 使用 tf.data.Dataset 作为输入时更新中断

machine-learning - 机器学习中面向 future 的特征扩展?