Tensorflow packages often assume the processor supports avx2. Our Xeon process does not, and requires tensorflow to be compiled without this flag.
Note that you need to upgrade to at least Debian 10 prior to compiling
Start Building
Verify dependencies
sudo apt install python3-dev python3-pip
Install Dependencies
sudo pip3 install numpy keras keras_preprocessing
Install Bazel using Bazelisk
sudo npm install -g @bazel/bazelisk
Checkout Tensorflow
git clone https://github.com/tensorflow/tensorflow.git cd tensorflow
Configure
Keep all defaults
./configure
Debian 10 Error on Compile
Almost at the end, I got a compile error.
internal compiler error: in emit_move_insn, at expr.c:3547 values[i] = coeff(index+i);
I fixed it with this suggestion:
With this workaround, you can compile tensorflow with gcc 6.3 In external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h:801 (you can find the file in a subdirectory of ~/.cache/bazel ) replace values[i] = internal::InnerMostDimReducer<Self, Op>::reduce(*this, firstIndex + i * num_values_to_reduce, num_values_to_reduce, reducer); by two instructions instead Self::CoeffReturnType a = internal::InnerMostDimReducer<Self, Op>::reduce(*this, firstIndex + i * num_values_to_reduce, num_values_to_reduce, reducer); values[i] = a;
Compile
The jobs parameter may be needed to reduce memory dependencies on some servers
bazel build --jobs 2 //tensorflow/tools/pip_package:build_pip_package
I got compilation errors at one point and some guidance said to add the following to the command to reduce memory consumption:
--local_ram_resources 2048
or
bazel build --jobs 2 --local_ram_resources 2048 //tensorflow/tools/pip_package:build_pip_package