in BigGAN_PyTorch/BigGAN.py [0:0]
def G_arch(ch=64, attention="64", ksize="333333", dilation="111111"):
arch = {}
arch[512] = {
"in_channels": [ch * item for item in [16, 16, 8, 8, 4, 2, 1]],
"out_channels": [ch * item for item in [16, 8, 8, 4, 2, 1, 1]],
"upsample": [True] * 7,
"resolution": [8, 16, 32, 64, 128, 256, 512],
"attention": {
2 ** i: (2 ** i in [int(item) for item in attention.split("_")])
for i in range(3, 10)
},
}
arch[256] = {
"in_channels": [ch * item for item in [16, 16, 8, 8, 4, 2]],
"out_channels": [ch * item for item in [16, 8, 8, 4, 2, 1]],
"upsample": [True] * 6,
"resolution": [8, 16, 32, 64, 128, 256],
"attention": {
2 ** i: (2 ** i in [int(item) for item in attention.split("_")])
for i in range(3, 9)
},
}
arch[128] = {
"in_channels": [ch * item for item in [16, 16, 8, 4, 2]],
"out_channels": [ch * item for item in [16, 8, 4, 2, 1]],
"upsample": [True] * 5,
"resolution": [8, 16, 32, 64, 128],
"attention": {
2 ** i: (2 ** i in [int(item) for item in attention.split("_")])
for i in range(3, 8)
},
}
arch[64] = {
"in_channels": [ch * item for item in [16, 16, 8, 4]],
"out_channels": [ch * item for item in [16, 8, 4, 2]],
"upsample": [True] * 4,
"resolution": [8, 16, 32, 64],
"attention": {
2 ** i: (2 ** i in [int(item) for item in attention.split("_")])
for i in range(3, 7)
},
}
arch[32] = {
"in_channels": [ch * item for item in [4, 4, 4]],
"out_channels": [ch * item for item in [4, 4, 4]],
"upsample": [True] * 3,
"resolution": [8, 16, 32],
"attention": {
2 ** i: (2 ** i in [int(item) for item in attention.split("_")])
for i in range(3, 6)
},
}
return arch