-->

深度学习推荐系统实战_22_模型实战准备一_TensorFlow入门和环境配置

你好,我是王哲。

今天我想和你聊一聊TNR flow的入门知识。

那我在之前的留言区看到很多同学对TNRFOW的用法还不太熟悉,甚至可能还没有接触过TNRF low.但是我们必须要熟练的掌握它。

因为接下来它会成为我们课程中主要使用的工具和平台。

所以我特意准备了两堂模型实战准备课,来帮助你掌握TNL flow的基础知识,并为构建深度学习模型做好准备。

那这节课我们先来学习TERFL的环境配置,说说什么是TERF low w怎安装TNNF fo w及怎么TTNRF flow上构建你的第一个深度学习模型。

下节课我们再来学习模型特征和训练样本的处理方法。

首先我们先来说说什么是TERFOOTNRF,是由fgoooole le pro团开发发的深度习平台台,在二零一五五熟十月首次发台台。

我我最新版本本是二三,因为TNRF flow自二点零之后发生了比较大的变化,所以咱们这节课会使用TNNFLW二点三作为实践版本。

那TNLF这这名字还是是很有意思,翻翻译过来就是量流动。

其实这非常准确的表达了它的基本原理,就是根据深度学习模型架构构建一个有向图,让数据以张量的形式在在中流动动起来。

这里的张量其实指的是向量的高维扩展,比如向量可以看作张张的一维流形矩矩,可可以看作张量在维维间间上特例。

例在深度度习模型型大部部数据据以向量甚甚更更维的的张量表达等。

而在这这数据据流起来,每一个深度学习模型需要构建根据模型结构,建立一个由由点和边组成的向向图里面的点代表着某种操作,比如某个计活函数、某种矩阵运算等等,而边就定义了张量流动的方向。

啊,这么说还是太抽象。

我们来看一个简单的TNRL flow任务的有向图。

从文稿的示意图中我们可以看出,向量b矩阵x和向量x是模型的输入,紫色的节点mate ml d和和LLU操操作结点,分别代表矩矩阵执系。

向量加法ral u激活函数。

这样的操作,那模型的输入张量WBX经何复杂结点的变形处理之后,在点之间传递。

这就是tensl flow名字里所谓的张量流动。

那事实上,任何复杂模型都可以抽象为操作有向图的形式,这样做不仅有利于操作的模块化,那可以理清各操作间的依赖关系,用于有利于判定哪些操作可以并行执行,哪些操作,只能串行执行为并行平台,能够最大程度的提升训练速度打下基础。

说起TNRL flow的并行训练,就不得不提GPU.因为GPU拥有大量的计算核心,所以特别是合作矩阵运算这类易并并行的计算操作。

一切主流的tencl flow平台都是建立在GPU加CPU的计算环境之上。

但咱们这门课,因为考虑到大部分同学使用个人电脑进行学习,所以所有的项目实践都建立在TERFOW的CPU版本上。

我在这里先说明一下。

好了,那知道了tenent floor的基本概念之后,我们就可以开始着手配置它的运行环境了。

我先把这门课需要的环境版本告诉你。

首先TNRFL我推荐二点三python推荐三点七的版本。

那建议你在学习过程中不要随意更换版本,尽量保持一致。

那虽然python和TNLL flow环境都有自己的官方安装指南,但是其实安装起来并不容易,所以接下来我会带你梳理一遍安装中的重点步骤。

那一般来说,安装TNLL flow有两种方法,一种是采用docker加jubiter的方式。

另一种是在本地环境安装tencl flow所需的python环境和依赖库。

那其中docker加jupier的方式比较简单,我们先来看一看它。

那经过十三节的模型服务的实践啊,我们已经把docker安装到了自己的电脑上,这里它就可以再次派上用场了。

那因为TNCFOW官方已经为我们准备好了TNNFFOW专用的docker镜像。

那你只需要运行我在文稿中给出的两行代码就可以拉取,并且运行最新的TNRFLOW版本。

呃,并且在local host四个八的端口运行起jupiter notebook.那如果你已经能够在浏览器中打开jubia了,那就在这个notebook上开始你的tencil l low实践吧。

那在之后的实践中,我们也可以把spell rexes中的TNCFOW代码copy到这个notebook上直接执行啊,因为不用担心非常复杂的python环境的配置,而且docker的运行与你的主系统是隔离的。

如果把它玩坏了,那再重新拉取全新的镜像就好。

所以这个方式是最快捷安全的方式。

那不过docker加jubp的方式虽然非常方便,但我们在实际工作中还是会更多的使用IDE来管理和维护我们的代码。

那所以啊掌握idea或者patroon这类IDE来调试TNCL flow代码的方法。

对我们来说也是非常的重要。

那比如说啊spare rerest中就包含了tn l flow的python代码。

我把所有的python和tinl flow相关的代码都放在了TF rank model模块。

那我们能不能利用idea一站式的调试sparrex项目中的python代码和之前的java scala代码呢?啊,当然是可以的。

嗯,要实现这一操作,我们需要进行三步的配置,分别是安装idea的python编译器插件。

那安装本地的python环境以及配置idea的python环境下面我们就一步一步的说一说,你可以结合我文稿中每一步的操作示意图,一起来听一听。

那首先是安装idea的python编译器插件。

那因为idea默认不支持python的编译,所以我们需要为它安装python插件。

具体的安装路径是点击顶部菜单的intelligence、 idea啊、preferences啊、plugins啊,输入python啊,选择插件python community edition进行安装。

接着是安装本地的python环境。

使用过python的同学可能知道,由于它的流行版本比较多,不同软件对于python环境的要求也不同,所以直接更改本地的python环境是比较危险的。

