深度学习工程应用快速入门

课程介绍

伴随人工智能时代的到来,深度学习技术也发挥着越来越重要作用,越来越多的技术人才开始投身入这一行业中,并希望发展成为一名深度学习算法工程师。然而,在实际的工程设计中,深度学习研发者总会面临着各种问题与困惑,比如:

  • 我们在设计深度网络的时候有什么技巧和原则吗?
  • VGG、ResNet 网络如何应用在实际的芯片上?
  • BN 层应该放在哪里比较合理?
  • 网络越深越好还是越宽越好?
  • 训练时如此多的优化方法,一定是 SGD 吗?
  • 学习率怎么调比较合适?
  • 模型迁移、模型剪枝、模型压缩、模型精剪设计,这些该如何去实践?
  • 序列问题中的 RNN 网络,怎样设计才能够确保网络更好、更快的收敛?
  • Siamese、Triplet 这样的网络要怎样训练?样本怎么处理、挖掘?
  • ……

本达人课,将针对上述问题进行一一分析与解答。主要针对机器学习初学者、深度学习入门者以及其他想从事深度学习相关工作的从业者,内容涉及到深度学习的基本概念,模型原理,不同类别的网络模型,模型设计的基本原则、训练、优化、模型精简等不同方面。另外,本课程还通过实际的网络设计,结合相应的原则来解决分类任务、序列任务等,带领大家深入理解网络设计的基本原则和方法,并锻炼深度学习编程能力和技巧。

本课程共包括22个课时,分为四大部分:

  • 第一部分(第01-02课),带你初步认识深度学习以及如何进阶深度学习。
  • 第二部分(第03-14课),从工程实践的角度出发,详细介绍深度学习中涉及到的各种各样的概念、原理,重点讲解在工业实战中的使用技巧和原则,帮助大家打好的深度学习工程实战基础。
  • 第三部分(第15-20课),从实际工程的角度出发,详细介绍卷积神经网、循环神经网的发展历程、工程设计原则和方法,并带领大家一起设计一个精简的深度网络,并用于目标检测任务。
  • 第四部分(第21课),作为课程的最后一部分,我们将对整个课程做总结、回顾与展望。

作者介绍

王学宽,曾就职于海康威视研究院担任计算机视觉方向算法工程师,发表多篇学术论文、申请多项国家专利,参与多项图像、自然语言项目相关课题研发工作,在计算机视觉领域具有深厚的专业知识和工程开发经验。运营有公众号:白话机器学习(微信号:simpleml90hou),开设有知乎专栏:《深度学习干货铺》。

课程内容

开篇词:一门真正面向工程的深度学习进阶课程

大家好,我是深度学习算法工程师王学宽。现就职于某 AI 智能科技公司,参与教育+计算机视觉类创新性产品研发任务。曾在香港理工大学担任 RA,参与大规模图像检索项目的研发,后加入海康威视,参与 ADAS 视觉相关算法研发工作。曾发表多篇学术论文、申请多项国家专利,先后参与多项图像、自然语言项目相关课题研发工作,在深度学习领域具有深厚的专业知识和工程开发经验。运营有公众号:白话机器学习(微信号:simpleml90hou),开设有知乎专栏:《深度学习干货铺》。

很高兴能在接下来的十周里,通过《深度学习工程应用指南》达人课来分享深度学习在工程应用中的实战心得,包括在网络设计、训练调参、优化压缩、迁移剪枝等各个方面的技术知识和探索心得。希望能够通过通俗易懂的语言,带大家一起揭开深度学习的神秘面纱,帮助大家快速入门深度学习,并尽快展开工程实战项目。

深度学习入行的迫切性已无须强调,无论从行业发展前景、行业人才需求、国家人工智能发展战略等不同角度来看,深度学习作为人工智能发展的基石,在未来行业中必将大放异彩。目前,越来越多的企业,纷纷迈开了深度学习的第一步,并取得重要成果。对于从业者而言,行业的欣欣向荣带来更多的就业机会,更高的薪资待遇。越来越多的人开始希望投身到深度学习这个行业之中,从事工程或者算法类的相关工作。在实际工作中,入行者即便已了解了 Caffe 和 TensorFlow 等基础知识,但在实际工程设计时,依然会遇到各种各样的困惑,比如:

  • 我们在设计深度网络的时候有什么技巧和原则吗?
  • VGG、ResNet 网络如何应用在实际的芯片上?
  • BN 层应该放在哪里比较合理?
  • 网络越深越好还是越宽越好?
  • 训练时如此多的优化方法,一定是 SGD 吗?
  • 学习率怎么调比较合适?
  • 模型迁移、模型剪枝、模型压缩、模型精剪设计,这些都需要怎么去实践?
  • 序列问题中的 RNN 网络,怎样设计才能够确保网络更好、更快的收敛?
  • Siamese、Triplet 这样的网络要怎样训练?
  • 样本怎么处理、挖掘?
  • ……

