如何在TensorFlow中调整不规则张量中的元素大小

如何在TensorFlow中调整不规则张量中的元素大小,tensorflow,Tensorflow,我想调整参差不齐张量中的每个元素的大小。例如,如果我有一个不同大小图像的参差不齐张量,如何调整每个图像的大小,使其尺寸相同 比如说, digits = tf.ragged.constant([np.zeros((1,60,60,1)), np.zeros((1,46,75,1))]) resize_lambda = lambda x: tf.image.resize(x, (60,60)) res = tf.ragged.map_flat_values(resize_lambda, digits

我想调整参差不齐张量中的每个元素的大小。例如,如果我有一个不同大小图像的参差不齐张量,如何调整每个图像的大小,使其尺寸相同

比如说,

digits = tf.ragged.constant([np.zeros((1,60,60,1)), np.zeros((1,46,75,1))])
resize_lambda = lambda x: tf.image.resize(x, (60,60))
res = tf.ragged.map_flat_values(resize_lambda, digits)
我希望res是一个形状的张量(2,60,60,1)。我怎样才能做到这一点


为了澄清这一点,如果在自定义层中,我们希望将单个图像中的部分切片或裁剪成一批,以便在下一层中进行推断,那么这将非常有用。在我的例子中,我尝试结合两个模型(一个将图像分割为大小不同的多裁剪图像的模型和一个预测每个子图像的分类器)。我也在使用TF2.0,您应该能够做到以下几点

import tensorflow as tf
import numpy as np
digits = tf.ragged.constant([np.zeros((1,60,60,1)), np.zeros((1,46,75,1))])

res = tf.concat(
   [tf.image.resize(digits[i].to_tensor(), (60,60)) for i in tf.range(digits.nrows())], 
   axis=0)

如果你想把图像重塑成相同的形状,为什么要把它们放在一个粗糙的传感器里?碎裂传感器基本上用于保存具有不同形状的张量。我建议您使用tf.image.resize重塑图像,并使用法线张量而不是粗糙的传感器。@Thomas我希望我在最近的编辑中澄清了我的意图。本质上,参差不齐张量是预测感兴趣区域的分割模型的产物,每个区域都需要分类。因此,如果我可以调整每个元素的大小,那么我就可以向前传递到下一个模型,以便对区域集进行批量推断。。。我只是想结合两个经过训练的模型来简化生产代码。@leonard您使用的是TF2还是TF1?@thushv89我使用的是2。0@leonard我目前正试图解决一个类似的问题。我有一组坐标,我也需要裁剪出子图像,以便稍后通过单独的分类器运行。也许我们可以互相帮助,你能把我加入LinkedIn吗:托马斯·维文?