numpy или трансляция тензорного потока - также создается новое измерение? - PullRequest
0 голосов
/ 02 августа 2020

Мой вопрос о трансляции между двумя tensorflow объектами разных размеров. Да, широковещательная передача обрабатывает операции между объектами неравных размеров и передает массив с меньшим shape по массиву с большим shape.

Мой вопрос:

Boolean_mask.shape: (19, 19, 5)

type для Boolean_mask:

Tensor("GreaterEqual_5:0", shape=(19, 19, 5), dtype=bool)

Примечание. Каждое расположение 19 на 19 содержит список из 5 booleans.

Values_tensor.shape: (19, 19, 5, 4)

type из Values_tensor:

Tensor("random_normal_19:0", shape=(19, 19, 5, 4), dtype=float32)

Я применяю Boolean_mask к Values_tensor

Операция:

import tensorflow as tf boxes = tf.boolean_mask(Values_tensor, Boolean_mask)

Результат этой операции (?, 4).

Я понимаю размеры этого результата.

У меня вопрос:

Почему здесь работает вещание? Поскольку формы несовместимы для передачи в эфир

Boolean_mask.shape: (19, 19, 5) Values_tensor.shape: (19, 19, 5, 4)

Я понимаю, что вещание могло бы работать в этом случае, если бы формы были:

Boolean_mask.shape: (19, 19, 5, 1) Values_tensor.shape: (19, 19, 5, 4)

Для форм (19, 19, 5) и (19, 19, 5, 4) кажется, сначала было создано новое измерение, а затем произошла трансляция?

...