Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation for The Actual Physical Setup? #4

Open
tjwangml opened this issue Mar 10, 2022 · 1 comment
Open

Documentation for The Actual Physical Setup? #4

tjwangml opened this issue Mar 10, 2022 · 1 comment

Comments

@tjwangml
Copy link

Thank you all for this ground breaking work!! I really want to make my DIY PNN, but I ran into some questions after reading the docs. I'm wondering if you could publish a bit more documentations about the actual building process of the PNN?

For instance, in Example 1, the first oscillator network is composed of 196 oscillators. If I construct an audio-frequency mechanical oscillator from a commercially available speaker, just like you what did in the paper, does it mean that I would need to buy 196 speakers? And how would you connect them to form a "layer", and how would you make this layer coupled with the next layer?

I'm been working with digital NN only and I have some experience making some hobbyist breadboard circuits, but never in a scale like this. It would be a dream come true if I can make my own PNN..

Any help / directions / references would be appreciated!

@ms3452
Copy link
Collaborator

ms3452 commented Mar 14, 2022

Hi and thank you for the interest!

More documentation about the building process of the PNNs is published in section 2 of the supplementary material. The mechanical oscillator PNN is described in section 2.C. The 196 refers to the number of time-domain inputs to the oscillator which are fed into a single commercially available speaker!

To create multi-layer PNNs, we reused each physical system by recording the analog output signal, processing it in the digital domain and reinjecting it into the same system. Eliminating the analog-to-digital conversion and directly coupling multiple physical systems is a promising direction to pursue--a discussion of the benefits can be found supplementary section 5, specifically subsection 5.D.1.

To get into the details of making a DIY PNN, it might also help you to take a look at the code to train each PNN. We published the code on Zenodo (https://doi.org/10.5281/zenodo.4719150). I think the notebooks most relevant to your question are analog_transistor_PNN/1 generate digital model training data and train physical neural network.ipynb and oscillating_plate_PNN/2 take data for differentiable digital model.ipynb.

Please let us know if you have further questions! We are happy to keep discussing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants