【问题标题】:Using np.tile to tile 10 images of each image in a batch of images使用 np.tile 平铺一批图像中每个图像的 10 个图像
【发布时间】:2018-10-19 15:44:19
【问题描述】:

取数组: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]])

与此类似,我想使用 tile 功能为大小为 10x227x227x3 的图像批次创建 10 个副本(该批次已经有 10 个图像))对于每个图像我想创建一个平铺。所以我应该得到 100x227x227x3

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

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

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

我不知道如何获得所需的瓷砖。欢迎任何建议。

【问题讨论】:

    标签: python numpy tile


    【解决方案1】:

    您的img_batch 有 4 个维度。制作大小为 4 的 reps

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

    否则,根据docs

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

    【讨论】:

      猜你喜欢
      • 2014-02-25
      • 1970-01-01
      • 2018-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      • 1970-01-01
      相关资源
      最近更新 更多