ssgaalto / minionn Goto Github PK
View Code? Open in Web Editor NEWPrivacy -preserving Neural Networks
License: Apache License 2.0
Privacy -preserving Neural Networks
License: Apache License 2.0
Hi,
After compiling and installing everything I tried to run the test.py as you say. After some compilation (and with some warnings in the middle regarding -Wsign-compare and -Wunused-variable) I received the following error:
/usr/bin/x86_64-linux-gnu-ld: //usr/local/lib/libseal.a(bigpolyarray.cpp.o): relocation R_X86_64_32 against `__pthread_key_create' can not be used when making a shared object; recompile with -fPIC
//usr/local/lib/libseal.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
error: command 'x86_64-linux-gnu-g++' failed with exit status 1
I downloaded SEAL and installed it with PIC. I wander if this issue has to do with PIC, since the computer is telling me to "recompile with -fPIC".
Btw, in the README file, when you say: "and place its SEAL subdirectory in libs (so that libs/SEAL contains the seal subdirectory)", do you mean that we should create a new folder outside lib called libs? Or this is just a typo and you mean actually lib/SEAL? I assumed the last option and I placed SEAL subdirectory inside lib. If not, could this be related with the error above?
Thanks!
I am getting the following error when running test.py:
/tmp/tmpgop0gw3c/minionn/lib/.rendered.minionn.o: In function `bool std::operator==<char, std::char_traits<char>, std::allocator<char> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)':
/usr/include/c++/6/bits/basic_string.h:5101: undefined reference to `pybind11::format_descriptor<long, void>::value'
/usr/bin/ld: /tmp/tmpgop0gw3c/minionn/lib/.rendered.minionn.o: relocation R_X86_64_PC32 against undefined hidden symbol `_ZN8pybind1117format_descriptorIlvE5valueE' can not be used when making a shared object
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
error: command 'x86_64-linux-gnu-g++' failed with exit status 1
I verified the cppimport and pybind11 installation with the example in https://github.com/tbenthompson/cppimport, and pulled a mirrored SEAL v2.3.1 which is the version mentioned in the README. Other package versions are cmake (3.13.2) and gcc/g++ (6.3.0).
Here is my Dockerfile for reproducing the error:
FROM debian:stable
RUN apt-get update && apt-get install -y --no-install-suggests --no-install-recommends \
git vim libssl-dev python3 python3-pip python3-dev libgmp-dev libglib2.0-dev build-essential make
# Get a newer version of cmake for SEAL (>3.10)
RUN echo "deb http://deb.debian.org/debian stretch-backports main" >> /etc/apt/sources.list && \
apt-get update && apt-get -t stretch-backports install -y "cmake"
RUN git clone https://github.com/SSGAalto/minionn && cd minionn && \
git submodule update --init --recursive && cd lib && make all
# Get SEAL 2.3.1
RUN cd minionn/lib && git clone https://github.com/deeptechlabs/SEAL \
&& cd SEAL/SEAL && echo "set(CMAKE_POSITION_INDEPENDENT_CODE ON)" >> CMakeLists.txt && cmake . \
&& make && make install
RUN apt-get install -y python3-setuptools
RUN pip3 install pybind11 cppimport onnx
RUN cd /minionn/lib/ && python3 test.py
I'd appreciate it if you could help me resolve this issue and create the correct environment for this.
Hi,
After successfully testing python3 test.py, test_mpc_server.py and test_mpc_client.py, I got an error on running server.py. What's going on?
Thanks!
ww@ww-VirtualBox:~/minionn_1/lib$ python3 test.py
Matching checksum for /home/ww/minionn_1/lib/minionn.cpp --> not compiling
Successfuly imported c++ code
### Basic maths tests
Testing vector operations
Testing matrix multiplication
Normal matmul (b broadcasted)
Row wise matmul (b.T broadcasted)
Testing extract sum
### Homomorphic + precomputation tests
Created directory assets/
Running simple encrypt/decrypt example
Running homomorphic test with random r and v
Testing for correctness
Testing done.
Cleanup
### All tests passed
ww@ww-VirtualBox:~/minionn_1/lib$ cd ..
ww@ww-VirtualBox:~/minionn_1$ python3 server.py -i models/S.onnx
Segmentation fault (core dumped)
ww@ww-VirtualBox:~/minionn_1$ python3 client.py -i models/S.tensor -o models.out.txt
Segmentation fault (core dumped)
Hi,
when i input "python3 test.py", I got an error. I have modified cfg['parallel'] = False.
[root@localhost lib]# python3 test.py
........
g++ -pthread -shared -B /root/miniconda3/compiler_compat -L/root/miniconda3/lib -Wl,-rpath=/root/miniconda3/lib -Wl,--no-as-needed -Wl,--sysroot=/ /tmp/tmpn14w7ygm/home/sly/minionn/lib/minionnMath.o /tmp/tmpn14w7ygm/home/sly/minionn/lib/minionnCrypto.o /tmp/tmpn14w7ygm/home/sly/minionn/lib/minionnABY.o /tmp/tmpn14w7ygm/home/sly/minionn/lib/.rendered.minionn.o -lseal bin/libaby.a -lssl -lcrypto -lgmp -lgmpxx -lpthread -o /tmp/tmpn14w7ygm/minionn.cpython-37m-x86_64-linux-gnu.so
copying /tmp/tmpn14w7ygm/minionn.cpython-37m-x86_64-linux-gnu.so -> /home/sly/minionn/lib
Segmentation fault (core dumped)
What's going on? Thanks!
i got an error as:
/minionn/lib/minionnCrypto.cpp:18:1: error: ‘PolyCRTBuilder’ does not name a type
PolyCRTBuilder *crtbuilder;
^~~~~~~~~~~~~~
/minionn/lib/minionnCrypto.cpp: In function ‘void init(int)’:
/minionn/lib/minionnCrypto.cpp:25:24: error: no matching function for call to ‘seal::EncryptionParameters::EncryptionParameters()’
EncryptionParameters parms;
i think it is because now the version SEAL2.3.1 is no longer used, and even the earliest SEAL3.1.0 has changed some functions. What could i do to make it work again? maybe a version SEAL2.3.1, but i cannot find it.
In file included from /usr/include/c++/9/cmath:45,
from /usr/include/c++/9/math.h:36,
from ABY/src/abycore/ENCRYPTO_utils/cbitvector.h:24,
from ABY/src/abycore/ENCRYPTO_utils/connection.h:24,
from ABY/src/abycore/ENCRYPTO_utils/connection.cpp:19:
/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h:24:20: error: conflicting declaration of C function ‘float fadd(double, double)’
24 | __MATHCALL_NARROW (__MATHCALL_NAME (add), __MATHCALL_REDIR_NAME (add), 2);
I'm sorry to bother you, but I was wondering if you could help me with this problem.
Hi, I was trying to run the minionn framework but during compilation I received the following error:
ar: bin/libaby.a: No such file or directory
Makefile:87: recipe for target 'bin/libaby.a' failed
make: *** [bin/libaby.a] Error 1
On the terminal I typed the following:
sudo apt install libssl-dev libgmp-dev libglib2.0-dev
pip install pybind11 cppimport
git clone --recursive https://github.com/SSGAalto/minionn
cd minionn/lib
make all
After some compilation, the file ABY/bin/libaby.a was not found. In fact on this directory ABY/bin there is just the circ folder.
Am I missing something?
Any help is appreciated,
Manuel
Hi, i have finished to input the command about ABY and SEAL, and there is no errors during the install. but when i input "python3 test.py",the terminal show nothing but several command as follow:
$cd lib
$python3 test.py
Compiling /home/yyy/minionn/minionn-master/lib/minionn.cpp
running build_ext
building 'minionn' extension
creating /tmp/tmps8_d88cd/home
creating /tmp/tmps8_d88cd/home/yyy
creating /tmp/tmps8_d88cd/home/yyy/minionn
creating /tmp/tmps8_d88cd/home/yyy/minionn/minionn-master
creating /tmp/tmps8_d88cd/home/yyy/minionn/minionn-master/lib
and i waited a long time but there isn't any change.
i don't know why....
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.