Javen Chen's Blog

Tech and Life~

昨夜北京大雪,清早伫窗前远眺,久违的清晰的雪白一片。

好久没有写点东西了,近日偶然翻看以前写的文章,没有像预想中那样觉得曾经写的文字很幼稚,反而是从中发现了久违的感动,甚至还有些启发。于是心头涌上了一个想法:再来写作吧

我之前的一波写作狂热期是高三、大一的时候,经常在QQ空间发一些自己思考的文章。那时写作对我是一种思考的方式。我常常写之前根本不知道要写什么,随着意识流开始写,开始思考。这种文字的一个缺点是目的性比较弱,你不知道它最初想表达的是什么,而且私货很多;优点是真实,思考的意识流大体都能在文字行进中捕捉到,而且写的时候的心流体验很强,越写会觉得头脑越清晰。

到大三开始准备考研、后面读研、工作,自己一直在忙碌的节奏,把大部分的精力投给立身之本的工作上,剩余的时间则是奖励式的自我放逐。生活的大部分快乐来自于工作上的正反馈,看的数也大多是技术类或者工具类的书。刚开始工作那段时间,内心处于缺乏安全感的状态,期待自己快点变成技术大牛。身边都是优秀的同学,时常会担心自己不能胜任某项工作,患得患失。现在回头想想,那应该是“工具人”的常态。

期初我的应对之法是学习心理学知识,比如阅读一些如何处理焦虑情绪的小册子。但总是有种没解决根本痛点的感觉,对症而不对根。不过生活也可以这样继续。

Read more »

心经 - 般若波罗蜜多心经

玄奘译本原文

观自在菩萨,行深般若波罗蜜多时,照见五蕴皆空,度一切苦厄。

舍利子,色不异空,空不异色;色即是空,空即是色。

受、想、行、识,亦复如是。

舍利子,是诸法空相,不生不灭,不垢不净,不增不减。

是故空中无色,无受、想、行、识;
无眼、耳、鼻、舌、身、意;
无色、声、香、味、触、法;
无眼界,乃至无意识界;
无无明,亦无无明尽;
乃至无老死,亦无老死尽。

无苦、集、灭、道,无智亦无得。

以无所得故,菩提萨埵,依般若波罗蜜多故,心无挂碍。

无挂碍故,无有恐怖,远离颠倒梦想,究竟涅槃。

三世诸佛,依般若波罗蜜多故,得阿耨多罗三藐三菩提。

故知般若波罗蜜多,是大神咒,是大明咒,是无上咒,是无等等咒,能除一切苦,真实不虚。

故说般若波罗蜜多咒,即说咒曰:“揭谛、揭谛,波罗揭谛,波罗僧揭谛,菩提萨婆诃。”

Read more »

数组 Array

分类 leetcode 提示
哈希表 1. 两数之和
双指针 15. 三数之和 先排序
16. 最接近的三数之和 先排序
18. 四数之和
27. 移除元素 类似partition的交换
26. 删除排序数组中的重复项 不用交换,直接将需要的拷贝
283. 移动零 类似partition的交换
搜索 74. 搜索二维矩阵 从右上角开始开始缩小领域
240. 搜索二维矩阵 II 从左下角开始缩小领域
动态规划 53. 最大子序和
152. 乘积最大子序列
其他 238. 除自身以外数组的乘积 乘积 = 当前数左边的乘积 * 当前数右边的乘积

字符串 String

常用操作:

  • ord(c):返回字符c对应的对于8位的ASCII数值。
  • chr(d):返回ASCII数值对应的字符。
Read more »

什么是metaclass?

metaclass一般翻译成“元类”,但也有人认为应该更关注元类“超越变形”的能力,应该翻译成超越类之类的。但是个人觉得“元类”比较顺口,其“本元”的含义也是实打实存在的,故本文用元类作为metaclass的中文翻译。

metaclass(元类)可以理解成是类的抽象、本元。类元编程即使用自定义metaclass获取极强灵活性的一种编程方式。

不过,在多处都有提到的需要注意的是:如果不是开发框架,不要使用元类,除非只是为了寻找乐趣:)

什么是本元?

Read more »

动机

最近的一些基于python的框架型的工作,有很多涉及到动态用户代码加载的功能。因此,对python的导入(import)做一个梳理总结。

基础概念

  • 模块(module):一般是指python源代码文件,即.py文件。还有可能是:.pyo.pyc.pyd.so文件。
  • 包(package):包是含有module的文件夹,为了避免模块名冲突而引入的。当一个文件夹下有__init__.py时,代表这个文件夹是一个package。package也可以看做是特殊的module,它的替身就是对应的__init.py__文件。
  • 命名空间(namespace)
    • local namespace:每个函数function特有,用于保存函数的变量。可用内置函数locals()查看,该函数不可写。
    • enclosing function namespace:闭包命名空间:闭包函数 的名称空间(Python 3 引入)。
    • global namespace:每个模块module特有,用于保存模块的变量。可用内置函数globals()查看,该函数可写。
    • builtin namespace:内建命名空间:Python 解释器启动时自动载入__built__模块后所形成的名称空间;如 str/list/dict等内置对象的名称就出于这里。

相关的内置属性:

Read more »

简介

Setuptools是基于distutils增强的工具,旨在让用户更简单地构建(build)和分发(distribute)python的package。

主要功能:

  • 在构建的时候,自动使用EasyInstall tool来下载、安装、更新其他依赖。
  • 创建Python Eggs,一种可移动的分发格式。
  • 无需MANIFEST.in文件
Read more »

简介

ConvLab是微软和清华开源的一个多领域端到端对话系统平台。旨在为对话系统的研究人员提供一个可以快速启动的实验平台。为此该平台提供了两个标注好的数据集、一些算法的实现(包括pipeline和end2end)、相关的预训练模型和其他可复用的组件。另外,ConvLab也是DSTC8 track1的官方平台。

整体结构

image.png

Read more »

资料

综述类

科普类

Read more »

简介

在一个稍大一点的python项目中,我们很有可能会用到注册器(register)。这个注册器不是用户账号注册的模块,而是项目中注册模块的一个模块。举个例子,一个深度学习项目可能支持多种模型;具体使用哪种模型可能是用户在配置文件中指定的。最简单的实现方式,就是维护一个模型名称->模型类的字典。但每当你增加一个模型时,这个字典就需要手动维护,比较繁琐。本文介绍一种注册器的模块,你需要维护的是需要注册的模块的代码路径(相对简介些)。

这个模块在我们的开源项目Delta中也有使用。

点这里看完整源代码

要注册的模块

Read more »
0%