Theano - Numpy 新手

车与我随 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]

广播(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])。

相关推荐