fastai 2020 lesson0 笔记


2020的lesson0是Jeremy的课前准备的一课,我将课程的字幕用谷歌翻译了一下,然后在听课程的过程中插入了课程上的PPT页面。下载地址:

fastai2020Lesson0中文笔记(字幕原文翻译).docx-电信文档类资源-CSDN下载

2020 lesson0 notes

1. 如何充分利用本课程?

  • 如何确保你完成本课程?如何确保学习本课程是富有成效的时间?
  • 我这样做的原因是因为:很多人在完成课程时对我说(不是直到课程结束),我才意识到我应该如何完成整个课程,现在我要回去重新做整个事情,所以我要告诉你我收到的信息:我听说的是人们发现的最有效的课程方法

现在很多人和成千上万的人都学习了 fastai面向程序员的实用深度学习课程,他们中的许多人继续:创建成功的初创公司,撰写具有高影响因子的研究论文,以在他们的公司中创建新产品,您知道这是一个非常成熟的课程但是也有很多人从未完成课程,所以如果你正在看这个,那是因为你已经决定要学习深度学习,所以我要谈谈它会为你带来什么,使这成为一次很棒的体验的人之一。

  • 所以这里是你现在应该承诺的主要事情,即正确完成课程,或者至少完成本书的一半
  • 很多人都说自己要做深度学习,但Jeremy看了YouTube的分析,很多人都没有看完整的视频,没有完成。
  • 如果你的意图是成为一个真正有效的深度学习从业者,你需要完成课程

2. 出色的校友们的建议

  • Christine McLeavey

        因此 christine mcclavey 是我们出色的校友之一 她现在在 openai 世界顶级研究组织之一 她建立了一个奇妙的系统,用于通过深度学习创作新音乐。

我告诉她:专注于让一个项目变得伟大并打磨它并完成它,她做到了!她说这是她的一个关键的见解!

  • Jeremy在fastbook上写道:

这对我们所有人来说都是一个教训!在深入学习的过程中,你会遇到很多障碍,既有技术上的,也有(更困难的)来自于你周围那些不相信你会成功的人。有一种方法肯定会失败,那就是停止尝试。我们已经看到了那些成为顶级AI实践者的每一个人唯一一致的共同特点——因为他们都很顽强

我看到成功的深度学习从业者之间的区别的第一件事——【坚韧】,坚韧是你现在可以选择的东西

  • 你不能选择的东西是:全球都在新冠大流行中,或者家人去世等这类事情。由天不由我
  • 但你能选择的事情是:在深度学习上保持【坚韧】
    • 坚韧——一部分是正确的理解自己
    • 遇到困难了,不能往前。但是后来还能回到正确的状态。
    • 所以坚韧的一部分不是忽略颠簸,而是继续追求……然后遇到颠簸,也许你知道的,我经常会遇到颠簸,这就像一年之久,但如果我决定在那年年底完成一些事情,我会回去完成它,嗯,有时我会在他们寄给我一年多后给他们发电子邮件说,好,我现在准备回复。他们忘记了他们甚至给我发了一封电子邮件。

  • 出色的校友的建议:Radek

2012年,Radic还不会编程。工作也无聊,开始学习DL。2018年赢了Kaggle比赛。他是这门课程的顶尖校友之一,他写了《meta learning》真本书。他的旅程非同寻常,没有学位也不会编程。

        但他非常顽强。每次失败时,他都会再试一次,最终他想通了找到一种方法来做到这一点,他这样做的方式非常强烈地基于 fast ai 的课程和学习理念,他现在是 kaggle 比赛的获胜者。他是唯一一个非旧金山的人,这是世界顶级医疗人工智能初创公司之一,现在他在一个新的非营利组织工作,这实际上是在尝试翻译动物语言。

        在人工智能社区中有很多榜样,所以这里有人既是榜样,又像try,fail, try, fail, try, fail,然后找到一些成功。

James Clear:“用你已经知道的知识。你说:需要学习更多,或者把所有事情安排妥当 这都是阻止你开始的障碍”