而帮助大家认识这些问题,并尝试着解决这些问题,也是我推出这门课程的初衷。

课程优势

主要优势可以总结一下几点:

  • 全面的内容、快速入门到实战

    本课程内容涉及到工程实战深度学习中的各种概念、问题,内容全面、适合初学者从入门到快速实战,更面向工程开发。

  • 工程实战下的通俗概念阐释

    本课程涵盖深度学习各个不同领域涉及到的模型基本原理,并结合工程经验,对这些核心概念进行分析、解释。针对具体的数学推导公式,深入剖析。本课程在第二部分涉及到多个概念,每个课程将配有细致的图示化解释,通俗易懂。

  • 工程实战下的设计原则和技巧

    本课程重点介绍深度学习在实际工程实战时会遇到的一些问题,并针对这些问题,给出各种常用的解决技巧,另外,在设计网络时,也给出基本的设计原则,更加符合工程开发。

  • 更加直观的实战代码讲解

    本课程对网络设计原则、模型讲解的过程中,会引入大量的深度学习代码,以 Python 语言为主,来对模型、设计技巧、原则等问题进行说明,更加直观。

课程大纲

本课程共包括 23 个课时,分为四大部分。主要针对机器学习初学者、深度学习入门者以及其他想从事深度学习相关工作的从业者,分别涉及到深度学习的基本概念,模型原理,不同类别的网络模型,模型设计的基本原则、训练、优化、模型精简等等不同方面。另外,本课程还通过实际的网络设计,结合相应的原则来解决分类任务、序列任务等,加上动手实践过程,带领大家深入理解网络设计的基本原则和方法,并锻炼深度学习编程能力和技巧。

  • 第一部分(第01-02课):绪论。

    初窥门径。本部分带你初步认识深度学习、了解深度学习行业背景、发展状况以及如何进阶深度学习。

  • 第二部分(第03-14课):深度学习的核心理论。

    深谙其理。本部分从工程实践的角度出发,详细介绍深度学习中涉及到的各种各样的概念、原理,尤其在工业实战中的使用技巧和原则,帮助大家打好深度学习工程实战基础。

  • 第三部分(第15-20篇):工程实战中深度神经网设计原则。

    登堂入室。本部分从实际工程的角度出发,详细介绍卷积神经网、循环神经网的发展历程、工程设计原则和方法,并带领大家一起设计一个精简的深度网络,并用于目标检测任务。

  • 第四部分(第21篇):总结、回顾与展望。

    总结与超越。本部分对课程进行总结,回顾已经学习过的知识点,在此将这些知识点串成一条完整的技术路线,温故知新,并为大家接下来展开深度学习专业领域研究奠定理论基础。

关于深度学习如何学的疑惑

很多朋友会认为深度学习是一门工程类学科,也有人把它比喻成一个炼丹的过程,而 Caffe、TensorFlow 就相当于是炼丹炉,而深度网络则像是在炼丹。而深度学习框架的使用,使得这项炼丹技巧越来越大众化,越来越多的人慢慢开始忽视深度学习背后的科学知识,把它仅仅当做一门实验科学来做。甚至有人认为,只要调调包、调调参就够了。然而,真的是这样子吗?

我相信,有这样想法的人,即使是从事着这样行业,估计也不会有太高的成就。深度学习技术发展确实十分迅速,网络上各种各样的开源模型确实存在很多,那这些模型真的就只是调用下就可以了吗?

实际上,并不是这样子的。基础不扎实,首先你可能很难获得一份大厂的 Offer。国内外名企在招聘的时候,十分强调基础的重要性,而这里的基础并不是仅仅只看过西瓜书、NG 的课程这么简单,更需要你能够讲出其中的内部原理、机制。对于深度学习工程师,不仅仅需要你去调调参,同样也需要你去阅读大量的文献,设计新型的网络结构。

