0%

我们总是说要写模块化的代码。但是到底什么是模块化的代码?怎样写模块化的代码?这两个问题不解决,模块化就不接地气、无法落地。

这篇谈谈我对代码模块化的一些思考。

阅读全文 »

手残党设计的 LOGO。XD

CTeXUG 用到的的字体是「Quicksand」,OVERFLOW 用到的的字体是「Coda」。

阅读全文 »

日常使用 Linux 的用户,想必对 ln 命令不会陌生。使用该命令,可以在 Linux 系统上创建针对文件或目录的符号链接,实现一个文件(目录)两个名字的功能。

Windows 上也有一个类似功能的命令,它是 mklink。不过它的行为和 ln 不太一样。此外,Windows 上还有「快捷方式」这种东西,也能实现一个文件(目录)两个名字的功能。但它和 mklink 建立的符号链接不一样,它是 Windows 上特有的一种文件格式,专门用来指向其它文件(目录)。

此篇讲讲 Windows 上的 mklink 命令。

阅读全文 »

接触 TeX 稍久的用户,应该多少都接触过 \kern\hskip 两个命令。那么不知你是否会好奇,TeX 是如何获取它们的参数的呢?要知道,像 I\kern37ptlike\hskip100ptcake 这种看上去奇奇怪怪的写法,能正常工作,但 \hskip 2pt minuscule chances of error 这种看起来正常的写法却会报错。

此篇介绍一下 TeX 中作为参数的 dimen 和 skip。

阅读全文 »

最近在阅读 Airbnb 的论文 Applying Deep Learning to Airbnb Search。阅读的过程中,我发现作者在谈及特征归一化的必要性时,有如下表述:

Feeding values that are outside the usual range of features can cause large gradients to back propagate. This can permanently shut of activation functions like ReLU due to vanishing gradients.

翻译成中文:

神经网络接受异于常值范围的输入时,在反向传播过程中会产生大的梯度。这种大的梯度,会因梯度消失而永久关闭诸如 ReLU 的激活函数。

我感到有些疑惑。ReLU 正是为了解决梯度消失问题而设计的。为什么这里会提到「因梯度消失而永久关闭诸如 ReLU 的激活函数」呢?

此篇来讨论这个问题。

阅读全文 »