gpt4 book ai didi

python - 值错误 : Input arrays should have the same number of samples as target arrays. Found 1600 input samples and 6400 target samples

转载 作者:太空狗 更新时间:2023-10-29 22:12:25 31 4
gpt4 key购买 nike

我正在尝试进行 8 级分类。这是代码:

import keras
import numpy as np
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
from keras.layers import Dropout, Flatten, Dense
from keras import applications
from keras.optimizers import SGD
from keras import backend as K
K.set_image_dim_ordering('tf')
img_width, img_height = 48,48
top_model_weights_path = 'modelom.h5'
train_data_dir = 'chCdata1/train'
validation_data_dir = 'chCdata1/validation'
nb_train_samples = 6400
nb_validation_samples = 1600
epochs = 50
batch_size = 10
def save_bottlebeck_features():
datagen = ImageDataGenerator(rescale=1. / 255)
model = applications.VGG16(include_top=False, weights='imagenet', input_shape=(48,48,3))
generator = datagen.flow_from_directory(
train_data_dir,
target_size=(img_width, img_height),
batch_size=batch_size,
class_mode='categorical',
shuffle=False)
bottleneck_features_train = model.predict_generator(
generator, nb_train_samples // batch_size)
np.save(open('bottleneck_features_train', 'wb'),bottleneck_features_train)

generator = datagen.flow_from_directory(
validation_data_dir,
target_size=(img_width, img_height),
batch_size=batch_size,
class_mode='categorical',
shuffle=False)
bottleneck_features_validation = model.predict_generator(
generator, nb_validation_samples // batch_size)
np.save(open('bottleneck_features_validation', 'wb'),bottleneck_features_validation)

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)

save_bottlebeck_features()
train_top_model()

我在此处添加了完整的错误列表:

Traceback (most recent call last):

File "<ipython-input-14-1d34826b5dd5>", line 1, in <module>
runfile('C:/Users/rajaramans2/codes/untitled15.py', wdir='C:/Users/rajaramans2/codes')

File "C:\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
execfile(filename, namespace)

File "C:\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)

File "C:/Users/rajaramans2/codes/untitled15.py", line 71, in <module>
train_top_model()

File "C:/Users/rajaramans2/codes/untitled15.py", line 67, in train_top_model
validation_data=(validation_data, validation_labels))

File "C:\Anaconda3\lib\site-packages\keras\models.py", line 856, in fit
initial_epoch=initial_epoch)

File "C:\Anaconda3\lib\site-packages\keras\engine\training.py", line 1449, in fit
batch_size=batch_size)

File "C:\Anaconda3\lib\site-packages\keras\engine\training.py", line 1317, in _standardize_user_data
_check_array_lengths(x, y, sample_weights)

File "C:\Anaconda3\lib\site-packages\keras\engine\training.py", line 235, in _check_array_lengths
'and ' + str(list(set_y)[0]) + ' target samples.')

ValueError: Input arrays should have the same number of samples as target arrays. Found 1600 input samples and 6400 target samples.

弹出“ValueError:输入数组应具有与目标数组相同数量的样本。找到 1600 个输入样本和 6400 个目标样本”。请帮助解决方案和对代码进行必要的修改。提前致谢。

最佳答案

看起来 X_train 即 train_data 中的示例数量与 y_train 即 train_labels 中的示例数量不匹配。你能仔细检查一下吗?并且,以后请附上完整的错误,因为它有助于调试问题。

关于python - 值错误 : Input arrays should have the same number of samples as target arrays. Found 1600 input samples and 6400 target samples,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44184834/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com