前面基本上把卷积这一算法的原理和公式介绍完了,如果还有不懂的,可以多翻几遍前面的章节内容,深入理解一下。
本节加一个实战,大家可以手动来实现一个卷积算法,本文中以 python 代码为例,C++ 的代码可以查看本节后面的链接。
说到卷积实现,其实就是自己手写一个卷积算子。很多做人工智能的公司都会招算子开发工程师,其中手写一些算子的实现属于基础能力,而且是入门门槛。
相对应的,进阶能力是可以在很多硬件平台上使用不同的指令集来完成一个算子的实现,常见的如GPU上实现,并且对手写的算法进行优化。
因为我们大家都有笔记本,并且也都有 Intel 的 CPU 可以用,因此我们在 intel 的 CPU 的来实现这个卷积算法,就像我们平常写python和C++一样,此时的指令集为最常见的 x86 架构指令集。
需要说明的是,在小册后面的实战部分以及性能调优部分,我们也会基于大众电脑中的x86 CPU指令集来进行,并且会使用 avx2 的向量指令集做优化。
但是,不论是在哪个平台上,用哪种指令集完成代码编写,思路都是类似的,只不过你可能用的是GPU的指令,而我用的是CPU的指令。
卷积的python实现
要实现算法,第一步先看看图,照着图来实