提问者:小点点

Tensorflow数据集,只调整列车数据的大小


我想获得列车组的输入图像未标记。

当加载数据集时,我首先得到一个奇怪的字典,但我把它去掉了。

我只是不能管理的是将所有图像的大小调整为(200,200,3)。

到目前为止,我的尝试是:

@tf.function
def pre(img):
    return img["image"]

training_daten = tfds.as_numpy(tfds.load(name="cars196", batch_size = 8, split="train").map(pre))

# I got the pictures now, but they're all of a different shape

def pre2(i):
    img_pil = Image.fromarray(i)
    i = img_pil.thumbnail((200,200), Image.ANTIALIAS)
    return np.array(i)

training_daten = [list(map(pre2,i)) for i in training_daten]

我已经花了5个小时了。。。 非常感谢!

编辑:我的第一批代码的输出是:[array(None,DTYPE=object),array(None,DTYPE=object),array(None,DTYPE=object),array(None,DTYPE=object),array(None,DTYPE=object),array(None,DTYPE=object)]

所以,有些东西不起作用了。


共1个答案

匿名用户

可以使用.Thumbnail方法代替.Resize方法,因为Thumbnail方法不会将它们全部成形为一个形状,而是计算最佳大小,所给大小用作大小的上限。

i = img_pil.resize((200,200), Image.ANTIALIAS)

请看下面的答案以了解它们之间的差异。