such as at line 697 from HE.CNNinfer/CNNinference/src/Methods.cpp
CNNinference is a project for implementing our CNN inference on encrypted MNIST images (Volley Revolver: A Novel Matrix-Encoding Method for Privacy-Preserving Neural Networks (Inference) )
On a Ubuntu cloud, our implementation requires the following libraries in order:
g++
:
# apt install g++
make
:
# apt install make
m4
: #
# apt install m4
GMP
(ver. 6.1.2):
# cd gmp-x.x.x
# ./configure --enable-cxx
# make
# make install
# ldconfig
NTL
(ver. 11.3.0):
# cd ntl-x.x.x
# cd src
# ./configure NTL_THREADS=on NTL_THREAD_BOOST=on NTL_EXCEPTIONS=on
# make
# make install
You need to configure and build the CNNinference project. If on a Ubuntu 22.04 x64 you placed the project in the path:
/home/YourName/eclipse-workspace/CNNinference/$ls
data Debug Default HEAAN lib result run src
It might be much easy to configure and build the project.
After that, in the 'Default' folder, you can run our project by the following command lines:
# make clean
# make all
# ./CNNinference
You can change the source codes and then repeat the above lines to debug your own project.
In the 'Default' folder, you can find two running results:
'CNNinferArchiveFile20220407.7z_SetNumThreads(42)_nohup.out'
'CNNinferArchiveFile20220409.7z_SetNumThreads(42)_nohup.out'
Also, you can find the CSV file storing the weights of our well-trained CNN inference model at:
HE.CNNinfer/CNNinference/data/CNNweightsMNIST.csv