ARTS - week 5
补上周打卡,封面图为埃因霍温。
Algorithm
题目链接
106. 从中序与后序遍历序列构造二叉树 - 力扣(LeetCode) (leetcode-cn.com)
根据一棵树的中序遍历与后序遍历构造二叉树。
注意:你可以假设树中没有重复的元素
题目分析
和上周先序遍历+中序遍历构造二叉树的原理相同https://xie.infoq.cn/article/057f782b481e37426872b03aa,
对于每个子树,如果是先序遍历,则第一个点是 root 节点,如果是后序遍历,则最后一个点是 root 节点。通过在中序遍历数组中找到 root 节点的位置,可以确定当前节点左右子树的起始位置,从而可以根据 root 位于最先/后的规则构建两个子树,递归下去,整个树就构建出来了。
代码实现
Review
本周 review 的文章是关于最近很火的 transformer 的, http://jalammar.github.io/illustrated-transformer/, 作者是 Jay Alammar, 他的博客提供了关于机器学习概念很好的可视化。有写论文里面描述不清楚的概念,作者都能通过图示加上自己的解释,使之变得清晰。这篇文章针对的是“Attention is all you need”论文进行介绍。
Attention 是用于 NLP 任务的一种方式,后来也被用于 CV 中。
模型结构
从上图可以看出,整个结构是 encoder 和 docoder 的堆叠, 关于 encoder 和 decoder 的差别,可以参见下图。主要是多了 encoder-decoder attention 部分,该部分
本文根据原文作者介绍,画了一个关于该文章最核心机制 self-attention 的流程图,可供参考
因为该文章篇幅较长,关于 encoder-decoder 部分,将在下周进行介绍并且绘图
Tips
本周介绍一个 jupyter notebook 远程登陆的方法,这样可以在本地浏览器查看远程模型的训练过程,具体分三步
Step 1: 生成配置文件
该命令会将配置文件保存于一个路径下,默认路径为 ~/.juputer/jupyter_notebook_config.py
Step 2: 生成密码,通过以下命令生成密码,远程登陆的时候需要输入密码才能进行操作
Step 3: 修改配置文件
修改 step 1 生成的配置文件, ~/.juputer/jupyter_notebook_config.py, 主要有三个地方,这三行通过搜索都能找到,不需要额外加几行内容。
此时,在对应环境下启动 jupyter notebook, 在本地电脑打开 ip:8888, 输入 step 2 配置的密码,即可进行远程操作。
Share
本周分享的观点是:以我自己亲身体验,技术领域如果作为 leader,发言不得要领确实很损失威信,尤其是团队比较小的时候。在需要指导的时候,给出的是笼统的指南,会让下属觉得很迷糊。十人以下开发团队,最好能够知道每个人做什么,业务目标是什么,技术目标是什么,技术难点是什么,这样发言才不至于给人的感觉很空,损失自己的威望。中国有句古话,识时务者为俊杰,就是能够判断局势,并能够做实是。
版权声明: 本文为 InfoQ 作者【steve_lee】的原创文章。
原文链接:【http://xie.infoq.cn/article/01dad5e404dfd7d74b683d9b8】。文章转载请联系作者。
评论