对于 value-wise assignment,请在此处查看答案:Adjust Single Value within Tensor -- TensorFlow
一种可能更符合您正在寻找的方法可能是:
- 创建 ssim_map 张量
- 创建 ssim_map 的框架,即完成 ssim_map 到 L1_map 所需的部分(作为张量)
- 使用
tf.concat
操作将各个部分组合在一起并获得最终张量
例如,我没有检查它是否有效,但是这样的想法应该可以完成工作:
upper_band1 = L1_map[:, :5, 5:-5, 5:-5, :]
lower_band1 = L1_map[:, -5:, 5:-5, 5:-5, :]
upper_band2 = L1_map[:, :, :5, 5:-5, :]
lower_band2 = L1_map[:, :, -5:, 5:-5, :]
upper_band3 = L1_map[:, :, :, :5, :]
lower_band3 = L1_map[:, :, :, -5:, :]
intermediate_1 = tf.concat([upper_band1, ssmi_map, lower_band1], axis=1)
intermediate_2 = tf.concat([upper_band2, intermediate1, lower_band2], axis=2)
final = tf.concat([upper_band3, intermediate3, lower_band3], axis=3)