测试什么是端到端的连接连接,要使用什么命令

         这段时间公司要用angular2重构之前项目嘚前端页面希望能达到前端工程化的目标。 因为anglar2的资料相对较少 所以进展不是很快。 我主要是负责前端自动化测试里什么是端到端的連接测试这块这次有了一点阶段性的小成果。能成功运行什么是端到端的连接测试了在这里把经验分享给大家。

         端到段测试的目的: 什么是端到端的连接测试又称为集成测试 主要目标就是用代码模拟用户和系统的之间的交互,看能不能达到预期的效果

运行什么是端箌端的连接测试的步骤:

2.  打开一个dos窗口,定位到项目目录下输入如下命令:

3.  保持上一个dos窗口运行, 再打开一个dos窗口 定位到项目位置启動项目, 输入命令:npm start

4.  保持之前两个dos窗口运行再打开第三个dos窗口,定位到项目位置 启动测试,输入命令:npm run e2e

下图所示页面出现表示测试结果符合预期结果

该系列仅在原课程基础上部分知識点添加个人学习笔记或相关推导补充等。如有错误还请批评指教。在学习了 Andrew Ng 课程的基础上为了更方便的查阅复习,将其整理成文芓因本人一直在学习英语,所以该系列以英文为主同时也建议读者以英文为主,中文辅助以便后期进阶时,为学习相关领域的学术論文做铺垫- ZJ



(字幕来源:网易云课堂)

深度学习中最令人振奋的最新动态之一,就是什么是端到端的连接深度学习的兴起那么什么是端到端的连接学习到底是什么呢?简而言之 以前有一些数据处理系统或者学习系统 它们需要多个阶段的处理,那么什么是端到端的连接深度學习就是忽略所有这些不同的阶段,用单个神经网络代替它我们来看一些例子,以语音识别为例你的目标是输入 x 比如说一段音频,嘫后把它映射到一个输出 y就是这段音频的听写文本,所以传统上 语音识别需要很多阶段的处理首先你会提取一些特征,一些手工设计嘚音频特征也许你听过 MFCC,这种算法是用来从音频中提取一组特定的人工设计的特征在提取出一些低层次特征之后,你可以应用机器学習算法在音频片段中找到音位,所以音位是声音的基本单位比如说 Cat 这个词是三个音节构成的,Cu-Ah-和Tu- 算法就把这三个音位提取出来然后伱将音位串在一起构成独立的词,然后你将词串起来构成音频片段的听写文本

所以和这种有很多阶段的流水线相比,什么是端到端的连接深度学习做的是你训练一个巨大的神经网络 输入就是一段音频,输出直接是听写文本AI 的其中一个有趣的社会学效应是,随着什么是端到端的连接深度学习系统表现开始更好有一些花了大量时间 或者整个事业生涯,设计出流水线各个步骤的研究员还有其他领域的研究员 不只是语言识别领域的,也许是计算机视觉 还有其他领域他们花了大量的时间,写了很多论文 有些甚至整个职业生涯的一大部分都投入到开发这个流水线的功能或者其他构件上去了,而什么是端到端的连接深度学习就只需要把训练集拿过来直接学到了 x 和 y 之间的函數映射,直接绕过了其中很多步骤对一些学科里的人来说 这点相当难以接受,他们无法接受这样构建AI系统因为有些情况 什么是端到端嘚连接方法完全取代了旧系统,某些投入了多年研究的中间件也许已经过时了

事实证明 什么是端到端的连接深度学习的挑战之一是,你鈳能需要大量数据才能让系统表现良好比如 你只有 3000 小时数据,去训练你的语音识别系统那么传统的流水线,传统的流水线效果真的很恏但当你拥有非常大的数据集时,比如 10000 小时数据或者 100,000 小时数据,这样什么是端到端的连接方法突然开始很厉害了所以当你的数据集較小的时候,传统流水线方法其实效果也不错通常做得更好,你需要大数据集 才能让什么是端到端的连接方法真正发出耀眼光芒如果伱的数据量适中,那么也可以用中间件方法 你可能输入还是音频然后绕过特征提取 直接尝试从神经网络输出音位,然后也可以在其他阶段用所以这是往什么是端到端的连接学习迈出的一小步,但还没有到那里

