tf.concat
фактически возвращает каскадный тензор и не делает его на месте, так как тензор потока в основном работает над добавлением новых узлов в граф.Итак, этот новый тензор добавлен к графику.
Этот код работает:
import tensorflow as tf
def m1(t1):
t2 = tf.constant([[[7, 4], [8, 4]], [[2, 10], [15, 11]]])
return tf.concat([t1, t2], axis = -1)
def m2():
t1 = tf.constant([[[1, 2], [2, 3]], [[4, 4], [5, 3]]])
se = tf.Session()
print('Before: ', se.run(t1)) # Output = Before: [[[1, 2], [2, 3]], [[4, 4], [5, 3]]]
t1 = m1(t1)
print('After: ', se.run(t1)) #Actual Output = After : [[[1, 2], [2, 3]], [[4, 4], [5, 3]]] | Desired Output = After : [[[1, 2, 7, 4], [2, 3, 8, 4]], [[4, 4, 2, 10], [5, 3, 15, 11]]]
m2()
Он дает следующий вывод:
('Before: ', array([[[1, 2],
[2, 3]],
[[4, 4],
[5, 3]]], dtype=int32))
('After: ', array([[[ 1, 2, 7, 4],
[ 2, 3, 8, 4]],
[[ 4, 4, 2, 10],
[ 5, 3, 15, 11]]], dtype=int32))
См. Это tf.concat