Keras:逐元素运算:点或内积,等于numpy.matmul

时间:2018-08-04 23:09:26

标签: python numpy keras

我正在尝试在3+轴上进行元素逐点运算

np.random.seed(10)
a = np.random.randint(0, 5, (2,1,3))  # should also work with
b = np.random.randint(0, 5, (2,3,1))  # higher dim, eg. (2,2,1,3) * (2,2,3,1)
print(a)
print(b)
print()
res = np.dot(a,b)
print(res.shape)
res

我明白了

[[[1 4 0]]

 [[1 3 4]]]
[[[1]
  [0]
  [1]]

 [[2]
  [0]
  [1]]]

(2, 1, 2, 1)
array([[[[1],
         [2]]],


       [[[5],
         [6]]]])

但我想要

[[[1]],
 [[6]]]

我尝试过

np.multiply(a,b)

给出的(2,3,3)非常接近,因此我还尝试了(2,3,1)的{​​{1}},认为它可能会产生(2,1,3),但不会改变形状。我希望(2,1,1)或只是(2,1,1)

此外,我仅限于使用Keras后端函数,因为这将直接进入我的损失函数。 Keras具有numpy函数的(2,).dot()等效项。

我该怎么做?


更新:.prod()做我想要做的事情:

np.matmul()

但是我仍然不知道如何使用keras后端点或乘法来做到这一点。

0 个答案:

没有答案