因此我推荐你使用anna onda来创建不同的python虚拟环境,这样就可以为咱们的sparo s项目专门创建一个使用python三点七的支持tenn l of lolow二点三的虚拟python环境了啊,具体的步骤我推荐你参考and counder的官方teninof flow环境安装指导啊,这里我再带你梳理一下其中的关键步骤。

首先我们去康达的官方地址下载和安装anacannonda.因为它的最新版本是使用了python三点八,你也可以去历史版本中安装python三点七的版本。

然后如果你是windows环境,就打开ann CN da command prompt啊。

如果是mac或linux环境,就打开tomminal跟我一起输入两行命令,那一条是conda create minythn TFTELLO.第第二条是dda acyvon环境。

那我们来看一看这两条命令,那第一条它会去创建一个thon为TF的NNL flow环境。

第二条TNRFOW会为我们这个python环境中准备好所有TENFOW需要的python库依赖。

那接着我们直接选择TENF flow的CPU版本。

那有GPU环境的同学可以把命令中的TERFL替替换成ftennl flow GPU来安装,支持GPU的版本。

那到这里,我们就利用annonda安装好了tencil flow的python环境。

第现在idea的python插件也有了,本地条TNNF flow, python环境也有了。

接下来我们就要在idea中配置它的python环境。

那这个配置过程主要也分为三步,我们一起来看一看。

那第一步是在idea中添加python的SDK,那你直接按照我给出的这个路径配置就可以了。

呃,路径是file啊,project structure SDKS啊,点击加号艾d python SDK添加完python NDK.接下来我们配ppda environment为项目的python SDK idea,会自动的检测到系统的conda环境相关路径,你选择按照自动填充的路径就可以了。

那最后我们为TF reack model模块配置python环境,我们选择produproduct structure modules部下来配置reack model模块,在其上点击右键来add python.那到这里我们就完成了所有python环境的配置。

那如果你是按照刚才的步骤进行操作的那python和TERFFO的环境就全部准备好了。

那我们到底应该怎么验证?所有的配置是不是成功呢?接下来我们就来写一个测试模型来验证一下。

那这里我们选择tn l flow官方教程上的例子,作为我们的深度学习模型的初体验,你可以参考文稿中的链接来构建这个模型。

那我再对其中的关键内容做一个补充解释。

我先把模型测试的代码放在文稿里,你可以边看代码边听我的讲解。

那首先我们要清楚的是这个测试模型做了一件什么事情。

它要处理的数据集是一个手写数字的数据集,所以模型其实是一个多分类模型。

它的输入是一个二十八乘以二十八像素的手写数字图片,输出是一个零到九的多分类概率模型。

其次我们要清楚怎么定义这个深度学习模型的结构。

那从代码中我们看到测试模型使使了TENFFOL carrots接口,这样就可以方便的定义一个三层神经网络了。

它包括一个二十八乘以二十八的输入层,一百二十八维的隐层,以及由soft max构成的多分类输入层之后是模型的训练。

那这里有三个参数的设定很关键,这别是compile函数的optimizer loss以及fit函数中的abbox.那其中optimizer指的是模型训练的方法。

那这里采用了深度学习训练中经常采用的adam优化方法,你也可以选择随机梯度下降和自动变更学习率的eleagram,以及动量优化moment等等。

Alloss指的是损失函数啊,因为这个问题是一个多分类问题,所以测试模型使用了多分类交叉熵作为损失函数。

I box指的是训练时所需的迭代次数。

那单次训练指的是模型训练过程,把所有训练数据学习了一遍。

那这里i box等于五意味着模型要反复学习五次训练数据,以便它收敛到一个局部。

最右的位置。

那最后是模型评估的过程。

因为在构建模型的时候,我们选择了准确度作为评估指标。

所以model一y ue的函数会输出准确度的结果到这里我们就讲完了整个测试模型的全部流程。

事实上,之后,利用参次flow构建深度学习推荐模型的过程也非常类似,只是把其中的特征处理模型结构、训练方法进行了替换,整体的结构并没有变化。

所以理解测试模型的每一步对我们来说都是非常重要的。

说回我们的测试模型。

那如果python和TNCF flow环境都配置正确的话,在idea中执行测试模型的程序,你会看到五轮的训练过程,每一轮的准确度指标以及最终模型的评估结果,这些我都放在了文稿里。

你可以对照来看。

好了,今天的课程讲完了,我们一起来做一个总结。

这节课我们一起学习了TERFLL的基础知识,搭建起了TERFLL的使用环境,并且编起了第一个基于carrots的深度学习模型。

那TNCFOW的基本原理就是根据深度学习模型架构构建一个有向图,让数据以张量的形式在其中流动起来。

而安装tenn c flow有两种方法,一种是采用dodocer er加rupet的方式。

另一种是在本地环境安装tennl flow所需的python环境和所需依赖。

其中,docker加jupt的方式比较简单。

而利用idea来调试tenn l forl代码的方式比较常用,我们要重点掌握。

那想要实现idea中调试TENFLOW代码,我们需要进行三步的配置,分别是安装idea的python编译器插件。

安装本地的python环境,最后配置idea的python环境,配置好的python和tenn l fo的环境之后,我们还要验证一下,是不是所有的配置都成功了。

那在测试模型中,我们要牢记住它的四个主要的步骤,分别是载入数据定义模型、训练模型和评估模型。

我把这些关键知识点总结在了文稿的知识表格里,你可以看一看,也这是一节实践课。

所以今天的课后题就是希望你能完成TNFFO的环境配置,并且运行测试模型。

那在配置实验中遇到任何问题,你都可以在留言区提问,我会尽力去解答,也欢迎同学们分享自己的实践经验,互相帮助。

我们下节课见。