1、概论
这个Task主要是结合前面的知识,从语音分析,特征提取到CNN模型的搭建与训练。
2、特征提取以及数据集的建立
特征提取还是用librosa.load()方法,从本地文件扫描,建立数据集。
3、建立模型
这个用Keras神经网络库建立和训练模型。
3.1 网络结构搭建
Keras 的核心数据结构是 model,一种组织网络层的方式。最简单的模型是 Sequential 顺序模型,它由多个网络层线性堆叠。对于更复杂的结构,你应该使用 Keras 函数式 API,它允许构建任意的神经网络图。
Sequential模型可以直接通过如下方式搭建:
from keras.models import Sequential
model = Sequential()
卷积神经网络CNN的结构一般包含这几个层:
1)输入层:用于数据的输入
2)卷积层:使用卷积核进行特征提取和特征映射------>可以多次重复使用
3)激励层:由于卷积也是一种线性运算,因此需要增加非线性映射(也就是激活函数)
4)池化层:进行下采样,对特征图稀疏处理,减少数据运算量----->可以多次重复使用
5)Flatten操作:将二维的向量,拉直为一维的向量,从而可以放入下一层的神经网络中
6)全连接层:通常在CNN的尾部进行重新拟合,减少特征信息的损失----->DNN网络
3.2 CNN模型训练与测试
批量的在之前搭建的模型上训练:
# 训练模型
model.fit(X_train, Y_train, epochs = 90, batch_size = 50, validation_data = (X_test, Y_test))
查看网络信息
model.summary()
3.3 预测测试集
最后生成预测信息
predictions = model.predict(...)