Radek表示万分赞同:“fast.ai带领我从100%的“学习”,转化为60%doing实操 + 40%的真正的学习。”

         Jeremy展示了一些他书中的东西。他书中的很多内容是他把我说的东西转化为他从中学到的东西,其中一些是他的想法,嗯,所以我们一次又一次地从不成功的深度学习学生那里听到的一件事就是:他们一直在准备preparing做深度学习,他们一直在准备preparing做项目。所以他们学习线性代数,他们学习微积分,他们学习,他们学习所有这些不同的事情。他们做一个慕课,然后是另一个慕课,然后他们读一本书,然后再读另一本书,在什么时候他们实际上会开始做一些事情?所以fastai的理念是你第一周开始做一些事情,所以第一周你需要实际训练一个模型,这并不是说你不会学习理论,你会学习理论!

        根据需要在把事情做好的情况下,所以如果你做对了,特别是如果你正确完成了课程的全部两个部分你将基本上从头开始实现所有 fastai 的库,你将了解batch normalization,您将对各种矩阵乘法方法,进行基准测试benchmark test,您将知道如何编写裸机 GPU 优化代码, 您将了解如何进行反向传播,以及从头开始的微积分, 您将完成所有这些工作,但一切都会过去就像你在解决特定问题,或理解下一块拼图的情况下一样,嗯,所以只是读书和看视频不会让你到达那里,会让你到达那里的事情是编写代码 做实验和训练模型

要了解bnGPU优化代码,反向传播等。要写代码、做实验、训练模型才行,光看书和看视频是不能的!

你们中的一些人可能不太擅长coding那是一个非常好的地方,但你们会发现它最具挑战性,因为擅长coding是让你快速通过的东西思考thinking不是能让你快速入门的东西!写代码才是!你会说:“可惜我不擅长编码!”但这实际上是一个机会,因为现在你有一个非常有趣的项目来学习编码,所以很多人都有通过学习这门课程成为优秀的程序员,因为当你学习这门课程时,你会学到很多计算机科学概念,比如面向对象的编程和函数式编程以及列表和列表推导式的映射以及 GPU 加速等等。所以问题是:如果你写代码不熟练,如果你遇到一个你不太熟悉的计算机科学概念或编程思想或一段语法,那是一个值得暂停片刻的地方并确保你知道您确实了解该代码的工作原理因为写代码是一种关键的基础技能

顺便说一下,然后是另一篇,所以 radek 谈到了这个四足表格将帮助您更有效地进行深度学习实验。

① 代码概念;② 编辑器;③ git&gh; ④ ssh/Linux

这些想法是:了解代码的基本思想 了解您的工具 编辑器 jupiter 笔记本 了解 git 之类的东西,例如如何保存你的工作和其他人的工作等等,了解 ssh 和 linux,比如如何访问服务器和操作它并用它做事。

 所以如果您从未使用过 git 或者您没有使用过 git,则没有什么可羞耻的,曾经使用过ssh 或者任何,它们只是工具,在旅程中的某个时刻,大多数人只是必须弄清楚所以这实际上是一个很好的时机这是一个很好的课程,用来使用帮助你到达那里,当然,主要是练习这些工具,是围绕编码和你的开发环境的基础。

  • 下一个重要建议:share your work

这是我们在课程中经常讨论的下一个重要建议,以及雷迪克在他的书中谈到的是,分享你的工作,交流你的工作,并写下你的工作,这是很多人感到非常不舒服的事情,就像发推文或博客一样

“我才刚刚开始,还是个新手呢!”这很好,那就没有人比你更适合写东西,写那些你六个月前想知道的那些东西,没人比你更适合写这些了

所以每个人都有话要说,关键是要写把它记下来因为这将有助于更好地嵌入你的理解

很多人发现分享他们的信息、工作一直是他们学习和建立个人品牌的关键部分,并最终让他们找到了一份工作。

3. How to do a fast.ai lesson 如何学习fastai的课程呢?

  • 看视频
  • 跑一跑notebook,并自己调整一些代码来实验
  • 重现结果(从一个空白的notebook开始复现)
  • 在不同的数据集上重复上述过程

这意味着运行笔记本,我们稍后会看到它。你应该尝试一下,所以如果你想知道为什么这样做,之前我们会尝试删除一行代码,后者尝试以不同的顺序进行代码你想知道如果我这样改动一行代码会发生什么呢?也许这对另一个图像又有什么不同。try it,你开始试验的越多,你给你的大脑喂食越多,就像你自己的深度学习发生在你的大脑,输入输出模式中,try something,发生一些事情。try something又发生一些事情,然后下一步是try to reproduce the notebook from scratch,从头重建notebook的结果。

