机器学习中的矩阵公约
水平方向为矩阵的行,竖直方向为矩阵的列,每一行为一个样例(记录)。 因此输入[10, 5]表示:由10个样例(记录),每个样例具有5个维度(属性)组成的矩阵。如果[10,5]为一个神经网络的输入,那么权重矩阵的表示形式为[5, #hid]的矩阵。
考虑一下数组:
import numpy as np
np.asarray([[1., 2], [3, 4], [5, 6]])
np.asarray([[1., 2], [3, 4], [5, 6]]).shape
# 这是一个3*2的矩阵,即有3行2列
# 输出矩阵的第3行,第1列元素
np.asarray([[1., 2], [3, 4], [5, 6]])[2, 0]
广播(broadcasting)
Numpy 在对不同形状的数组进行数学运算时进行广播。通俗的意思就是:较小的数组或标量将会被广播(扩展)形成一个较大尺寸的数组,得到相匹配的形状。
例如:
import numpy as np
a = np.asarray([1.0, 2.0, 3.0])
b = 2.0
a * b # array([2., 4., 6.])
# 较小尺寸的b在a*b运算期间,被扩展为和a同样尺寸的数组array([2., 2., 2.])
# 这样极大地简化了b的书写,用标量2.0代替array([2.0, 2.0, 2.0])。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。