Вы можете использовать numpy.concatenate
с другой осью.Вот пример с уменьшенной версией, использующей 4 изображения с формой [2 2]
, которые производят [4 4]
результирующее изображение:
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
c = np.array([[9, 10], [11, 12]])
d = np.array([[13, 14], [15, 16]])
ab = np.concatenate((a, b), axis=1)
cd = np.concatenate((c, d), axis=1)
abcd = np.concatenate((ab, cd), axis=0)
>>> print(abcd)
array([[ 1, 2, 5, 6],
[ 3, 4, 7, 8],
[ 9, 10, 13, 14],
[11, 12, 15, 16]])
>>> print(abcd.shape)
(4, 4)
Просто адаптируйте этот код к вашему, вместо использования a, b, c, d
объединения изображенийпо первому измерению вашего тензора, с чем-то похожим на np.concatenate((t[0], t[1]), axis=1)
, являющимся t
вашим тензором формы [4 8 8]
.
В противном случае, как показывают другие ответы, вы можете дважды использовать функцию numpy.hstack
дважды,но я думаю, что это поведение, которое не так легко читаемо, даже при меньшем количестве кода.