记住,想要走的远,就需要基础打得牢。不要相信那些网上的烟雾弹,迷失本心。付出多少才会收获多少,薪资也才会符合自己创造的价值。想想公司可能花闲钱来养你划水吗?答案一定是,No!

你将收获什么?

  • 扎实的技术岗位求职知识储备

相信很多订阅或者准备订阅这个课程的人,都是希望在未来能够投身到深度学习、人工智能这个行业中的,而目前伴随着行业人数、技术门槛等各方面的提升,很多公司在笔试、面试的时候,都更加关注深度学习基础是否扎实这一问题。在面试中,很多面试官喜欢提问深度学习模型背后的一些理论性的东西。因此,更加需要大家注重这方面的积累。本课程通过细致的原理剖析,帮助大家吃透深度学习中的各个理论,相信用来挑战接下来的面试应该是绰绰有余了。

  • 深度学习模型初识

很多同学在开始学习深度学习的时候,都喜欢从模型的角度入手,本课程同样也不例外,在介绍过深度学习的基本理论和方法之后,我们立刻将重点转移到真实的模型和方法中,通过以模型为载体,再次反观理论方法,相互印证,进而更好的推动读者对这两方面内容的理解。

  • 模型设计、模型压缩,更工程化的技术

本课程中涉及到了丰富的模型设计、压缩、迁移等工程实战相关知识,相信目前在网络上已经存在各种各样的关于 Caffe、TensorFlow 的视频教程,这些教程更多的偏向于纯粹的工程入门,更像是在教你用一门软件。对于工程化而言,模型设计原则、模型压缩方法、技巧等等往往具有更加重要的意义。它是我们掌握深度学习技术的进阶基础,一个合格的深度学习算法工程师,不仅要懂得如何设计模型,更需要懂得如何设计精简的模型。

  • 工程深度学习实例讲解

在模型讲解阶段,课程会引入大量的实战代码,并通过代码讲解,来带领大家深入理解不同模型的网络结构。而深度学习本身也更加强调实战能力,“纸上谈兵”没有实际意义。

作者寄语

我希望本课程的读者在掌握深度学习相关知识和技巧的同时,能够将所学应用到实际的项目中,时刻牢记,我们需要有更多的创新精神和意识,真正用 AI 技术去重新认识世界、改变世界,推动社会的进步。我相信,这个时代是人工智能的时代,同时也希望这个时代能够有你的身影。

最后,预祝每一位准备入行深度学习的朋友,均能够通过自身的学习与努力找到心仪的工作。如果大家有任何疑问和建议,也可以通过读者圈或者在我的知乎专栏“深度学习干货铺”留言与我交流,希望我们能够共同探讨、共同进步。

第01课:进阶“深度学习”的问与答

在入门或者进阶深度学习的时候,很多人都会存在各种各样的疑问与迷惑。本课程的初衷也是希望能帮助大家答疑解惑。在开始学习深度学习之前,先明确几个观点,解决一些疑惑。这里,我针对曾经遇到的大多数入门者经常会遇到的问题,这里进行了总结。后续再发现更多的问题,会进一步完善。

我总结了以下几个问题,这也是知乎等各个平台了很多人关心的问题:

  • 深度学习是否可以快速入门?
  • 深度学习是否需要学习理论和公式推导?
  • Fork 了很多源码和 Demo,却没什么进步?
  • 源码读不懂,复现起来很难,怎么办?
  • 学完之后,依然找不到实习工作?
  • 关于深度学习,面试会问哪些问题?

接下来,我们针对上述问题,分别展开回答。

1. 深度学习是否可以快速入门?

对于这个问题,我们首先看一下,入门深度学习,你需要学点什么(假设已经具备 Python 编程基础、高数、线性代数、概率统计的基本数学基础)。

深度学习工程应用快速入门_第1张图片

如果你能够坚持看完周志华所著的机器学习入门教材《机器学习》(俗称“西瓜书”)、深度学习基础教程《深度学习》/《Deep Learning》、Caffe 教程《深度学习:21天实战 Caffe》、TensorFlow 教程《TensorFlow 实战》这四本书,相信这时你已初步具备了深度学习的基础,接下来就是特定领域的深入探究。比如,如果想要进行计算机视觉方面的研究,首先需要掌握目前各种各样的卷积神经网结构,于是又需要花费至少两周的时间了解从 LeNet 到 ResNet 再到 mobileNets 等等卷积神经网,具体可以看下表。

