Bidirectional adversarial autoencoders for high precision metasurface design | Synapse