Python ValueError:输入数组的采样数应与目标数组的采样数相同。找到32个输入样本和128个目标样本
我按照这个教程在这里做图像分类。 链接:[Keras图像分类][1] 我将代码扩展到8个类,但出现以下错误:Python ValueError:输入数组的采样数应与目标数组的采样数相同。找到32个输入样本和128个目标样本,python,numpy,keras,Python,Numpy,Keras,我按照这个教程在这里做图像分类。 链接:[Keras图像分类][1] 我将代码扩展到8个类,但出现以下错误: ValueError: Input arrays should have the same number of samples as target arrays. Found 32 input samples and 128 target samples 我的列车顶部型号代码如下所示: def train_top_model(): train_data = np.load(ope
ValueError: Input arrays should have the same number of samples as target arrays. Found 32 input samples and 128 target samples
我的列车顶部型号代码如下所示:
def train_top_model():
train_data = np.load(open('bottleneck_features_train', 'rb'))
train_labels = np.array([0] * (nb_train_samples // 8) + [1] * (nb_train_samples // 8) + [2] * (nb_train_samples // 8) + [3] * (nb_train_samples // 8) + [4] * (nb_train_samples // 8) + [5] * (nb_train_samples // 8) + [6] * (nb_train_samples // 8) + [7] * (nb_train_samples // 8))
validation_data = np.load(open('bottleneck_features_validation', 'rb'))
validation_labels = np.array([0] * (nb_train_samples // 8) + [1] * (nb_train_samples // 8) + [2] * (nb_train_samples // 8) + [3] * (nb_train_samples // 8) + [4] * (nb_train_samples // 8) + [5] * (nb_train_samples // 8) + [6] * (nb_train_samples // 8) + [7] * (nb_train_samples // 8))
train_labels = keras.utils.to_categorical(train_labels, num_classes = 8)
validation_labels = keras.utils.to_categorical(validation_labels, num_classes = 8)
model = Sequential()
model.add(Flatten(input_shape=train_data.shape[1:]))
model.add(Dense(512, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(8, activation='softmax'))
sgd = SGD(lr=1e-2, decay=0.00371, momentum=0.9, nesterov=False)
model.compile(optimizer=sgd,
loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(train_data, train_labels,
epochs=epochs,
batch_size=batch_size,
validation_data=(validation_data, validation_labels))
model.save_weights(top_model_weights_path)
我想错误是说输入应该有128个样本,但它只得到32个。我不确定的原因,因为我也得到这发现128个图像属于8类。我认为这表明它成功地获得了所有128幅图像
有人能帮忙吗?非常感谢 Keras抱怨说,您的验证集中有32个图像,而您的验证标签由128个元素组成,因为您可能忘记将nb_train_样本更改为nb_validation_样本,所以要解决这个问题,请使用nb_validation_样本初始化验证标签