Python实战 | 使用 Python 和 TensorFlow 构建卷积神经网络(CNN)进行人脸识别
import tensorflow as tf
import numpy as np
# 假设以下函数用于下载Kaggle人脸数据集并将其拆分为训练集和验证集
# download_and_extract_kaggle_dataset() 已被实现且下载了数据集
# split_train_test() 已被实现且将数据集分为训练集和测试集
download_and_extract_kaggle_dataset()
train_x, train_y, test_x, test_y = split_train_test()
# 构建卷积神经网络模型
model = tf.keras.Sequential([
tf.keras.layers.Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=(224, 224, 3)),
tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
tf.keras.layers.Conv2D(64, kernel_size=(3, 3), activation='relu'),
tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(5, activation='softmax')
])
# 编译模型
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
# 训练模型
model.fit(train_x, train_y, epochs=5)
# 评估模型
test_loss, test_acc = model.evaluate(test_x, test_y)
print('Test accuracy:', test_acc)
# 预测
predictions = model.predict(test_x)
这段代码展示了如何使用TensorFlow在Python中构建一个基本的卷积神经网络(CNN)用于人脸识别任务。代码中包含了数据集的下载、预处理、模型的构建、编译和训练过程。最后,代码进行了模型评估并输出了测试集的准确率。
评论已关闭