5 矩阵、向量、向量化
·
回顾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,消耗一次,所以快。因为梯度下降需要不断调整参数值,循环很慢,所以尽量用向量化取代循环代码
更多推荐




所有评论(0)