从现在,你显然必须查一下东西,但这个想法是你能不能用一个全新的笔记本refresh notebook,你能不能回去重新创建一些模型,重新训练它们或重做一些数据处理管道,所以试着自己输入。你可以根据自己的喜好切换回答案,但你真的想开始实际上填写你自己的代码,写你自己的代码。

然后你真正的重点您真正想要的是使用您现在收集或下载的不同数据集重复repeat课程的某些部分,repeat some part of the lesson with your own dataset,整个过程通常需要人们多次完成课程,需要你把这个课程看好几遍。通常第一次看课程,人们可能只会观看每堂课并尝试运行它,过程大概是:看到最后一课,对正在发生的事情有一个大致的了解所以人们通常会把这个过程进行三遍然后再倒回来从头尝试走得更远再往右走,所以不要担心,如果你不能立即完成所有这些,请不要担心。当然,在第一课中,这将是具有挑战性的,尽可能往前推动并且随着你继续尝试推动,自己能做越来越多的事情,你甚至可以回到更早的笔记本,看看你是否能理解越来越多的内容

关于colab和linux服务器,在什么环境下跑fastai的notebook

  • colab是免费的,但是colab不持久。下次打开笔记本又得从头配置环境。
    • 但好处是简单方便,你不用配置环境。fastai网站上可以直接进入colab
  • linux服务器是在AWS ec2上租服务器,自己配环境然后使用
    • Jeremy说一开始你可以跳过不用这个, Jeremy会建议在某个时候你走这条路原因是在你的工作场所的现实生活中,或者如果你自己创业,或者无论你将要做什么,你都将使用 ssh linux 服务器进行交互。运行一个 GPU,你会想了解它是如何工作的,一旦你使用自己的 linux 服务器,你会突然了解所有这些提高生产力的技巧和工具,让你的生活更轻松,所以我将展示如何设置 aws ec2。
  • 然后fastai上有一个空白的notebook
  • 所以我们有这个干净版本的原因,是帮助你完成这些阶段,我们的建议是一旦你完成了课程并且你已经运行了笔记本并且你感觉还可以,我想我明白,然后你打开这个干净的版本,在你运行每个单元格之前试着想想为什么这个单元格在这里它是做什么的,它会做什么输出看起来像什么,所以一旦你删除所有这些上下文这是一个很好的测试可以让你的大脑思考实际发生的事情所以这是一种更积极的阅读和回忆方法所以一旦你这样做了,你就完成了在底部进行检查。保留的一件事是问卷,因此在每一章的末尾都是问卷,因此此时您应该尽可能多地不看答案,并尝试回答每个问题。之前笔记本里有答案,好吧,所以如果你不记得,你可以随时查找。如果你不记得,这对你来说就像我跳过那一点太快了就像发生了什么我不记得,然后试着提醒自己然后回去,在那里完成问题,所以有很多片段可以帮助从被动学习,如只是在看视频,只是读一本书,来解决这个问题,把它变成一个参与式练习,你是其中的一部分,所以我们希望你尽快创造属于你的东西所以这是最简单的方法

    • 被动回忆之前的内容,积极阅读。看自己跳的是否优点快。

  • Repeat with different dataset。基本上是在第一课结束时,你就可以启动和运行尝试用你自己的数据集来做它

关于fastai forum论坛

嗯,如果你去forums.fast.ai 这是你想要深入熟悉的东西,因为这里将全是像你一样的其他想学习深度学习的人,你可以看到有很多事情一直在发生,所以你可以看到这里是第一部分的课程主题你可以看到那里有 1400 个主题,每个主题都会有很多很多回复,所以如果你搜索它,你会在其中找到一些叫做在这里分享你的工作的东西,它有 2000 条回复,你可以看到许多其他人在第一周或两周后所做的事情的链接和图片课程,所以希望这可以给你一些灵感,好吧,嗯,如果你能回复并添加你知道的图片或链接到你构建的东西,你会看到你知道每个人都对彼此非常积极,那就太好了。一般的论坛,特别是在这个主题中,没有人会去哦,我的天哪,我几年前就可以做到了,嗯,人们会为你感到兴奋,因为你现在加入了建立他们第一个深度学习的人的行列模型,我会为你感到激动的。