深度网络名 年份 作者 描述
LeNet 1994 Yann LeCun 简单卷积神经网
AlexNet 2012 Alex Krizhevsky 2012届图像识别大赛的冠军
ZFNet 2013 Matthew D Zeiler 可视化
Net in Net 2013 Lin M 网络嵌套模型
VGGNet 2014 牛津大学的视觉几何组 ILSVRC-2014中定位任务第一名和分类任务第二名
GoogLeNet 2014 Google ILSVRC14 比赛中获得冠军
Inception-v2/v3 2015 Google 小卷积代替大大卷积
ResNet 2015 MSRA 何凯明团队
Stochastic_Depth 2016 Gao Huang 随机深度
Wide ResNet 2016 Sergey Zagoruyko 考虑宽度网络性能
Inception-ResNet V1/V2/V3 2016 Google 融合 resnet 和 inception 结构的网络
ResNet in ResNet 2016 Sasha Targ 泛化的 resnet 网络结构
Fractalnet 2016 Gustav Larsson 分形结构
ResNeXt 2016 Saining Xie 减少参数
DenseNet 2017 Gao Huang 稠密网络
DPN 2017 颜水成 结合 resnet 和 densenet
PyramidNet 2017 Dongyoon Han 金字塔+resnet 网络
SqueezeNet 2017 伯克利&斯坦福的研究人员 网络压缩
MobileNet V1/V2 2017 Google 精简网络
ShuffleNet 2017 旷视科技 精简网络
SENet 2017 Momenta 精简网络+imageNet2017 冠军

学完这些卷积神经网,这时候你一定会发现大多数深度学习会更关注某一领域,比如:检测模型、分割模型、关键点等等。于是又一堆的 Paper 袭来。因为你需要阅读最新的 Paper,了解最新的技术,以检测网络为例,

深度学习工程应用快速入门_第2张图片

学完这些,才真正的算是深度学习入行了,对于一些其他的深度学习任务,你可能需要花费单独的时间再去了解研究。

相信看到这里,大家已经明白,“深度学习能否快速入门”这一问题的答案。当然是不能。我在网上也看到过很多这样的网络教程,标题大多以“快速入门,快速精通”等等为标题,整个课程的时间也在很短的时间之内能够完成。相信,如果大家购买课程,并认真学完,一定会有所收获,但短时间内成为一名合格的算法工程师,是不现实的。这也是很多人会在学完课程之后,很难找到工作的一个主要原因。积累不够,内行人或者说面试官是很容易识破的,因此,希望大家在学习这些课程的时候,端正好自己的心态——深度学习是很难短时间速成的,我们需要打好基础,才能够在这一领域走得更远。这也就涉及到了我们的下一个问题,深度学习是否需要学习理论和公式推导?

2. 深度学习是否需要学习理论和公式推导?

答案一定是肯定的,理论基础是必须的,也是决定你以后是否具备核心竞争力的一个重要因素,也决定了你网络创新的能力有多强。很多学习深度学习的人,为了速成,会忽略基础的积累,直接上手 Caffe 或者 TensorFlow,开始调包之旅,对于这些模型背后的理论一知半解,或者从一些博客上随便看看。

曾经面试过一些深度学习岗位的求职者,在问到一些背后理论问题的时候,经常会收到的答案是“这个我从知乎上某某地方看到过……”。从这个答案我只能够看到你关注了一些知乎的大 V,可能收藏了很多这样的文章,然而,并没有认真得思考过为什么。一般这种求职者,都会被贴上一个“基础不扎实”的标签,往往也很难成功拿到 Offer。

为什么需要学习理论和公式推导?我总结出原因有以下几点:

  • 面试必考

对于大多数面试官而言,不仅仅想听你讲故事,因为很多你做的事情,在面试官看来都是比较容易和基础的事情。在看到你的简历上项目的名字的时候,大致就已经猜到项目的内容和所用到的方法。因此,在和面试官交流的时候,他会更在意求职者是否具备扎实的基础,而这些更能反映求职者的学习能力和认识问题的深度。这些在后续工作中,会反映你可能更具备解决和处理问题的能力。因此,扎实的理论基础,往往会更容易赢得面试官的青睐。

  • 同事之间的交流