这张图上是一个研究员做的人脸识别门禁,是百度的林元庆研究员做的这是一个相机 它会拍下接近门禁的人,如果它认出了那个人门禁系统就自动打开 让他通过,所以你不需要刷一个RFID工卡就能進入这个设施系统部署在越来越多的中国办公室,希望在其他国家也可以部署更多你可以接近门禁 如果它认出你的脸,它就直接让你通过 你不需要带 RFID工卡那么 怎么搭建这样的系统呢? 你可以做的第一件事是 看看相机拍到的照片,对吧? 我想我画的不太好但也许这是相机照片,你知道 有人接近门禁了所以这可能是相机拍到的图像 x,有件事你可以做 就是尝试直接学习图像 x 到人物 y 身份的函数映射,事实证奣这不是最好的方法其中一个问题是,人可以从很多不同的角度接近门禁他们可能在绿色位置,可能在蓝色位置有时他们更靠近相機,所以他们看起来更大有时候他们非常接近相机,那照片中脸就很大了在实际研制这些门禁系统时,他不是直接将原始照片喂到┅个神经网络 试图找出一个人的身份。

相反 迄今为止最好的方法似乎是一个多步方法 首先,你运行一个软件来检测人脸所以第一个检測器找的是人脸位置,检测到人脸然后放大图像的那部分,并裁剪图像 使人脸居中显示然后就是这里红线框起来的照片,再喂到神经網络里让网络去学习,或估计那人的身份研究人员发现,比起一步到位 一步学习把这个问题分解成两个更简单的步骤,首先是弄清楚脸在哪里第二步是看着脸 弄清楚这是谁,这第二种方法让学习算法 或者说两个学习算法分别解决两个更简单的任务 并在整体上得到哽好的表现,顺便说一句 如果你想知道第二步实际是怎么工作的 我这里其实省略了很多。

顺便说一下 如果你想知道第二步实际怎么工作嘚我其实省略了很多细节,训练第二步的方式训练网络的方式,就是输入两张图片然后你的网络做的就是,将输入的两张图比较一丅 判断是否是同一个人比如你记录了10000个员工ID,你可以把红色框起来的图像快速比较..也许是,全部10,000个员工记录在案的ID 看看这张红线内嘚照片 是不是那10000个员工之一,应该允许进入这个设施 或者进入这个办公楼这是一个门禁系统 允许员工进入工作场所的门禁,为什么两步法更好呢?实际上有两个原因一是你解决的两个问题 每个问题实际上要简单得多,但第二 两个子任务的训练数据都很多具体来说 有很多數据可以用于人脸识别训练,对于这里的任务1来说任务就是观察一张图 找出人脸所在的位置,把人脸图像框出来所以有很多数据,有佷多标签数据 x,y其中 x 是图片 y 是表示人脸的位置,你可以建立一个神经网络 可以很好地处理任务 1然后任务 2 也有很多数据可用,今天 业界领先的公司拥有 比如说数百万张人脸照片,所以输入一张裁剪得很紧凑的照片比如这张红色照片 下面这个,今天业界领先的人脸识别团隊有至少数亿的图像,他们可以用来观察两张图片并试图判断照片里人的身份,确定是否同一个人所以任务2还有很多数据,相比之丅 如果你想一步到位这样x,y的数据对就少得多,其中x是门禁系统拍摄的图像y是那人的身份,因为你没有足够多的数据去解决这个什么是端到端的连接学习问题但你却有足够多的数据来解决子问题 1 和子问题 2 实际上,把这个分成两个子问题比纯粹的什么是端到端的连接深喥学习方法 那达到更好的表现,不过如果你有足够多的数据来做什么是端到端的连接学习也许什么是端到端的连接方法效果更好,但在紟天的实践中 并不是最好的方法

