语音学习Task4-搭建并训练深度学习模型

一、深度学习模型

  • 深度学习模型是深度学习的核心,它使得计算机能够从数据中归纳总结出相应的规律并用于更进一步的应用。
  • 当前的深度学习模型基本都是基于反向传播算法。
  • 计算机视觉领域一般使用CNN等模型。
  • 自然语言处理领域一般使用RNN、LSTM、Transformer等模型。

二、深度学习框架

常用的深度学习框架有:

  • Pytorch
  • Tensorflow
  • Keras
  • PaddlePaddle

三、模型搭建

本次任务中使用Tensorflow的keras模块快速搭建CNN模型。

1.CNN模型主要组件介绍

1)输入层:用于数据的输入

2)卷积层:使用卷积核进行特征提取和特征映射------>可以多次重复使用

3)激励层:由于卷积也是一种线性运算,因此需要增加非线性映射(也就是激活函数)

4)池化层:进行下采样,对特征图稀疏处理,减少数据运算量----->可以多次重复使用

5)Flatten操作:将二维的向量,拉直为一维的向量,从而可以放入下一层的神经网络中

6)全连接层:通常在CNN的尾部进行重新拟合,减少特征信息的损失----->DNN网络

2.使用keras搭建模型

我们可以使用keras中的Sequential顺序模型搭建线性网络叠层:

# 导入Sequential类
from keras.models import Sequential

# 创建Sequentail模型实例
model = Sequential()

# 声明输入数据形状
input_dim = (16, 8, 1)

# 使用实例的add方法顺序叠加CNN模型组件
model.add(Conv2D(64, (3, 3), padding = "same", activation = "tanh", input_shape = input_dim))# 卷积层
model.add(MaxPool2D(pool_size=(2, 2)))# 最大池化
model.add(Conv2D(128, (3, 3), padding = "same", activation = "tanh")) #卷积层
model.add(MaxPool2D(pool_size=(2, 2))) # 最大池化层
model.add(Dropout(0.1))
model.add(Flatten()) # 展开
model.add(Dense(1024, activation = "tanh"))
model.add(Dense(20, activation = "softmax")) # 输出层:20个units输出20个类的概率

# 编译模型(设置损失函数、优化器及评价标准)
model.compile(optimizer = 'adam', loss = 'categorical_crossentropy', metrics = ['accuracy'])

如需查看模型架构,可以使用如下方法:

model.summary()

在这里插入图片描述

四、模型训练

使用keras训练模型非常简单,只需要调用其.fit方法即可:

# X_train:训练数据
# Y_train:训练数据标签
# epochs: 迭代轮次
# batch_size:批量大小
# validation_data:验证数据集
model.fit(X_train, Y_train, epochs = 90, batch_size = 50, validation_data = (X_test, Y_test))

五、模型预测

同样,使用训练后的模型做预测,在keras中只需一行代码:

predictions = model.predict(X_test.reshape(-1, 16, 8, 1))

六、学习小结

  • 深度学习模型是深度学习的核心内容。
  • 常见的深度学习模型有CNN、RNN、LSTM等。
  • 使用深度学习框架可以帮助我们快速搭建并训练模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值