我正在尝试使用手动整理的数据集(包含图像及其关联标签)来训练一个简单的神经网络。
我已经创建了一个numpy数组来生成标签,称为facey_label。
我使用了matplotlib的imread函数将811张图像转换为形状为(255, 255, 3)的数组,然后计划使用np.array函数创建一个形状为(811, 255, 255, 3)的张量img_array。
model = keras.Sequential([ keras.layers.Flatten(input_shape=(811, 255, 255, 3)), keras.layers.Dense(128, activation=tf.nn.relu), keras.layers.Dense(10, activation=tf.nn.softmax)])model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])model.fit(img_array, facey_label, epochs=5)
然而,我收到了以下错误:
ValueError: Error when checking input: expected flatten_1_input to have 5 dimensions, but got array with shape (811, 250, 250, 3)
我哪里做错了?
回答:
您不应该在input_shape中包含批次大小。请尝试使用以下模型:
model = keras.Sequential([ keras.layers.Flatten(input_shape=(255, 255, 3)), keras.layers.Dense(128, activation=tf.nn.relu), keras.layers.Dense(10, activation=tf.nn.softmax)])