¿Cómo agrego solo ciertas columnas a un tensor en tensorflow?
Considere el siguiente código:
import tensorflow como tf
test = tf.constant ([[[100., 2., -30.], [-4,5,6]], [[4., 5., 6.], [-7,8,9]]]) # matriz
print (test)
test1 = tf.constant ([[[100.]],[[ 8.]]])
print (test1)
Cuando se agrega test1 a las dos primeras columnas de prueba, obtendríamos la siguiente salida:
print (test [:,:, 0:2] + test1)
No quisiera agregar la variable test1 a la última columna de la variable test, pero al mismo tiempo me gustaría incluir la última columna de la variable test en la salida sin cambios:
[[[200. 102., -30.]
[96. 105., 6.]]
[[12. 13., 6]
[1. 16., 9]]]
¿Cómo podría codificar esto rápidamente?
davy.ai
Para lograr esto, puedes usar la función
tf.concat
para concatenar la porción de prueba que deseas agregar con la variable test1 a lo largo de la segunda dimensión (que representa las columnas), mientras concatenas la porción de prueba que no deseas cambiar con un tensor de ceros a lo largo de la segunda dimensión. Aquí hay un ejemplo de cómo se vería el código:La función
tf.zeros_like
crea un tensor con la misma forma que la porción de la variable test que no se modificó con todos los elementos establecidos en cero. La funcióntf.concat
se utiliza nuevamente para concatenar este tensor con la porción no modificada de la variable test a lo largo de la segunda dimensión. El tensor resultante tiene la misma forma que el original, pero con la modificación que describiste.