如果你准备从事算法工程师工作,那接下来你的同事一定也是一群可爱的算法工程师。而在工作之中,难免会遇到同事来和你讨论一些论文,一些新的理论和方法。此时,如果不具备扎实的基础,仅仅只会调用一些模型的话,很容易在同事心中造成不好的印象,尤其是领导。如果大家都认为你水平一般的话,相信在接下来的工作之中,一定会产生很多不利的影响。

  • 工作中网络结构的不断创新的能力

结合自己长期从事算法工程师这一岗位的实际情况来看,有些时候,我们不仅仅需要会调用现有的模型,甚至会由于各种各样的原因,不得不实现一些底层的东西,比如:解决硬件上对于某些层不支持的问题。这时候,当然需要你具备较好的工程基础,同样更需要对于原理和源码的深入理解。另外,在实际工作中,很多时候现成的网络结构并不能满足性能要求的,需要我们自己去设计、实现一些精简的网络结构。没有扎实的基础,也就很难在工作上做出重大贡献。

因此,希望大家都能够做到“知其然,也知其所以然”的程度。相信做到这样程度,一定能找到心仪的 Offer。

3. Fork 了很多源码和 Demo,却没什么进步?

很多人会在私下里微信问我这样一个问题——在 Github 上 Fork 了很多的源码,也跑了不少的 Demo,却依然感觉自己的深度学习技能没有得到太大的提升,很迷茫,不知道接下来怎么去做。

这时候,我通常会问他们,除了配置环境、跑 Demo,你还有尝试和去做下面几件事情吗?

  • 阅读作者的源码,了解它的基本思想的同时,了解代码实现的思想?
  • 尝试在作者源码的基础上,进行一些改进,来提升作者算法的性能?
  • 阅读作者的英文论文,了解关于这一方法的其他同类文献?
  • 参加一些领域的公开比赛或者天池的数据大赛?
  • 有没有尝试将这些方法迁移到其他的问题中?
  • ……

很多人听完这一系列问题之后,才会发现,自己原来还有这么多事情没有去做。其实,Fork 代码,运行一些 Demo 这仅仅是展开深度学习研究的第一步,后续还有太多的事情需要我们去进一步完成。相信做完这些事情,你再也不会觉得自己没有进步了。

4. 源码读不懂,复现起来很难,怎么办?

阅读源码就带来一个很重要的问题,就是源码读不懂怎么办?很多读者也会因此而感到挫败,或者干脆怀疑自己是否适合继续从事算法的相关工作。其实,就算是我,也会遇到很多源码读不懂,很多文章很难复现的情况。这里给大家提供几个参考的建议:

  • 关注核心代码, 相比于框架类代码,核心代码才是我们更应该关注的地方,甚至是改进的地方,因此,从核心代码出发,往往会将代码阅读的难道降低;
  • 配合文章阅读代码, 很多人不喜欢阅读英文的文献,其实这是十分错误的一个思想,往往配合文章一起来阅读代码,你会发现,代码理解起来会容易许多;
  • 难啃的骨头可以放一放, 如果经过自己的各种努力,依然有一些代码没有读懂,那就先放一放,在以后有更多精力的时候再去阅读,尝试去理解它,这里大家一定不要觉得没看懂这些源码,就等于算法不理解;
  • 多与人交流, 虽然很多人可能会很不情愿和你讨论源码,毕竟有可能他也没看过,但多一个人讨论,终究可能会多一些不同的理解与发现;
  • 日常多记录, 经典的代码实现一定要多多记录和收集起来,以后自己在工作和学习中,很容易就遇到了。这会给你带来很多帮助。

5. 学完之后,依然找不到实习?

