сумма между нулями в 3D тензоре tf.

#python-3.x #tensorflow #keras

Вопрос:

У меня есть tf.Набор данных тензора, который имеет форму (10, 100, 3), что-то вроде приведенного ниже.

 [[[ 0.    0.    0.  ],
  [-0.07 -0.07  0.02],
  [-0.04 -0.05 -0.00],
  [ 0.    0.    0.  ],
  ...
  [ 0.    0.    0.  ],
  [ 0.01  0.02  0.12],
  [-0.04 -0.00  0.01],
  [-0.00 -0.06  0.04],
  [ 0.    0.    0.  ],
  [ 0.    0.    0.  ]], #(1, 100, 3)

 [[continue .  ...  ],
  [  ...  ...  ...  ],
  [  ...  ...  ...  ]], #(1, 100, 3)

 [[continue 8 more  ],
  [  ...  ...  ...  ],
  [  ...  ...  ...  ]]] #(8, 100, 3)
 

В конце концов, форма набора данных будет похожа на (10, ##, 3) неровный тензор.
Как я могу суммировать все ненулевые векторы между нулевыми векторами без использования циклов?

Комментарии:

1. Поскольку вы уже используете numpy, я бы рекомендовал numpy.where и numpy.sum . np.where обычно ожидает множество шуток. Однако, когда вы даете список целых чисел, число 0 интерпретируется как a False , а все остальное-как True