Skip to content

Implementing a multilayer perceptron in analog hardware.

Notifications You must be signed in to change notification settings

NolanTrem/AnalogML

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AnalogML

A project looking to implement a fully connected feed-forward artificial neural network completely in analog hardware. Part of Columbia ELENE3390, Electrical Engineering Senior Capstone Projects

Best pre-finetuning model -- Train Loss: 0.7688, Val Loss: 0.2113, Val Accuracy: 100.00% Best finetuning model -- Train Loss: 0.4129, Val Loss: 0.1293, Val Accuracy: 100.00%

Modeling the Network in the Digital Domain

A 10x10 matrix created by converting a bitmap of the letter A to a binary matrix:

[[0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0]
 [0 0 1 1 1 1 0 0 0 0]
 [0 0 0 1 1 1 0 0 0 0]
 [0 0 0 1 0 1 0 0 0 0]
 [0 0 1 1 1 1 1 0 0 0]
 [0 0 1 1 0 1 1 0 0 0]
 [0 0 1 1 0 1 1 1 0 0]
 [0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0]]

And scaled to a 20x20 matrix:

[[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]
 [0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0]
 [0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0]
 [0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0]
 [0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0]
 [0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0]
 [0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0]
 [0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]

10x10 Matrix, 100 Epochs, Batch Size 64

Hidden Layers Training Loss Validation Loss Validation Accuracy
[2] 3.1931 3.3016 0.00%
[2,2] 3.2458 3.2458 0.00%
[4] 3.0239 2.8984 50.00%
[4,4] 3.1435 3.1451 0.00%
[8] 2.9434 2.8809 33.33%
[8,8] 3.1306 2.9969 33.33%
[16] 2.4503 2.3143 66.67%
[16,16] 2.5845 2.495 66.67%
[32] 2.0512 1.8625 100.00%
[32,32] 1.6095 1.5628 66.67%
[128,64] 0.1866 0.1601 100.00%

Loss for n=[32] Accuracy for n=[32]

About

Implementing a multilayer perceptron in analog hardware.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published