163 字
1 分钟
einops库
einops库基本使用
einops库主题有三个功能:rearrange,reduce和repeat
import torchfrom einops import rearrange,reduce,repeat
x = torch.randn(2,3,4,5)# 1 transposeout1 = x.transpose(1,2)out2 = rearrange(x,'b i h w ->b h i w')
# 2 reshapeout1 = x.reshape(-1,4,5)out2 = rearrange(x,'b i h w->(b i) h w')
out3 = rearrange(out2,'(b i) h w -> b i h w',b=2) # b=2flag = torch.allclose(out3,x)print(flag)
# 池化操作out1 = reduce(x,'b i h w -> b i h','mean') # avg poolout2 = reduce(x,'b i h w -> b i h 1','sum') # keep dimensionout3 = reduce(x,'b i h w-> b i','max')
# repate操作out1 = rearrange(x,'b i h w -> b i h w 1') #extend dim torch.unsqueeze# print(out1)out2 = repeat(out1,'b i h w 1 -> b i h w 2') # torch.tile
out3 = repeat(x,'b i h w -> b i (2 h) (2 w)')