gpt4 book ai didi

python - 在 tensorflow 中扩展维度并复制数据

转载 作者:行者123 更新时间:2023-12-01 09:20:46 29 4
gpt4 key购买 nike

我有一个大小为 BxHxWx3 的张量 input 和另一个大小为 Bx3 的张量 params。这里的 B 是批量大小。我想将 params 转换为大小为 BxHxWx3 的张量?这样我就可以将两个张量相乘。关于我应该如何解决这个问题有什么建议吗? (在较高层面上,我想要做的是将一组图像中的每个像素乘以为每个 channel 定义的值)

最佳答案

<强>1。回答你的第一个问题

您可以使用tf.expand_dimstf.tile的组合:

input_shape = tf.shape(input)
mod_params = params.expand_dims(1) # shape is [Bx1x3]
mod_params = mod_params.expand_dims(2) # shape is [Bx1x1x3]
mod_params = tf.tile( \
mod_params, \
[1, input_shape[1], input_shape[2], 1] \
) # shape is [BxHxWx3]

<强>2。为了实现您的最终结果,...

...你可以执行

ret = tf.multiply(input, mod_params)

...或者,您也可以使用tensorflow的广播功能(借助tf.transpose)

ret = tf.multiply(
tf.transpose(input, perm=[2,1,0,3]), \
params \
) # shape: [WxHxBx3]
ret = tf.transpose(ret, perm=[2,1,0,3]) # shape: [BxHxWx3]

关于python - 在 tensorflow 中扩展维度并复制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50808134/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com