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