我们再来看几个例子,比如机器翻译传统上 机器翻译系统也有一个很复杂的流水线,比如英语机翻嘚到文本 然后做文本分析,基本上 要从文本中提取一些特征 之类的经过很多步骤 你最后会..,将英文文本翻译成法文因为 对于机器翻译來说,的确有很多(英文,法文)的数据对什么是端到端的连接深度学习在机器翻译领域非常好用,那是因为在今天可以收集 x-y 对的大数据集,就是英文句子和对应的法语翻译所以在这个例子中,什么是端到端的连接深度学习效果很好最后一个例子 比如说你希望,观察一个駭子手部的x光照片并估计一个孩子的年龄,你知道 当我第一次听到这个问题的时候我以为这是一个非常酷的犯罪现场调查任务,你可能悲剧的发现了一个孩子的骨架你想弄清楚孩子在生时是怎么样的,事实证明 这个问题的典型应用从x射线图估计孩子的年龄,是我想呔多了 没有我想象的犯罪现场调查脑洞那么大结果这是儿科医生用来,判断一个孩子的发育是否正常处理这个例子的一个非什么是端箌端的连接方法,就是照一张图 然后分割出每一块骨头所以就是分辨出那段骨头应该在哪里,那段骨头在哪里那段骨头在哪里? 等等 然後,知道不同骨骼的长度你可以去查表,查到儿童手中骨头的平均长度然后用它来估计孩子的年龄,所以这种方法实际上很好相比の下 如果你直接从图像去判断孩子的年龄,那么你需要大量的数据去直接训练 据我所知这种做法今天还是不行的,因为没有足够的数据來用什么是端到端的连接的方式来训练这个任务相比之下 你可以想象一下如何将这个问题分解成两个步骤,第一步是一个比较简单的问題也许你不需要那么多数据,也许你不需要许多x射线图像来切分骨骼而任务二 收集儿童手部的骨头长度的统计数据,你不需要太多数據也能做出相当准确的估计所以这个多步方法看起来很有希望,也许比端对端方法更有希望至少直到你能获得更多什么是端到端的连接学习的数据之前。

所以什么是端到端的连接深度学习系统是可行的它表现可以很好 也可以简化系统架构,让你不需要搭建那么多手工設计的单独组件但它也不是灵丹妙药,并不是每次都能成功在下一个视频中,我想与你分享一个更系统的描述 什么时候你应该使用戓者不应该使用什么是端到端的连接的深度学习,以及如何组装这些复杂的机器学习系统


相对于传统的一些数据处理系统或者學习系统,它们包含了多个阶段的处理过程而什么是端到端的连接的深度学习则忽略了这些阶段,用单个神经网络来替代

在少数据集嘚情况下传统的特征提取方式可能会取得好的效果;如果在有足够的大量数据集情况下,什么是端到端的连接的深度学习会发挥巨大的价徝

  • 什么是端到端的连接学习可以直接让数据“说话”;
  • 所需手工设计的组件更少。
  • 排除了可能有用的手工设计组件

应用什么是端到端嘚连接学习的 Key question:是否有足够的数据能够直接学习到从 x 映射到 y 的足够复杂的函数。


PS: 欢迎扫码关注公众号:「SelfImprovementLab」!专注「深度学习」「机器學习」,「人工智能」以及 「早起」,「阅读」「运动」,「英语 」「其他」不定期建群 打卡互助活动

对功能进行什么是端到端的连接測试并将其添加到持续集成的过程中。单元测试是一回事当代码通过单元测试后,我们可以确信组件是坚固可靠的而什么是端到端嘚连接测试则是另一回事,它就像用户一样与UI交互例如,我们实现的某些功能中可能就包含类似的用例什么是端到端的连接测试就是為这种场景设计的。

Selemium这类工具可以将什么是端到端的连接测试自动化它们会将用户的操作记录下来,我们可以控制它重复地进行相同的操作例如,一个什么是端到端的连接测试可能包含了对某个资源的创建、修改和删除操作这类工具知道操作成功时程序该如何响应。洳果结果与预期不符则说明测试没有通过,需要修复一些错误什么是端到端的连接测试的自动化对提高可扩展性是非常重要的,因为隨着新功能不断地增加用户与应用的交互情景会越来越多。

我们可以再次求助于工具链它既然已经将其他任务自动化,那么也应该可鉯将什么是端到端的连接测试自动化工具链对于持续集成过程也非常重要。我们通常共用一个CI服务器来构建系统的各个部分只不过每個部分的构建过程不一样。借助工具链可以方便地与CI进程集成,因为我们只需要编写合适的工具链命令即可

使用模拟数据有助于什么昰端到端的连接测试,因为当工具模拟用户行为时它需要发送请求。这样不仅提高了一致性而且有助于在寻找导致出错的数据时排除蔀分测试用的模拟数据。使用模拟数据可以针对同一份数据开发单元测试和什么是端到端的连接测试

为了提高前端代码的独立性,可以模拟它依赖的后端API模拟API还能帮助我们专注地开发UI——避免了后端问题阻碍前端的开发。模拟数据还有助于我们测试代码现在有很多实現方式不同的单元测试库可供使用。如果使用相同的模拟数据来执行测试任务可以通过观察浏览器的变化来排除不一致性。我们应该将測试自动化让它与开发过程中的其他任务一起自动执行。

本文由百家号作者上传并发布百家号仅提供信息发布平台。文章仅代表作者個人观点不代表百度立场。未经作者许可不得转载。

我要回帖

更多关于 端到端连接 的文章

 

随机推荐