Tensorflow packages often assume the processor supports avx2. Our Xeon process does not, and requires tensorflow to be compiled without this flag.
Verify dependencies
sudo apt install python3-dev python3-pip
Install Dependencies
sudo pip3 install numpy
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
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
Almost at the end, I got a compile error. 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;