Skip to main content
 Web开发网 » 站长学院 » 浏览器插件

十分钟上手深度学习--keras快速入门

2021年11月04日5410百度已收录

现在技术圈最火的技术是什么?深度学习肯定是当之无愧的第一梯队。从国内去年争论的沸沸扬扬的高考机器人,到阿尔法狗的强势冲击,无论是话题性还是学术性,深度学习都被广泛讨论。

十分钟上手深度学习--keras快速入门  Theano入门 第1张

高考机器人挑战高考状元

现在的程序员如果不会点深度学习都不好意思开口。如果你想不管任何令人头疼的算法,马上会写深度学习(什么?你还认为不可能?),快来跟颂哥来快速入门吧,学不会不要钱(本来也不要钱)。

框架第一步是选择工具,目前主流的深度学习框架非常多,每种框架各有其优势,这里就不赘述了。这里也不是重点,随便百度一下想看多少有多少。

十分钟上手深度学习--keras快速入门  Theano入门 第2张

深度学习框架

我们今天的主角是keras,

Keras是一个高层神经网络API,Keras由纯Python编写而成并基Tensorflow、Theano以及CNTK后端。

十分钟上手深度学习--keras快速入门  Theano入门 第3张

特点

定义任务做深度学习的首要任务是搞清楚要解决的问题是什么样子的,也就是弄清楚模型的输入是什么,输出是什么。

举几个例子:

对于手写体识别这个任务来说,输入是一张图片,图片大小是28*28个像素点,也就是说输入的是784维的向量。

十分钟上手深度学习--keras快速入门  Theano入门 第4张

手写体识别

我们要判断这个图片表示哪个数字,所以输出维度为十维的向量。

十分钟上手深度学习--keras快速入门  Theano入门 第5张

手写体识别网络结构

较复杂的任务也同样如此,比如说机器写诗这样一个任务。训练数据为唐诗三百首,我们需要给定一个字,然后随机生成一首诗,这个问题最朴素的模型为char-RNN。

网络逻辑为,根据前一个字来输出后一个字,知道输出截止符为止。

十分钟上手深度学习--keras快速入门  Theano入门 第6张

机器写诗

词语的向量化有很多种方式,比如我们这里的每一个字可以用一个100维的向量表示,那么输入和输出的维度都是100维的向量。

十分钟上手深度学习--keras快速入门  Theano入门 第7张

机器写诗

文本预处理对于文本这种数据,往往需要预处理成机器可以理解的向量表示形式,在keras中可以很方便的进行这样的预处理操作。

十分钟上手深度学习--keras快速入门  Theano入门 第8张

文本预处理

需要注意的是,keras的文本预处理工具的输入必须是已经分词完毕的文本,我们可以根据需要使用jieba对文本进行分析,或者将文本按照字符进行切分。

网络构建ok,执行完预处理,我们就可以搭建网络了。

所有的模型和参数我们当做黑盒去使用即可,不需要太多纠结,遇到问题再去查询每个参数应该如何设计即可。

十分钟上手深度学习--keras快速入门  Theano入门 第9张

模型搭建

我们可以看到整个网络模型只有简单的十多行代码,我们先创建一个序贯模型,然后添加两个全连接层,全连接层设置了激活函数,和输入的维度。然后对网络进行了编译,编译中设置了损失函数等参数。最后使用训练数据进行了模型训练,最后对需要预测的数据进行预测。

思路自然简单,上文中所有的损失函数,激活函数。以及全连接层的节点个数,大家均可根据心情随机设置(就是这么任性),随机设置亦可获得较好的效果。需要进行性能优化的时候再回过头来思考哪里需要改进即可。

网络参数下面是我对于网络参数设置的一些经验,大家可以酌情参考一下。

十分钟上手深度学习--keras快速入门  Theano入门 第10张

网络参数

评论列表暂无评论
发表评论
微信