回顾1  图片输入时有RGB三个矩阵,然后转为一个特征向量,输入给神经网络。

什么是矩阵?

矩阵是多行多列元素组成的一个集合。一个m*n的矩阵就有m行n列个元素。下图为一个2*3的矩阵

很简单,两行,三列,第一行有1,2,3,第一列有1,4

什么是向量?

如果一个矩阵只有一列,那么就是一个列向量;如果只有一行,就是行向量

某种角度说,矩阵是由多个向量组成的

矩阵相乘

假如有两个矩阵如下

他们的乘积C的第m行n列元素=矩阵A的第m行的元素与矩阵B的第n列的元素的乘积

看图

即C的1行1列=A的1行*B的1列,然后加起来

向量化

假设用python计算下边这个求和公式

这个公式=A1*B1+A2*B2+A3*B3

如果我们用非向量化的方式实现,代码如下,循环*然后+

而向量化方式如下

dot执行了向量乘法,它等价上面的循环

(可是可是,这个不是两个行向量吗?这怎么乘?dot方法计算点积,算的时候自动转置了)

向量化可节约百倍时间。因为每次循环调用时会先将代码转换成c语言,如果循环次数太多,这些转换消耗的总和很大,而向量化是把一堆计算一次性转换成c,消耗一次,所以快。因为梯度下降需要不断调整参数值,循环很慢,所以尽量用向量化取代循环代码

Logo

加入社区!打开量化的大门,首批课程上线啦!

更多推荐