关于实习的问题,也是很多读者最关心的问题之一,很多人,在学习完深度学习的课程之后,发现去面试的时候,依然很难找到工作,这也使得很多转行做深度学习朋友产生很大的挫败感,甚至怀疑自己是不是适合这一行业。也有朋友会向我咨询这方面的问题,我觉得有必要关于此问题,提醒大家需要注意以下几点:

  • 理论基础是否扎实。 关于理论基础的重要性,在上文中已经进行了阐述。大家谨记,仅仅通过看视频获取基础理论,是远远不够的。很多人在看完 Ng 的机器学习课程以后,会觉得自己已经入行机器学习了,实际上,这些还远远不够,你仍需要补充大量的理论知识,包括数学、编程、深度学习模型,以及阅读大量领域相关英文文献;

  • 具备实际的项目经验。 这里的实际项目指的是利用深度学习解决过一些实际的问题,而不是跑过 mnist,cifar 这样的数据集;

  • 是否发表过高质量的论文。 注意这里指的是高质量,至少 EI、SCI 检索的论文。如果有能力,可以考虑顶会和顶级期刊的论文;

  • 是否有过竞赛的经历。 很多人会说,自己转行过来的,并没有机会去发表论文,或者导师没有相应的课题,那怎么办?这时候,你可以考虑去参加天池数据大赛、Challenge AI 挑战赛等等,目前国内外,有很多很多这样的公开比赛,或者在公开的数据集刷榜。这些都是无门槛,任何人都可以参与的,靠这些为自己的简历镶金,何乐而不为呢?

  • 计算机基础知识是否扎实。 很多算法面试,比如 BAT 这些大厂 ,会更加看中你的计算机基础是否扎实,会考察一些 ACM 类型的题目。关于计算机素养的考察,希望大家能够经常去 LeetCode 这样的平台刷题,来提升自己的思维和编程能力。

6 .关于深度学习,面试会问哪些问题?

最后,我们再看一下,深度学习的面试会遇到哪些问题,希望大家能够有针对的进行准备和培养,相信,大家也会更容易找到自己心仪的 Offer。这里我总结了一些,供大家参考:

  • 代码题(LeetCode 类型)。主要考察数据结构和基础算法,以及代码基本功。大家在找工作之前,一定要刷一些题;
  • 机器学习基础。推荐大家阅读周志华老师的西瓜书、Ng 的机器学习课程和李航的《统计学习方法》;
  • 深度学习基础。推荐大家阅读《Deep learning》花书;
  • 编程语言。推荐 Python+TensorFlow+Caffe;
  • 充分准备做过的项目。尽量准备一些不同的项目作为亮点展示给面试官;
  • 阅读 CVPR、ICCV、ECCV 上相关领域的最新 Paper,甚至可以和面试官探讨;
  • 调整好心态,不要急躁,也不要灰心,坚持找,相信最终一定能拿到好的 Offer。

最后,向大家推荐一些深度学习的面经:

  • 应届硕士毕业生如何拿到知名互联网公司深度学习 Offer?
  • 腾讯、滴滴、阿里、三星深度学习实习岗位面经
  • 2017秋招面试总结:计算机视觉/深度学习算法
  • 国内大互联网公司深度学习面试题

结束语

我相信每一个想要从事深度学习算法工作的人,都心怀一颗不甘的心。我也希望大家能够发挥自己的最大努力,去提升自己,多从自身找原因,发现自己的不足,而不是抱怨面试官的不公。相信,千里马终将会遇到伯乐,如果现在还没有,那一定是你跑的还不快,仍需要加油!

最后,祝每一位即将从业者,都能够找到一份心仪的 Offer。

第02课:揭开深度学习的神秘面纱
第03课:深入理解标准卷积
第04课:千变万化的卷积——反卷积、分组卷积、空洞卷积和深度可分离卷积
第05课:局部感知的妙处
第06课:复杂多变的激活函数
第07课:丰富的正则化策略
第08课:对比分析各种优化方法
第09课:初识深度网络中的深与宽
第10课:深度网络的记忆能力
第11课:Attention 机制
第12课:深度学习中的迁移机制
第13课:谈一谈 Siamese、Triplet 等多支的网络问题
第14课:深度网络的训练技巧与评测标准
第15课:从简到繁再到简的卷积神经网的变迁
第16课:卷积神经网络的设计之道
第17课:从 RNN 到 LSTM 再到 Seq2Seq,循环神经网的变迁
第18课:循环神经网的设计之道
第19课:模型精简之道——量化、剪枝、教师网络
第20课:带你设计一个精简的深度神经网(目标检测任务)
第21课:课程总结

阅读全文: http://gitbook.cn/gitchat/column/5b30789393f14818da76bdbc

你可能感兴趣的:(深度学习工程应用快速入门)