手把手教你用Kornia给PyTorch模型做‘数据增强流水线’,告别Torchvision的单一操作
2026/4/28 16:43:25
代码复用是软件开发中的一个重要目标,而库就是实现这一目标的经典方式。库将常用的编程例程集中到一个位置,例如系统 C 库包含了数百个常用的例程,像printf()输出函数和getchar()输入函数。除了代码复用和方便程序员之外,库还提供了大量实用代码,如网络编程、图形处理、数据操作等功能,以及最重要的系统调用。
在深入了解库的使用之前,需要了解两个竞争的 C 库:libc5 和 libc6(也称为 glibc2)。Linux 世界正在从特定于 Linux 的旧版 libc5 转向更通用、更快、更符合标准且更具扩展性的 libc6。
libc5 与 Linux 并行发展,随着 Linux 的成熟,原始的 GNU C 库被修改以适应内核的变化。这使得 C 库与 Linux 紧密集成,但也给使用 GNU C 库的其他操作系统带来了维护困难。此外,libc5 严重依赖 Linux 的内核头文件,导致了一系列不明智的依赖关系,减缓了内核开发速度,还可能引入内核与 C 库之间的兼容性问题。
1997 年,libc6/glibc2 的首次发布带来了重大改变。它消除了几乎所有对 Linux 内核头文件的依赖,并进行了以下改进:
- 新库具有线程安全性。
- 增加了一个易于扩展的名称数据库处理方案。
- 修正了数学库,并在许多情况下提高了速度。
- 更加符合