Вот MWE для проблемы, с которой я столкнулся:
import tensorflow as tf
with tf.GradientTape() as tape:
x = tf.Variable(0.0)
y = tf.Variable(x)
z = x
print(tape.gradient(y, x))
# None
print(tape.gradient(z, x))
# 1.0
Ну, очевидно, что это легко исправить в данной конкретной ситуации, но в фактическом случае использования, с которым я сталкиваюсь, необходимо делать с рекуррентными нейронными сетями, мне нужно использовать tf.Variable
для формирования тензоров из конкатенации других тензоров, например:
Dout = tf.Variable([seed]) # initialize
for i in range(n):
Dout = tf.concat([Dout,
G.forward_step(Dout[-1])],
axis = 0)
Ну, я новичок в реальном манипулировании тензорами в TF, и, возможно, есть правильный способ создания тензоров из конкатенации.
Помощь?