我正在制作人脸检测系统,我对这件事很陌生,所以如果缺少某些信息,请提前道歉。请耐心等待:
下面展示了我是如何创建数据集的。
Preprocess x data
self.x_train = x_train.astype(np.float32)
self.x_test = x_test.astype(np.float32)
self.x_val = x_val.astype(np.float32)
# Preprocess y data
self.y_train = to_categorical(y_train, num_classes= self.num_classes)
self.y_test = to_categorical(y_test, num_classes= self.num_classes)
self.y_val = to_categorical(y_val, num_classes= self.num_classes)
# Dataset attributes
self.train_size = self.x_train.shape[0]
self.test_size = self.x_test.shape[0]
self.val_size = self.x_val.shape[0]
self.width = self.x_train.shape[1]
self.height = self.x_train.shape[2]
self.depth = self.x_train.shape[3]
self.img_shape = (self.width, self.height, self.depth)
# tf.data Datasets
self.train_dataset = tf.data.Dataset.from_tensor_slices((self.x_train, self.y_train))
self.test_dataset = tf.data.Dataset.from_tensor_slices((self.x_test, self.y_test))
self.val_dataset = tf.data.Dataset.from_tensor_slices((self.x_val, self.y_val))
self.train_dataset = self._prepare_dataset(self.train_dataset, shuffle=True, augment=True)
self.test_dataset = self._prepare_dataset(self.test_dataset)
self.val_dataset = self._prepare_dataset(self.val_dataset)
def get_train_set(self) -> tf.data.Dataset:
return self.x_train, self.y_train
def get_test_set(self) -> tf.data.Dataset:
return self.x_test, self.y_test
def get_val_set(self) -> tf.data.Dataset:
return self.x_val, self.y_val
model.fit(
train_dataset,
verbose=1,
batch_size=batch_size,
epochs=epochs,
callbacks=[tb_callback],
validation_data=val_dataset
)
执行此操作后,我收到一个错误 ValueError:层模型_1 需要 1 个输入,但它收到 2 个输入张量 我已经阅读了与此相关的其他答案,其中提到将输入作为元组(我尝试过但没有帮助)。 我正在 Colab 上使用 tensorflow 版本 = 2.4.1。 如果有人可以帮助我解决此错误,我将不胜感激。提前致谢。保持健康。