Я новичок в области глубокого обучения и библиотеки Keras, я пытаюсь использовать учебник Адриана Роузброка (Обнаружение COVID-19 в рентгеновских изображениях), использовать двоичную классификацию. Мой объект тренируется для более чем двух классов. Я внес некоторые изменения, чтобы применить классификацию категорий. (7 классов по выявлению эмоций на лице). Недавно я опубликовал сообщение об ошибке, полученной при обучении: ссылка
, и я решил ее, но у меня есть еще одна ошибка:
вывод формы меток и формы данных :
(981, 7, 2) # labels shape
(981, 224, 224, 3) # data shape
Я пытаюсь обучить набор данных с помощью этого сценария (после применения некоторых изменений).
INIT_LR = 1e-3
EPOCHS = 100
BS = 10
print("[INFO] loading images...")
imagePaths = list(paths.list_images(args["dataset"]))
data = []
labels = []
for imagePath in imagePaths:
label = imagePath.split(os.path.sep)[-2]
image = cv2.imread(imagePath)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
image = cv2.resize(image, (224, 224))
data.append(image)
labels.append(label)
data = np.array(data) / 255.0
labels = np.array(labels)
stratifylabels=np.array(labels)
lb = LabelBinarizer()
labels = lb.fit_transform(labels)
labels = to_categorical(labels) # line 77
print(labels.shape)
print(data.shape)
(trainX, testX, trainY, testY) = train_test_split(data, labels,
test_size=0.20, random_state=42,)
trainAug = ImageDataGenerator(
rotation_range=15,
fill_mode="nearest")
baseModel = VGG16(weights="imagenet", include_top=False,
input_tensor=Input(shape=(224, 224, 3)))
headModel = baseModel.output
headModel = AveragePooling2D(pool_size=(4, 4))(headModel)
headModel = Flatten(name="flatten")(headModel)
headModel = Dense(64, activation="relu")(headModel)
headModel = Dropout(0.5)(headModel)
headModel = Dense(7, activation="softmax")(headModel)
model = Model(inputs=baseModel.input, outputs=headModel)
for layer in baseModel.layers:
layer.trainable = False
print("[INFO] compiling model...")
opt = Adam(lr=INIT_LR, decay=INIT_LR / EPOCHS)
model.compile(loss="categorical_crossentropy", optimizer=opt,
metrics=["accuracy"])
У меня есть эта ошибка:
Traceback (последний вызов был последним): файл "train_mask.py", строка 130, в эпохах = EPOCHS) тензор потока. python .framework.errors_impl.InvalidArgumentError: Несовместимые формы: [10,7 ] против [10] [[{{метрики узла / соотв. / равные}}]] [[{{узел> ConstantFoldingCtrl / loss / density_1_loss / broadcast_weights / assert_broadcastable / AssertGuard / Switch_0}}]]
Примечание: когда я комментирую строку 77, тренировка работает нормально, но результаты очень плохи с точностью = 1.2xx