Керас и Ось Numpy Sum - PullRequest
       9

Керас и Ось Numpy Sum

0 голосов
/ 04 июня 2018

У меня есть вопрос по оси = 0 для numpy и Keras

Во-первых, когда я запускаю следующий код для преобразования массива (2,3,4) в массив (3,4) с помощью суммыс осью = 0 он работает.

v = np.arange(24).reshape(2,3,4)
print("v.shape: ", v.shape,"\n","v:\n", v)
s0 = v.sum(axis=0)
print("s0.shape :", s0.shape,"\n", "s0\n",s0)

v.shape:  (2, 3, 4) 
v:
[[[ 0  1  2  3]
[ 4  5  6  7]
[ 8  9 10 11]]

[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
s0.shape : (3, 4) 
s0
[[12 14 16 18]
[20 22 24 26]
[28 30 32 34]]

Но, когда я запускаю его с помощью Keras, он жалуется следующим образом:

input = Input((3,4,))
sum0 = Lambda(lambda x : K.sum(x, axis=0)) (input)
model0 = Model(input, sum0)

v = np.reshape(np.arange(24), (2,3,4))
print("v.shape :", v.shape, "\n","v:\n", v)
s0 = model0.predict(v)
print("s0.shape :", s0.shape,"\n","s0:\n", s0)

v.shape : (2, 3, 4) 
v:
[[[ 0  1  2  3]
[ 4  5  6  7]
[ 8  9 10 11]]

 [[12 13 14 15]
 [16 17 18 19]
 [20 21 22 23]]]

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-113-9272b6099fc4> in <module>()
      6 v = np.reshape(np.arange(24), (2,3,4))
      7 print("v.shape :", v.shape, "\n","v:\n", v)
----> 8 s0 = model0.predict(v)
      9 print("s0.shape :", s0.shape,"\n","s0:\n", s0)
...
ValueError: could not broadcast input array from shape (3,4) into shape (2,4)

Мне интересно, почему K.sum (X,ось = 0) жалуется.Это работает, когда K.sum (x, axis = 1) и K.sum (x, axis = 2), например, numpy sum.

...