作者简介:刘子瑛,阿里巴巴操作系统框架专家;CSDN博客专家。工作十余年,一直对数学与人工智能算法相关、新编程语言、新开发方法等相关领域保持浓厚的兴趣。乐于通过技术分享促进新技术进步。
文章转自:AI科技大本营(rgznai)
作为一个程序员,我们可以像学习编程一样学习深度学习模型开发。我们以Kras为例来说明。
我们可以用5步+4种基本元素+9种基本层结构,这5-4-9模型来总结。
5步法:1.构造网络模型2.编译模型3.训练模型4.评估模型5.使用模型进行预测
4种基本元素:1.网络结构:由10种基本层结构和其他层结构组成2.激活函数:如rlu,softmax。口诀:最后输出用softmax,其余基本都用rlu3.损失函数:catgorical_crossntropy多分类对数损失,binary_crossntropy对数损失,man_squard_rror平均方差损失,man_absolut_rror平均绝对值损失4.优化器:如SGD随机梯度下降,RMSProp,Adagrad,Adam,Adadlta等
9种基本层模型包括3种主模型:
1.全连接层Dns2.卷积层:如conv1d,conv2d3.循环层:如lstm,gru
3种辅助层:1.Activation层2.Dropout层3.池化层
3种异构网络互联层:
1.嵌入层:用于第一层,输入数据到其他网络的转换2.Flattn层:用于卷积层到全连接层之间的过渡3.Prmut层:用于RNN与CNN之间的接口
我们通过一张图来理解下它们之间的关系
▌五步法五步法是用深度学习来解决问题的五个步骤:
1.构造网络模型2.编译模型3.训练模型4.评估模型5.使用模型进行预测
在这五步之中,其实关键的步骤主要只有第一步,这一步确定了,后面的参数都可以根据它来设置。
过程化方法构造网络模型
我们先学习最容易理解的,过程化方法构造网络模型的过程。
Kras中提供了Squntial容器来实现过程式构造。只要用Squntial的add方法把层结构加进来就可以了。10种基本层结构我们会在后面详细讲。
例:
fromkras.modlsimportSquntialfromkras.layrsimportDns,Activationmodl=Squntial()modl.add(Dns(units=64,input_dim=))modl.add(Activation("rlu"))modl.add(Dns(units=10))modl.add(Activation("softmax"))
对于什么样的问题构造什么样的层结构,我们会在后面的例子中介绍。
编译模型模型构造好之后,下一步就可以调用Squntial的