in shap_e/models/transmitter/bottleneck.py [0:0]
def latent_bottleneck_from_config(config: Dict[str, Any], device: torch.device, d_latent: int):
name = config.pop("name")
if name == "clamp_noise":
return ClampNoiseBottleneck(**config, device=device, d_latent=d_latent)
elif name == "identity":
return IdentityLatentBottleneck(**config, device=device, d_latent=d_latent)
elif name == "clamp_diffusion_noise":
return ClampDiffusionNoiseBottleneck(**config, device=device, d_latent=d_latent)
else:
raise ValueError(f"unknown latent bottleneck: {name}")