← all repositories
lhelontra/tensorflow-on-arm

When Google didn't ship ARM wheels, someone built a factory

A build-script collection that cross-compiles TensorFlow for Raspberry Pi, RK3399, and other ARM boards, with or without Docker.

tensorflow-on-arm
Velocity · 7d
+0.3
★ / day
Trend
steady
star history

What it does

tensorflow-on-arm is a set of shell scripts and Dockerfiles that automate compiling TensorFlow from source for ARM devices. It handles Bazel configuration, board-specific tuning, and spits out a pip wheel you can install on a Pi or an Odroid. The README is essentially a makefile in prose form: install these deps, run this script, collect your wheel.

The interesting bit

This repo predates official ARM support and kept the lights on for hobbyists who wanted Keras on a Pi without waiting for Google. Even after TensorFlow 1.9 added official Raspberry Pi wheels, the project kept publishing newer builds and expanded to boards like the RK3399. The Dockerized cross-compilation path is the practical core: build on x86, deploy on ARM, skip the four-hour compile on a overheating board.

Key highlights

  • Pre-made config files for rpi.conf, rk3399.conf, and others in build_tensorflow/configs/
  • Docker-based builds for Python 3.7 (Debian Buster) and 3.8 (Bullseye)
  • Cross-compilation support with armhf multiarch packages
  • Optional noclean flag for debugging Bazel without full rebuilds
  • Still maintains “up-to-date” wheels even after official support landed

Caveats

  • The README mentions Python 2.7 support, which is long past end-of-life
  • No stated TensorFlow version compatibility matrix; you find out by trying
  • Last significant README update appears to reference TensorFlow 1.9 era; freshness of current builds is unclear from the sources alone

Verdict

Grab this if you’re targeting a niche ARM SBC that Google ignores, or if you need custom Bazel flags for your board. Skip it if you’re on a vanilla Raspberry Pi running a recent OS — pip install tensorflow probably already works.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.