车与我随 2019-06-21
水平方向为矩阵的行,竖直方向为矩阵的列,每一行为一个样例(记录)。 因此输入[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]
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])。