【发布时间】:2021-04-20 07:49:02
【问题描述】:
已经检查了this post,但答案没有帮助。
我有以下代码:
LABELS = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
data = []
labels = []
num_classes = 10
for i in range(num_classes):
filenames = glob.glob(str(i) + '_*.png')
for j in range(len(filenames)):
im_gbr = cv2.imread(filenames[j])
im = cv2.cvtColor(im_gbr, cv2.COLOR_BGR2RGB)
data.append(im)
labels.append(i)
# Normalise
x_min = np.min(data[0], axis=tuple(range(data[0].ndim-1)), keepdims=True)
x_max = np.max(data[0], axis=tuple(range(data[0].ndim-1)), keepdims=True)
data[0] = (data[0] - x_min)/ (x_max - x_min)
lb = LabelBinarizer()
labels = lb.fit_transform(labels)
(trainX, testX, trainY, testY) = train_test_split(data, labels,
test_size=0.33, stratify=labels, random_state=42)
# construct the training image generator for data augmentation
aug = ImageDataGenerator(rotation_range=20, zoom_range=0.15,
width_shift_range=0.2, height_shift_range=0.2, shear_range=0.15,
horizontal_flip=True, fill_mode="nearest")
# initialize the optimizer and model
EPOCH = 100
opt = Adam(lr=1e-4, decay=1e-4 / EPOCH)
model = StridedNet.build(width=96, height=96, depth=3,
classes=len(lb.classes_), reg=l2(0.0005))
model.compile(loss="categorical_crossentropy", optimizer=opt,
metrics=["accuracy"])
# train the network
H = model.fit(x=aug.flow(trainX, trainY, batch_size=32),
validation_data=(testX, testY), steps_per_epoch=len(trainX) // 32,
epochs=EPOCH)
还有:
len(trainX) = 66
len(testX) = 33
len(trainY) = 66
len(testY) = 33
当我运行代码时,我收到以下错误:
ValueError: All of the arrays in `x` should have the same length. Found a pair with: len(x[0]) = 97, len(x[?]) = 205
错误对应x=aug.flow(trainX, trainY, batch_size=32)
【问题讨论】:
标签: python tensorflow keras