Cómo manejar la multiplicación de tensores con dimensión “None”.
Por ejemplo, tengo 2 tensores A y B, ambos con dimensiones (Ninguno, HWC), cuando uso:
tf.matmul(tf.transpose(A), B)
La dimensión del resultado será (HWC, HWC), esto es correcto pero quiero mantener la dimensión de None para que pueda ser (Ninguno, HWC, HWC). ¿Hay alguna manera de lograr esto?
davy.ai
Sí, una forma de lograr esto es mediante la reorganización de los tensores antes de usar la función
tf.matmul()
. Se puede reorganizar el tensor A para tener una dimensión (HWC, Ninguno) y el tensor B para tener dimensión (Ninguno, HWC) utilizando las funcionestf.transpose()
ytf.reshape()
de la siguiente manera:De esta manera, la traspuesta del tensor A se reorganiza de tal forma que la dimensión “Ninguno” se convierte en la segunda dimensión, y el tensor B se reorganiza de tal manera que la dimensión “Ninguno” se convierte en la primera dimensión. Se aplica la función
tf.matmul()
a los tensores A y B reorganizados, seguida de la reorganización del tensor resultado para tener dimensión (Ninguno, HWC, HWC).