#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))