张量流中的双线性上采样?
Bilinear upsample in tensorflow?
我想在 TensorFlow 中做一个简单的双线性调整大小(不一定是整数因子)。例如,从 (32,3,64,64) 张量开始,我想要一个 (32,3,96,96) 张量,其中每个 64x64 已使用双线性插值重新缩放 1.5 倍。最好的方法是什么?
我希望它支持 > 1 的任意因子,而不仅仅是 1.5。
注意:每个 64x64 的操作与 skimage.transform.rescale (scale=1.5, order=1)
的操作相同。
tf.image.resize_images 应该做你需要的。它接受具有任意深度(通道数)的 3d(单个图像)和 4d(图像批次)张量。所以这应该很有用:
# it's height, width in TF - not width, height
new_height = int(round(old_height * scale))
new_width = int(round(old_width * scale))
resized = tf.image.resize_images(input_tensor, [new_height, new_width])
双线性插值是默认值,因此您无需指定。您也可以直接使用 resize_bilinear。
我建议不要使用任何tf.image.resize_*
函数作为 that will not be fixed。
一组新的、不同的图像重采样函数显然正在开发中。同时,您可以在网上找到一些示例,了解如何使用例如transposed convolutions。不幸的是,每通道上采样的效率要低得多,但正确比快速更好。
编辑
他们终于在 TF 2.0 中修复了这个错误:
image.resize
now considers proper pixel centers (...).
这个修复目前没有通过渐变,这是...一个有望得到修复的错误。
Keras 现在通过 tensorflow 后端支持 'nearest'
和 'bilinear'
插值。检查 documentation。但是默认大小值确实是 (2,2) 或 int 值,所以在那种情况下你的上采样至少会加倍。
此代码需要 Keras 2.2.3
或以上。如果您正在使用 tf.keras
,不幸的是,您不能单独安装 keras,它作为 tensorflow 安装的一部分捆绑在一起。因此,要么找到 tf
版本,要么安装每晚构建。
pip3 install --upgrade tf-nightly
我想在 TensorFlow 中做一个简单的双线性调整大小(不一定是整数因子)。例如,从 (32,3,64,64) 张量开始,我想要一个 (32,3,96,96) 张量,其中每个 64x64 已使用双线性插值重新缩放 1.5 倍。最好的方法是什么?
我希望它支持 > 1 的任意因子,而不仅仅是 1.5。
注意:每个 64x64 的操作与 skimage.transform.rescale (scale=1.5, order=1)
的操作相同。
tf.image.resize_images 应该做你需要的。它接受具有任意深度(通道数)的 3d(单个图像)和 4d(图像批次)张量。所以这应该很有用:
# it's height, width in TF - not width, height
new_height = int(round(old_height * scale))
new_width = int(round(old_width * scale))
resized = tf.image.resize_images(input_tensor, [new_height, new_width])
双线性插值是默认值,因此您无需指定。您也可以直接使用 resize_bilinear。
我建议不要使用任何tf.image.resize_*
函数作为
一组新的、不同的图像重采样函数显然正在开发中。同时,您可以在网上找到一些示例,了解如何使用例如transposed convolutions。不幸的是,每通道上采样的效率要低得多,但正确比快速更好。
编辑
他们终于在 TF 2.0 中修复了这个错误:
image.resize
now considers proper pixel centers (...).
这个修复目前没有通过渐变,这是...一个有望得到修复的错误。
Keras 现在通过 tensorflow 后端支持 'nearest'
和 'bilinear'
插值。检查 documentation。但是默认大小值确实是 (2,2) 或 int 值,所以在那种情况下你的上采样至少会加倍。
此代码需要 Keras 2.2.3
或以上。如果您正在使用 tf.keras
,不幸的是,您不能单独安装 keras,它作为 tensorflow 安装的一部分捆绑在一起。因此,要么找到 tf
版本,要么安装每晚构建。
pip3 install --upgrade tf-nightly