基于tensorflow的人脸表情识别代码
时间: 2023-07-25 20:03:40 浏览: 97
基于TensorFlow人脸识别源代码
5星 · 资源好评率100%
好的,以下是一个基于TensorFlow的人脸表情识别的代码示例,代码中使用了卷积神经网络(CNN)来进行训练和预测:
```python
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from tensorflow.keras.preprocessing.image import ImageDataGenerator
# 加载数据集
train_datagen = ImageDataGenerator(rescale=1./255)
test_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
'train_dir',
target_size=(48, 48),
batch_size=32,
class_mode='categorical')
validation_generator = test_datagen.flow_from_directory(
'test_dir',
target_size=(48, 48),
batch_size=32,
class_mode='categorical')
# 定义模型
model = keras.Sequential([
layers.Conv2D(32, (3, 3), activation='relu', input_shape=(48, 48, 3)),
layers.MaxPooling2D((2, 2)),
layers.Conv2D(64, (3, 3), activation='relu'),
layers.MaxPooling2D((2, 2)),
layers.Conv2D(128, (3, 3), activation='relu'),
layers.MaxPooling2D((2, 2)),
layers.Flatten(),
layers.Dense(128, activation='relu'),
layers.Dense(7, activation='softmax')
])
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
# 训练模型
model.fit(train_generator, epochs=10, validation_data=validation_generator)
# 评估模型
test_loss, test_acc = model.evaluate(validation_generator, verbose=2)
print('Test accuracy:', test_acc)
```
在这个示例中,我们使用`ImageDataGenerator`从文件夹中加载数据集,并将其分为训练集和测试集。然后定义了一个简单的卷积神经网络模型,并使用`compile`方法编译模型。最后,我们使用`fit`方法对模型进行训练,并使用`evaluate`方法评估模型的表现。
需要注意的是,这个示例中的模型和参数仅供参考,你可以根据自己的需求进行修改和调整。此外,还需要准备好人脸表情数据集,并按照一定的文件夹结构组织好数据,以便于使用`ImageDataGenerator`加载数据。
阅读全文