Datawhale语音识别-Task04

CNN

CNN的基本原理是把图像转化为一个具有多个维度的数值矩阵,一般是三维(RGB),然后再设定若干个过滤器(卷积核),它们一般是比原图像要小的数值矩阵。把这些过滤器逐一在数值矩阵中进行局部“扫描”,算出一个结果,计算过程是将对应位置的数值做相乘,再相加。这就能得出另外一个比原数值矩阵更小的矩阵,是一个提取特征的过程,也就是卷积层。
接下来是激励层,对卷积后的数值进行非线性的变换,目的在于是其具有非线性的属性,使得多层的计算并不保持在同一个线性维度上。也就是激活函数,通常使用relu。
而图像两个像素之间的数值的差不多的,导致卷积后的数值也有相似,这说明卷积后的大部分信息是冗余的,因此才有池化层的存在。它主要是对卷积后的矩阵进行局部的冗余去除,一般分为平均池化(求平均值)和最大池化(求最大值)。
之后便是重复卷积层池化层的过程,使得数值矩阵越来越小,但是维度越来越多(感觉有点像在反向套娃~)。
Flatten操作:将二维的向量,拉直为一维的向量,从而可以放入下一层的神经网络中。
最后是全连接层,通常在CNN的尾部进行重新拟合,减少特征信息的损失。

用Keras搭建模型

Keras 的核心数据结构是 model,一种组织网络层的方式。最简单的模型是 Sequential 顺序模型,它由多个网络层线性堆叠,它可以直接通过如下方式搭建:

from keras.models import Sequential
model = Sequential()

对于上面提到的CNN网络,在Keras操作中,可以简单地使用 .add() ,将需要搭建的神经网络的layer堆砌起来,像搭积木一样:

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.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个类的概率

Dropout()函数的作用是减少过拟合,在深度学习训练过程中,对于神经网络训练单元,按照一定的概率将其从网络中暂时移除,对于随机梯度下降来说,由于是随机丢弃,故而每一个mini-batch都在训练不同的网络。

训练出结果后,用model.predict()预测语音对应的标签。

predictions = model.predict(X_test.reshape(-1, 16, 8, 1))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目:使用AngularJs编写的简单 益智游戏(附源代码)  这是一个简单的 javascript 项目。这是一个拼图游戏,也包含一个填字游戏。这个游戏玩起来很棒。有两个不同的版本可以玩这个游戏。你也可以玩填字游戏。 关于游戏 这款游戏的玩法很简单。如上所述,它包含拼图和填字游戏。您可以通过移动图像来玩滑动拼图。您还可以选择要在滑动面板中拥有的列数和网格数。 另一个是填字游戏。在这里你只需要找到浏览器左侧提到的那些单词。 要运行此游戏,您需要在系统上安装浏览器。下载并在代码编辑器中打开此项目。然后有一个 index.html 文件可供您修改。在命令提示符中运行该文件,或者您可以直接运行索引文件。使用 Google Chrome 或 FireFox 可获得更好的用户体验。此外,这是一款多人游戏,双方玩家都是人类。 这个游戏包含很多 JavaScript 验证。这个游戏很有趣,如果你能用一点 CSS 修改它,那就更好了。 总的来说,这个项目使用了很多 javascript 和 javascript 库。如果你可以添加一些具有不同颜色选项的级别,那么你一定可以利用其库来提高你的 javascript 技能。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值