To implement the [NN-Inference](https://github.com/MarbleHE/SoK/wiki/NN-Inference) application, the following needs to be done: - [x] Train Plaintext version of LeNet-5 for MNIST using approximated activation functions - [ ] Train Plaintext version of SqueezeNet for CIFAR-10 using approximated activation functions - [x] Add plotting code for application - [x] Implement networks in SEALion - [x] Implement networks in nGraph-HE (Depends on nGraph-HE build issues being solved, see #4) - [ ] Implement networks "manually optimized" in SEAL-CKKS-SIMD (recycle code from [MSR Private AI Bootcamp Project](https://github.com/privateai-group1/SEAL/blob/PrivateAI2019/native/bootcamp/matrix_vector_crypto.h)) - [ ] Implement networks naively in SEAL-CKKS - [ ] Consider how to modify network for integer-only (SEAL-BFV/SEAL-BFV-SIMD, ALCHEMY, Ramparts) - [ ] Implement networks naively in SEAL-BFV - [ ] Implement networks "manually optimized" in SEAL-BFV-SIMD - [ ] Implement networks in ALCHEMY - [ ] Implement networks in Ramparts - [ ] Consider how to modify/quantize network for binary-only (Cingulata, TFHE) - [ ] Implement networks in Cingulata - [ ] Implement networks in TFHE
To implement the NN-Inference application, the following needs to be done: