如何用另一个张量的值替换 Tensorflow 张量中的某些值?

Mas*_*nya 11 python tensorflow

我有一个大小为 (64, 2, 82, 1) 的 Tensorflow 张量 A,我想将其 (:, :, 80:82, :) 部分替换为张量 B 的相应部分(还有 (64, 2 , 82, 1) 大小)。

我该怎么做?

PS:准确地说,我的意思是在 numpy 中看起来像这样的操作:

A[:, :, 80:82, :] = B[:, :, 80:82, :]
Run Code Online (Sandbox Code Playgroud)

小智 7

以下代码可能会帮助您获得一些想法,

a = tf.constant([[11,0,13,14],
                 [21,22,23,0]])
condition = tf.equal(a, 0)
case_true = tf.reshape(tf.multiply(tf.ones([8], tf.int32), -9999), [2, 4])
case_false = a
a_m = tf.where(condition, case_true, case_false)
sess = tf.Session()
sess.run(a_m)
Run Code Online (Sandbox Code Playgroud)

在这里,我正在访问张量的单个元素!


gde*_*lab 0

tf.assign应该可以工作:(未经测试)

 tf.assign(A[:, :, 80:82, :], B[:, :, 80:82, :])
Run Code Online (Sandbox Code Playgroud)