Blog posts

2020

PyTorch 的 Dataloader (Multiple Process)

7 minute read

Published:

上一篇讲 Dataloader 的文章中分析了单进程的 Dataloader 工作的情况,本文分析多进程情况下 Dataloader 的工作流程。

NLG (Caption) 评价指标总结

2 minute read

Published:

PyTorch 中处理序列的输入输出时,由于一个 batch 中的序列长度不一样,需要对输入输出进行“打包”(pack)和“解包”(unpack)的操作,主要用到 pack_padded_sequencepad_packed_sequence 这两个函数。

PyTorch 的 Dataloader (Single Process)

5 minute read

Published:

Dataloader 是 PyTorch 提供的根据需求载入数据的接口,但许多地方看文档会觉得不清不楚,阅读 PyTorch 源码,有助于我们了解框架背后具体做了什么,更灵活地写符合需求的代码。

2019

PyTorch 中的 RNN: pack 与解 pack

1 minute read

Published:

PyTorch 中处理序列的输入输出时,由于一个 batch 中的序列长度不一样,需要对输入输出进行“打包”(pack)和“解包”(unpack)的操作,主要用到 pack_padded_sequencepad_packed_sequence 这两个函数。

Maximum Subarray Series

7 minute read

Published:

Maximum Subarray 是非常经典的算法题,最开始学数据结构的时候就讲了从 \(O(N^3)\) 到 \(O(N^2)\) 再到 \(O(N)\) 的优化过程,在此基础上还有其它变种题目。实际上,这一系列题都可以用动态规划来解决。

EM Algorithm

3 minute read

Published:

老实说,EM算法这玩意曾经一直是我心里一个坑,学了至少三遍 (周志华西瓜书第一遍,李航《统计学习方法》第二遍,过了一年又回顾了一遍) 才有了比较清楚的思路。跟着各种教程一行行看很容易陷入推导长长的公式的泥沼,到头来知道中间有用Jensen不等式放缩,知道要优化一个下界函数,但具体谈起细节来又不是那么清楚。这里我试图把我学习三次之后的理解分享一下,提供我自己理解EM算法的视角。

Dices Sum

2 minute read

Published:

有意思的动态规划题