在python中使用numpy进行按位运算的时候,有一个小技巧可以帮助减少代码量——那就是broadcasting,广播机制。
简单来说,broadcasting可以这样理解:如果你有一个mn的矩阵,让它加减乘除一个1n的矩阵,它会被复制m次,成为一个mn的矩阵,然后再逐元素地进行加减乘除操作。同样地对m1的矩阵成立
举个栗子
A = numpy.array([1,2,3])
result = A + 100
print(result)
会得到结果
[101 102 103]
不需要你去写A + [100, 100, 100]了
同样地
A = np.array([[1,2,3],[4,5,6]])
result = A + [100, 200, 300]
print(result)
会得到
[[101 202 303]
[104 205 306]]
broadcasting机制在深度学习函数构建中应用得很广,比如说我们在逻辑回归函数中,激活函数z = wT * X + b, b是一个数而前面的wT * X是一个1*n的矩阵,由于python这种机制,不需要我们为b构建向量,这就减轻了代码量。
网友评论