import codecs, time, json
import numpy as np
import torch

a = torch.rand((1, 2, 3, 4))
b = torch.ones(1, 2, 3, 4) * 2
# tensor([[[[2., 2., 2., 2.],
# 		  [2., 2., 2., 2.],
# 		  [2., 2., 2., 2.]],
#
# 		 [[2., 2., 2., 2.],
# 		  [2., 2., 2., 2.],
# 		  [2., 2., 2., 2.]]]])
#
c = torch.cat((a, b), dim=2)
# tensor([[[[0., 0., 0., 0.],
# 		  [0., 0., 0., 0.],
# 		  [0., 0., 0., 0.],
# 		  [2., 2., 2., 2.],
# 		  [2., 2., 2., 2.],
# 		  [2., 2., 2., 2.]],
#
# 		 [[0., 0., 0., 0.],
# 		  [0., 0., 0., 0.],
# 		  [0., 0., 0., 0.],
# 		  [2., 2., 2., 2.],
# 		  [2., 2., 2., 2.],
# 		  [2., 2., 2., 2.]]]])
#
#
d = c.clone()
# print(d.size()) # torch.Size([1, 2, 6, 4])
d = d.view(d.size(0), 4, d.size(2)//2, d.size(3))
d.permute(0, 2, 1, 3).contiguous().view_as(c)
print(d)
print(d.shape)
print('------')
print(a)
print(b)
print('------')