繁体   English   中英

使用np.tile在一批图像中平铺每个图像的10个图像

[英]Using np.tile to tile 10 images of each image in a batch of images

取数组: arr = [0, 1, 2]

np.tile(arr,[10,1])
array([[0, 1, 2],
       [0, 1, 2],
       [0, 1, 2],
       [0, 1, 2],
       [0, 1, 2],
       [0, 1, 2],
       [0, 1, 2],
       [0, 1, 2],
       [0, 1, 2],
       [0, 1, 2]])
>>> np.tile(arr,[10,2])
array([[0, 1, 2, 0, 1, 2],
       [0, 1, 2, 0, 1, 2],
       [0, 1, 2, 0, 1, 2],
       [0, 1, 2, 0, 1, 2],
       [0, 1, 2, 0, 1, 2],
       [0, 1, 2, 0, 1, 2],
       [0, 1, 2, 0, 1, 2],
       [0, 1, 2, 0, 1, 2],
       [0, 1, 2, 0, 1, 2],
       [0, 1, 2, 0, 1, 2]])

与此类似,我想使用图块功能为大小为10x227x227x3的图像批处理创建10个副本(该批处理已经具有10张图像)。 所以我应该得到100x227x227x3

但是,当我这样做时,M = 10):

    images = np.tile(img_batch, [M, 1])

我得到的是10x227x2270x3,图像= np.tile(img_batch,[M])也不起作用,并带来了大小为10x227x227x30的值

我无法理解如何获得所需的瓷砖。 欢迎任何建议。

您的img_batch具有4维。 制作代表大小为4的代表

np.tile(img_batch, [M, 1, 1, 1])

否则,根据文档 ,在第一种情况下,它等效于np.tile(img_batch, [1, 1, M, 1]

如果A.ndim> d,则通过在其前面加1来将代表提升为A.ndim。 因此,对于形状为(2、3、4、5)的A,将(2、2)的重复视为(1、1、2、2)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM