YiyangILiu

YiyangILiu

V2EX 第 481760 号会员,加入于 2020-04-05 14:12:19 +08:00
YiyangILiu 最近回复了
2021-12-04 07:16:00 +08:00
回复了 lingdu666 创建的主题 程序员 mac 下有哪些效率工具推荐?
spacelauncher 谁用谁知道
2021-01-10 20:57:43 +08:00
回复了 YiyangILiu 创建的主题 问与答 找一起学的队友 The Complete React Native + Hooks Course
@georgetso udemy 的课有很多优惠券,可以很便宜
2021-01-10 19:31:33 +08:00
回复了 YiyangILiu 创建的主题 问与答 找一起学的队友 The Complete React Native + Hooks Course
@xiaxiaokang 加个微信呗,不一样的课也可以发进度 (if you wish
2021-01-10 19:22:22 +08:00
回复了 YiyangILiu 创建的主题 问与答 找一起学的队友 The Complete React Native + Hooks Course
@IGJacklove 嗯只有英文。朋友推荐的课
2021-01-10 15:03:10 +08:00
回复了 YiyangILiu 创建的主题 问与答 找一起学的队友 The Complete React Native + Hooks Course
@xiaxiaokang 谢谢帮我顶贴
2021-01-10 09:40:28 +08:00
回复了 asanelder 创建的主题 程序员 2021 了, 有没有好的 js 入门教程?
借楼找队友学 react 课

大家好,https://www.udemy.com/course/the-complete-react-native-and-redux-course
这门我正在找队友,并且希望一起发进度,可以拉个小群
2020-05-16 10:00:52 +08:00
回复了 lynn0977 创建的主题 Python 怎么阅读学习源代码
这个问题我也有感觉。我的想法是:

1. 一定要带着好奇心和问题阅读框架,看得少没关系,看懂是目的
2. 第一遍看最好手写一遍
3. 看懂一步再看下一步
4. 很多时候因为自己没参与封装的过程,经常出现看到一个点牵扯出三个新的不懂的点。或者更通俗地说,应该深度优先阅读还是广度优先阅读呢?我的方法是,只多看一层。
比如 pandas DataFrame 类中一个 rename 方法( https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.rename.html),函数本身有 8 个 arguments,在 example 中用到了两个 arguments,别的都是默认。那我不熟悉这个方法的话,看 doc 不仅看用到的 2 个 arguments,另外的没用到的 6 个也要学学怎么用。但是更深入一层呢?比如 level 这个参数,如果不懂 pandas 中的 MultiIndex 概念是不能理解它的。那要不要为了理解这个参数去再深入一层,学习 MultiIndex 的概念和用法呢?这时就可以考虑一下,我既然没用过 MulitiIndex,我不理解没关系。这个简单的例子就是深度一层的含义。

最近一直在阅读一个中小型框架的源码( github 总代码 6K 行左右),是深度学习方面的。这个框架的作用是用两行实现一个 2K 行左右的自然语言处理模型。
其中第一行是实现一个分词器,也就是 tokenizer,这个 tokenizer 在框架内的实现大约 300 行,其内又有方法若干。第二行是实现一个语言模型,模型在框架内的实现大约 900 行。其内又有方法若干。
最终,我使用好奇心和一点一点手写的办法,把这些给复现出来了。写完后发现自己很多一开始不理解的问题迎刃而解了。我对模型处理的流程比较理解了,让我复述一遍没问题。但是内部的数学运算还不能说特别理解,很多当时复现的时候就一知半解。

比如 keras.backend.reshape()( https://www.tensorflow.org/api_docs/python/tf/keras/backend/reshape), tensorflow.einsum()( https://www.tensorflow.org/api_docs/python/tf/einsum),这些函数说实话不难,看例子都能看懂,但是当实操的时候,特别是操作一些四维的 Tensor 的时候,我就犯迷糊了,每个维度都有自己的物理含义,比如 sequence_length 是句子长度, hidden_size 是特征维等等。只能说不断地看不断学。

我觉得之前一个答案说得好,看源代码就像迭代学习一样,每看一点就理解深一点,想看一遍就会基本不可能。其实世界上大多数事情都是这样,学习是个渐进的过程,特别是前沿的东西,都是在渐进中提高的。
就比如 github 某个成熟项目源代码量 10k,但是翻 commits 记录,addition 至少是 lines of code 的 3-4 倍。10k 量级源代码,addition 40k 左右是正常的。不可能有哪个框架从 0 写到完成没有修改的。有经验的框架作者如此,学习者就更不能好高骛远了。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5149 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 20ms · UTC 09:30 · PVG 17:30 · LAX 01:30 · JFK 04:30
Developed with CodeLauncher
♥ Do have faith in what you're doing.