【发布时间】:2019-01-25 05:21:02
【问题描述】:
我有两个数组 W 和 x。 W 的形状为 (16, 10),x 的形状为 (10000, 16)。我需要在W 和x 的转置之间取点积。问题是x 和W 的形状非常不同,所以我在尝试执行此操作时不断出错。当然我可以使用for 循环来做到这一点,但我想在不使用任何for 循环的情况下做到这一点。
for i in range(x.shape[0])
s = (np.dot(W.transpose(), x[i])) + b
上面的代码生成了一个数组s,它由10 个条目组成。我试图让s 成为 10,000 行,每行有 10 个条目(不使用for 循环)。
【问题讨论】:
-
因为 W.shape 是 (16,10) 而 x.shape 是 (10000,16)。点积可以在 np.dot(x , W) 之间完成。输出形状将是 (10000,10)
-
所以你是说我不需要对 W 使用转置?
-
是的。根据您的输出要求,看起来这就是您正在查看的操作。
标签: python arrays numpy for-loop