Значение тензорной операции не обновляется после обновления / присвоения зависимой переменной в тензорном потоке 2.2, запущенной в нетерпеливом исполнении - PullRequest
0 голосов
/ 27 мая 2020

Я запускаю следующий код в тензорном потоке 2.2

a = tf.constant([2.0, 3.0, 4.0])
b = tf.Variable([4.0, 3.0, 5.0])
c = a * b

Значение b:

<tf.Variable 'Variable:0' shape=(3,) dtype=float32, numpy=array([4., 3., 5.], dtype=float32)>

Значение c:

<tf.Tensor: shape=(3,), dtype=float32, numpy=array([ 8.,  9., 20.], dtype=float32)>

если я обновляю переменную b сейчас

b.assign( [ 1.0, 1.0 , 1.0] )
# b is now <tf.Variable 'Variable:0' shape=(3,) dtype=float32, numpy=array([1., 1., 1.], dtype=float32)>

Но когда я печатаю значение c, которое, как я ожидаю, должно было измениться, поскольку b изменилось, но c не изменилось

# c is still <tf.Tensor: shape=(3,), dtype=float32, numpy=array([ 8.,  9., 20.], dtype=float32)>

Мой тест выполняется в активном режиме. tf.executing_eagerly () = Сейчас правда

В чем причина?

1 Ответ

0 голосов
/ 28 мая 2020

c было присвоено бывшим b, если вы хотите изменить c, необходимо повторно выполнить c = a * b

...