构建深度卷积神经网络 利用人脸数据集和构建的深度卷积神经网络,完成人脸识别-python代码
时间: 2023-06-30 12:15:33 浏览: 103
深度学习基于卷积神经网络的人脸面部表情识别项目Python源码+数据集(高分毕业设计)
5星 · 资源好评率100%
下面是一个使用Python和TensorFlow构建深度卷积神经网络进行人脸识别的代码示例:
```python
import tensorflow as tf
from tensorflow.keras import layers, models
# 定义深度卷积神经网络
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(64, 64, 3)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(128, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Flatten())
model.add(layers.Dense(128, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))
# 编译模型
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])
# 加载数据集
train_ds = tf.keras.preprocessing.image_dataset_from_directory(
'path/to/train_data',
validation_split=0.2,
subset="training",
seed=123,
image_size=(64, 64),
batch_size=32)
val_ds = tf.keras.preprocessing.image_dataset_from_directory(
'path/to/train_data',
validation_split=0.2,
subset="validation",
seed=123,
image_size=(64, 64),
batch_size=32)
# 训练模型
history = model.fit(train_ds, validation_data=val_ds, epochs=10)
# 测试模型
test_ds = tf.keras.preprocessing.image_dataset_from_directory(
'path/to/test_data',
image_size=(64, 64),
batch_size=32)
loss, accuracy = model.evaluate(test_ds)
print('Test accuracy:', accuracy)
```
在上面的代码中,我们使用了TensorFlow的Keras API构建了一个深度卷积神经网络,包括三个卷积层和两个全连接层。然后,我们加载了训练数据集和测试数据集,并使用fit()函数训练模型。最后,我们使用evaluate()函数测试模型的性能。
阅读全文