Radek的建议:How not to do fast.ai 学习fastai的错误姿势

  • 不要被数学淹没了。光学理论,没有实践,什么都没吸收到。
  • 要coding,experiment,practice
  • 没有真正的训练模型,就不能真正的体验将学习的理论应用到真实的问题上的快了,就缺少了重要的反馈循环。

所以正如我所说的 radek 这又来自他的书 嗯在他的书中表达了一种学习fastai的错误方式,我现在可能听说过数百次,我不知道为什么这如此普遍,但很多人做 radek 所做的,基本上是正确地学习所有这些数学知识,所以他从微积分开始,然后一旦他在微积分中达到某个点,他发现他必须开始理解实分析,然后当他开始理解实分析时,他发现他必须学习你知道的集合论,如果你想学习所有数学,这些需要一段时间,那么你的想法是对的。深度学习从业者你必须完成线性代数的研究生水平课程。这是事实:你在基本上所有深度学习中所做的实际上的线性代数都是矩阵乘法,如果你忘记了乘法是什么,然后把它们加起来好吧,所以你需要能够做的是把事情相乘,然后把它们加起来,所以如果你能做到,你就很好了。

如果你不会完成A 你从来没有开始它,因为你一直在准备B 你一直在想我想知道这里到底发生了什么,然后你一直深入到底部,直到你发现自己处于集合论的中间。别担心!随着时间的推移,你会越来越深入,但如果你在学习数学理论,而不是在coding,你不是在实验,你不是在练习,你实际上没有在构建深度学习模型,如果你正在看这门课程,你的目标不是构建深度学习模型,你走错了路。如果你的目标是构建深度学习模型,那么不要像 radix 在这里所说的那样学数学。

 

  • 要早早的开始训练有用的模型,开始这个​​反馈循环,弄清楚你知道什么?你能做什么?你可以做什么?什么work?什么不能work?所以如果你要去,你需要做的关键事情之一是:完成所有课程

  •  成为比您现在更好的开发人员 现在无论您身在何处,都比您现在的coder水平更好。所以要做到这一点,您需要阅读代码和编写代码 。fastAI 源代码的设计非常出色可读,所以你可以阅读那些代码。你显然可以阅读笔记本中的代码,嗯,但是你想花尽可能多的时间阅读和编写代码,特别是阅读和编写深度学习的代码。

 你怎么能知道深度学习的世界又发生了什么呢?怎么跟紧潮流?

  • 答案是:关注Jeremy的Twitter! 机器学习在twitter上也有一个完整的世界

你怎么知道深度学习的世界发生了什么呢?以及你怎么让自己在做深度学习的人的地图上呢?嗯 最好的答案可能是 twitter。 

如果你想让我突出你的作品,你知道在这里,我可以看到它,我可以转发它,所以是的,如果您刚开始使用 twitter 并且不知道该关注谁,那么 twitter 是一个非常好的去处。

转到我的 twitter看看,转到我的喜欢并浏览我的喜欢,并找到你认为你实际上也喜欢那条推文的推文,然后关注发布这条推文的人,很快你就会有一百人关注你,然后他们会转发一些东西,然后你会找到你喜欢的其他人,在这之前,希望你每天都会阅读很多有趣的深度学习内容,一开始你会理解其中的百分之一,这很好,但你就在那里,它会淹没你,你会开始找到那些写你觉得引人入胜和有趣的东西的人,你也会找到那些实际上你不知道的人,并确保你取消关注他们,这样你的提要就不会有你不关心的东西

