def __new__(cls, name=None):
        if name in cls.instances:
            return cls.instances[name]
        else:
            return Layer.__new__(cls, name=name)
Branch nodes need to have a unique name,
dataset/ETHPy150Open NervanaSystems/neon/neon/layers/layer.py/BranchNode.__new__