Вычислить среднее значение тензора Tensorflow, сохраняющего свою форму

#python #numpy #tensorflow

#python #numpy #tensorflow

Вопрос:

Я использую Python 3.7.7 и Tensorflow 2.1.0.

У меня есть этот тензор:

 tf.Tensor([...], shape=(5, 512), dtype=float32)
  

И я хочу вычислить его среднее значение для каждого из его элементов, получив тензор с формой (1, 512) , но я не знаю как. Я пытался tf.math.reduce_mean , но он возвращает число.

Это то, что я пробовал:

 support_set_embeddings = encoder(X_train) # tf.Tensor([...], shape=(5, 512), dtype=float32)
class_prototype = tf.math.reduce_mean(support_set_embeddings, axis=1) # tf.Tensor([...], shape=(5,), dtype=float32)
  

Если я изменю ось в reduce_mean , я получу тензор с формой (512,) :

 support_set_embeddings = encoder(X_train) # tf.Tensor([...], shape=(5, 512), dtype=float32)
class_prototype = tf.math.reduce_mean(support_set_embeddings, axis=0) # tf.Tensor([...], shape=(512,), dtype=float32)
  

Как я могу вычислить среднее значение каждого элемента тензора, как я объяснил выше?

Я ищу тензор с формой (1,512) .

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

1. Вы пробовали изменять размеры вашего тензора в форме (512,)? Это не то, что вам нужно?

2. Выполнение tf.expand_dims(class_prototype,axis=0) дает вам тензор формы (1,512)

Ответ №1:

Просто измените форму.. tf.reshape(tf.reduce_mean(your_tensor, axis=0), (1,512))