Skip to content

Device control modules for an optical matrix-vector multiplier with a low photon count.

License

Notifications You must be signed in to change notification settings

mcmahon-lab/ONN-device-control

Repository files navigation

Device Control Modules for Optical Neural Networks (ONNs)

This repository contains the device control modules for the optical matrix-vector multiplier demonstrated in the following paper:

Tianyu Wang, Shi-Yuan Ma, Logan G. Wright, Tatsuhiro Onodera, Brian Richard and Peter L. McMahon. "An optical neural network using less than 1 photon per multiplication" Nature communications 13, 123 (2022) https://doi.org/10.1038/s41467-021-27774-8

The codes for training the neural network model executed in the experiment are available here.

An Android application to control the OLED display of Google Pixel phone.

Adopted from https://github.com/chris-blay/android-open-accessory-bridge.

The neural network models with trained parameters.

The training code is available here.

The Python script to control the spatial light modulator (SLM, P1920-500-1100-HDMI, Meadowlark Optics).

Adopted from https://github.com/wavefrontshaping/slmPy.

The Jupyter notebooks that control the experimental setup to collect data.

The Python script to control the oscilloscope that reads data from the multi-pixel photon counter (MPPC, C13366 series GA type, Hamamatsu Photonics).

Utility functions used in the experiments.

License

The code in this repository is released under the following license:

Creative Commons Attribution 4.0 International

A copy of this license is given in this repository as license.txt.

About

Device control modules for an optical matrix-vector multiplier with a low photon count.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published