1.看一下下面的这两个随机数组“a”和“b”:
a = np.random.randn(4, 3) # a.shape = (4, 3)
b = np.random.randn(3, 2) # b.shape = (3, 2)
c = a * b
1
2
3
请问数组“c”的维度是多少?
答:运算符 “*” 说明了按元素乘法来相乘,但是元素乘法需要两个矩阵之间的维数相同,所以这将报错,无法计算。
2.看一下下面的代码:
a = np.random.randn(3, 3)
b = np.random.randn(3, 1)
c = a * b
1
2
3
请问c的维度会是多少?
答:这将会使用广播机制,b会被复制三次,就会变成(3,3),再使用元素乘法。所以: c.shape = (3, 3).
3.回想一下,np.dot(a,b)在a和b上执行矩阵乘法,而`a * b’执行元素方式的乘法。
看一下下面的这两个随机数组“a”和“b”:
a = np.random.randn(12288, 150) # a.shape = (12288, 150)
b = np.random.randn(150, 45) # b.shape = (150, 45)
c = np.dot(a, b)
1
2
3
请问c的维度是多少?
答: c.shape = (12288, 45), 这是一个简单的矩阵乘法例子。