其他的重要建议:写博客

        嗯,然后在推特之外你想要开始写博。写博客不是写你晚餐吃的东西,而是写一些你六个月前会觉得有趣的东西,所以你比六个月前知道的更多,所以写下来,我们有一个叫做快速页面使创建博客变得非常容易,因此您没有理由不知道至少在那里创建一个博客,快速页面的好处之一是您甚至可以将 jupyter 笔记本变成博客文章,它非常适合技术类博客,所以这就是一个快速页面博客的样子,其他好东西都在 github 中,就像你在写博客一样,你正在学习更多关于 git 的东西,它都是用 Markdown 编写的,无论如何你肯定需要知道写博客,无论如何你将学习很多你需要学习的工具

  •  aman arora将Jeremy在昆士兰人工智能中心启动时做的视频给写成了一个博客。
  • 以一个有趣的想法是,这个博客来自 aman arora 的例子,他是一名澳大利亚 fastai 校友,他现在正在研究权重和偏差,这是世界上顶尖的人工智能初创公司之一,这是一篇非常有趣的博客文章
  • 他写下了我说的内容,这是一个例子如果有你喜欢的视频,但是没有人把它变成帖子,你可以做的事情是第一个把视频内容写下来的人,因为所有这些都有好处,当有人给我发一些东西说我写了你给的这个演讲时,我非常感谢那个人,因为现在我的演讲现在可以在第二个媒体上让更多人看到。很多人更喜欢阅读而不是听演讲,嗯,你知道那个人花时间做这件事,他们花时间让我检查他们的工作。如果每个人最终都从中获益,所以我在 arora关于我的演讲的帖子中看到了人们的注意,我的演讲没有所以例如我在我的 Linkedin 上注意到 data61 的 CEO,这是 uh the csiro 所以澳大利亚的顶级数据科学机构强调了它,并说看看 aurora 的这篇文章吧,就像这样,这就像你可以做的事情的一个例子,就像尝试提供帮助一样,同时你也在学习所以有一个有趣的博客文章的例子。很少有人在写,所以这里有大量的机会让你练习你的写作。

 机器学习和其他类型的coding有什么区别?

 机器学习和其他类型的coding之间有什么区别呢? Radek在他的书的这一章中说,嗯,关于机器学习的关键是我们可以泛化,我们可以用一组数据训练一个模型并将其应用于不同的数据集,并且仍然获得良好的结果,以及与此相关的一切。我们正在做本课程是关于创建泛化良好的模型,我们将学习如何衡量模型泛化的程度,因此回答这些问题,我们能否相信我们的模型在我们提供的新数据上是正确的?无论是在 Kaggle 比赛中还是在工作中创建的小原型或生产模型,这对于您构建的每个模型都绝对至关重要,这里最重要的事情之一是:创建一个好的验证集,这是一些东西你会在课程的第一课中听到。但我真的想在这里强调它,就像雷迪克在他的书中一样,嗯,这是一个非常重要的想法你需要一种好方法来衡量你的模型是否有什么好处所以你需要一个数据集来真正代表你的模型在现实生活中可能需要处理的数据类型

嗯,Jeremy的搭档雷切尔在 fast.ai 博客上写了这篇非常棒的博客文章,关于这个,你真的很有趣。这是有点来自我在旧金山大学上的一堂课,然后瑞秋把它变成了一篇博文,瑞秋的博文最终比我的视频更有影响力,你知道吗?实际上是我正在谈论的一个很好的例子,她更进一步。

很难编写正确的机器学习代码

下一个关键的事情 radek 提到,我完全同意。很难编写正确的机器学习代码,我总是假设每一行机器学习代码我写的是错误的,但我通常是正确的,因为有很多方法会出错。

  • 所以从基本的baseline开始,简单的baseline就像创建最简单的模型一样,你知道解决问题很简单,以至于你不能经常犯错误
  • 一些非常简单的事情,然后你可以从那里逐渐建立,所以另一个非常常见的项目初学者会犯的错误,记住我们希望你们都做项目。

另一个常见的初学者会犯的错误——老是想着用最新的paper trick

