DL-Art-School/codes/scripts/stylegan2/dnnlib/tflib/network.py
2020-12-17 14:18:46 -07:00

18 lines
701 B
Python

# Pretends to be the stylegan2 Network class for intercepting pickle load requests.
# Horrible hack. Please don't judge me.
# Globals for storing these networks because I have no idea how pickle is doing this internally.
generator, discriminator, gen_ema = {}, {}, {}
class Network:
def __setstate__(self, state: dict) -> None:
global generator, discriminator, gen_ema
name = state['name']
if name in ['G_synthesis', 'G_mapping', 'G', 'G_main']:
if name != 'G' and name not in generator.keys():
generator[name] = state
else:
gen_ema[name] = state
elif name in ['D']:
discriminator[name] = state