gpt4 book ai didi

python - 在 tensorflow 中以网格(即环绕)平铺图像

转载 作者:行者123 更新时间:2023-12-01 13:35:40 24 4
gpt4 key购买 nike

我想要做的简短版本是采用 (h, w, num_images) 格式的一堆图像并将它们平铺在网格中以生成可以轻松绘制的单个图像,但我想将它们放在网格中,即环绕(我想在 tensorflow 中执行此操作,即图形输出准备绘制的网格图像)。

通过输入:

a.) 列数(即单行上的最大图像数)

或者

b.) 最大宽度(例如屏幕宽度)。它会自动计算上述内容

我有 numpy 代码可以做到这一点,但速度很慢,我认为在 GPU 上将其作为图形的一部分进行更有意义。

我的 tensorflow 图代码是这样的(t 是卷积层的输出,所以最后一个轴包含图像堆栈):

act = tf.squeeze(t) # batch size is 1, so remove it
act = tf.unstack(act, num=num_filters, axis=-1) # split last axis (filters) into list of (h, w)
act = tf.stack(act) # re-stack on first axis

这给了我 (num_filters, h, w),我将它输入到我编写的更通用的 numpy 代码中,该代码将它放在一个网格中(我的 numpy 代码很长,因为它更通用并且适用于可变大小的图像,所以我'不包括在下面)。

这可以直接在 tensorflow 中进行吗?

(注意,如果我要使用 tf.concat 而不是 tf.stack 我可以将它们并排平铺,但它们没有环绕)

最佳答案

TensorFlow 中添加了一个函数来完成此操作:tf.contrib.gan.eval.image_grid .它接受形状为 [batch, width, height, channels] 的输入张量作为参数。 ,以及图像网格的形状、每个图像的尺寸和图像 channel 数。它运作良好且易于使用。

关于python - 在 tensorflow 中以网格(即环绕)平铺图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43531495/

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