另一个非常常见的错误是:项目组中的某个人会说,哦我读到了关于这些集群的这个新的贝叶斯学习的东西,这个你知道advance transform pipeline,我们可以把所有这些放在一起,它会比以前更好,然后他们花了几个月的时间创造这个复杂的东西,最后它现在不起作用了。为什么它不能很好地工作?我不知道!它是如此之大,如此复杂。也许这是一个愚蠢的想法?也许其中一块有错误?也许那一块在那里?不应该在那里?但它应该在其他地方?我不知道?这就是不知道如何创建成功的机器学习项目的人们的状况!

  • 我们都是建立一个baseline,然后慢慢的优化。而不是一次性搞个特别复杂的,自己都搞不懂。
  •  成功的机器学习项目在我的经验中总是从头到尾建立然后逐渐地让它逐渐变得更好所以请记住这一点,当您构建第一个模型时,您可能会觉得有点傻,该模型仅对数据求平均值,但这就是专业人士的做法!这就是每个真正让它发挥作用的人经常这样做的方式!竟让有硅谷初创公司的热门来找我,并让我看看他们惊人的新初创公司,我会问他们:你认为这个可以将你认识的病人和健康人分开,或者你采取了这两组的平均值,并将其与你的模型进行比较,例如,他们会说哦不,然后他们尝试了,他们发现他们的模型更糟。是的,所以你需要知道你的模型是否真的在做一些对项目有用的事情

如何赢得Kaggle比赛?

你可能想做的一件事是参加 kaggle 比赛,嗯,这可能是你认为自己做的最后一件事是成为一名Kaggle竞争者,但实际上这是您可以做的最好的项目之一,因为要参加 kaggle 比赛,即使是最后一位,您也必须完成下载数据集的整个过程,将其格式化为正确的方法,为模型保存做好准备,输出将其转换为正确的提交格式,并将其正确提交回 kaggle,因此将一个模型实际放到 kaggle 排行榜上真的会测试你的端到端的理解,一旦你完成了,你可以开始迭代。你可以开始让它稍微好一点,再稍微好一点。所以虽然在很多方面kaggle并不代表现实世界,你不必担心部署,您不必特别担心诸如此类的推理速度之类的东西,并且在很多方面它比您预期的更接近现实世界,然后它确实迫使您完成整个过程,并思考关于entry,关于仔细规划你的项目。 所以 嗯 以你现在想赢得的目标参加比赛,显然你不会赢,但重点是这是一场比赛,所以你将尽力做到最好

所以为了尽最大努力参加一场比赛,早早参加比赛,给自己足够的时间,嗯,每一天都试着做一个小小的改进,嗯,然后你会发现这一点,但你知道如果你坚持下去阅读关于 kaggle 的论坛和每天继续尝试多一点,在三个月结束时你会惊讶于你学到了多少东西一开始你认为这是我不知道发生了什么,然后你会突然意识到,我真的知道发生了什么,你可能会发现你进入了前 50 名,这可能比你预期的要好所以这是在本课程中的某个时候强烈推荐的,有一个真正的尝试一场 Kaggle 比赛。

最后,你可能想找工作,如何找工作呢?

 所以在这一切结束时,你现在可能正在寻找一份工作,已经在做一些深度学习。你可能只需要开始制作一些东西的原型,并尝试在内部建立某种概念证明,或者你可能会尝试走出去,获得一个新的角色作为研究人员或数据科学家或其他任何东西,大多数人将无法依靠他们的斯坦福博士来实现他们的目标大多数人将不得不依赖他们的投资组合portfolio,因此您的投资组合将成为一路上您构建的所有东西,这是你在深度学习社区的足迹,这个足迹将包括想法,比如你对 fast ai 论坛的贡献、你的推文和你在 discord 上的东西,我会说几乎每个 fast ai 校友我注意到他们是深思熟虑和高效的社区成员他们现在都有非常非常好的工作,嗯,所以就像人们真的真正注意到了这个足迹,所以你的博客、文章、你的 github 项目、这些就是这些正在发生的事情给你一份工作。

 嗯,他们可能不会给你在一家大公司找到一份工作,一家大公司,在你知道的那种标准建立起来的工作是正确的,这将通过人力资源部,人力资源部就像他们一样得到它。不会理解您的任何 github 代码或了解您的社区影响,他们只会正确地了解凭据,并且您会遇到拥有斯坦福大学博士学位的人,他们会得到正确的工作,但初创公司尤其如此,来自其他具有类似背景的初创公司,其中有很多人会欣赏你,或者还没有真正建立 AI 团队的公司,或者你自己建立的初创公司当然会欣赏你,嗯,所以这是更多你有一个投资组合,你可以证明你真的建立了更好的东西,所以早点开始完成第一门课程的另一个原因是:它会让你做第二门课程,如果你'重新做这个现场。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值