tensorflow变量分配广播

2024-04-23 11:25:22 发布

您现在位置:Python中文网/ 问答频道 /正文

tensorflow中有没有什么方法可以实现对矩阵的广播分配(tf.变量) 类似下面的代码。。。。在

a    = tf.Variable(np.zeros([10,10,10,10], np.int32))

# creating a mask and trying to assign the 2nd, 3rd dimension of a
mask = tf.ones([10,10])

# 1) which is work in this case, but only assign one block
op = a[0,:,:,0].assign(mask)

# 2) attempting to broadcasting while not work, size mismatch
op = a[0].assign(mask)

对我来说,当前的解决方案可能会迭代所有其他维度,但可能会遭遇嵌套循环,如1) 或者一定有更聪明的方法来做,谢谢!在


Tags: to方法代码creatingtftensorflownpzeros
1条回答
网友
1楼 · 发布于 2024-04-23 11:25:22

不是一个通用的解决方案(大量的硬编码张量形状),但希望这能为您的示例提供要点:

a = tf.Variable(np.zeros([10,10,10,10], np.int32))
mask = tf.ones([10,10],dtype=tf.int32)
mask_reshaped = tf.reshape(mask,[1,10,10,1]) # make the number of dims match
mask_broadcast = tf.tile(mask_reshaped, [10, 1, 1, 10]) # do the actual broadcast
op = a.assign(mask_broadcast)

相关问题 更多 >