Compute with Light: Architectures, Technologies and Training Models for Neuromorphic Photonic Circuits