A Tensorflow Solution For Mac M1 That Really Works. Install Tensorflow 2.7 On Mac M1 & Mac Pro 3,1 Systems

Danglewood
4 min readFeb 6, 2022
A machine configuration that was struggling to run Tensorflow
Tensorflow deployed in Gamestonk Terminal (https://github.com/GamestonkTerminal/GamestonkTerminal)

If you are one of the many users working with the new generation of CPU/GPU chips in the various Mac computers, you might have run into compatibility issues when attempting to utilize Tensorflow. There are lots of questions online about how to make Tensforflow work on M1 machines, and finally I’m happy to say that I have a solution for machines running Mac OS 11.6.2 or later, regardless of CPU/GPU architecture.

Illegal Operation: 4

That was the error I was getting for months as I tried all the tutorials I could find on this known issue. Nothing was working and it was getting pretty frustrating, but finally I received a tip that set me on the right path. It all starts with your virtual environment handler.

There were many suggestions across the Internet to use MiniConda3, however they all failed to highlight the need to download a very specific version. While there is a version built exclusively for the M1 architecture, what is not obvious is, Tensorflow does not work with the M1 version of MiniConda, Anaconda, Docker, etc. Through all my tinkering, the only way to successfully run Tensorflow on any Mac machine has been with the x86_64 version for Python 3.9.

https://repo.anaconda.com/miniconda/Miniconda3-py39_4.10.3-MacOSX-x86_64.pkg

If not installing Miniconda in a newly sandboxed environment, uninstall any previous versions of Anaconda or Miniconda before continuing. This is compatible with legacy Mac Pro 3,1 towers and M1 machines.

The only other caveat is that the source for the Tensorflow package matters, and the silver bullet is through the source/command: conda install -c conda-forge tensorflow

Installing Tensorflow 2.7 on M1 & Mac Pro 3,1 Towers
Installing Tensorflow 2.7 on M1 & Mac Pro 3,1 Towers

One incredible feature in the Gamestonk Terminal package is the ability to import any CSV file for plotting or, quantitative and predictive analysis. This provides a low-friction entry point into Tensorflow for anyone, not just stock market weirdos. The best part is that Gamestonk Terminal is completely free and MIT Open Source licensed. The installation process is not basic, but it is simple to follow instructions, so I have included the short process below:

  1. Sign up for a GitHub account. If you haven’t already, it’s free. Go to the project: https://github.com/GamestonkTerminal/GamestonkTerminal — give it a star.
  2. Install MiniConda3 using this version: https://repo.anaconda.com/miniconda/Miniconda3-py39_4.10.3-MacOSX-x86_64.pkg
  3. Open a terminal window and verify the installation: conda -V
  4. Copy and paste into the command prompt, selecting yes when prompted: conda install -c anaconda git
  5. Navigate to a folder such as /Users and copy and paste: git clone https://github.com/GamestonkTerminal/GamestonkTerminal.git
  6. Navigate into the cloned project folder: cd GamestonkTerminal/
  7. Copy and paste into the command line: conda env create -n gst — file build/conda/conda-3–8-env.yaml
  8. When finished, enter: conda activate gst
  9. Then enter: poetry install
  10. Install Tensorflow: conda install -c conda-forge tensorflow
  11. Ready to run: python terminal.py
A successful installation of Gamestonk Terminal will require over 2GB of free disk space.

To get to the Tensorflow features, navigate to the stocks menu and load a ticker for analysis.

The stocks menu in Gamestonk Terminal (https://github.com/GamestonkTerminal/GamestonkTerminal)
The prediction menu and the options available for a Recurrent Neural Network engine
A sample output using SPY daily adjusted close price

Use the /custom menu to import a CSV for analysis and plotting.

/custom allows the user to import their own CSV files for analysis and plotting.

While not a requirement, acquiring individual API keys will take full advantage of the large feature sets within the Gamestonk Terminal suite. These keys must be obtained by the individual user for some features to function. The list of APIs used and the links to acquire them for free are found near the bottom of the installation instructions on GitHub: https://github.com/GamestonkTerminal/GamestonkTerminal

API keys used to retrieve data from a variety of sources (https://github.com/GamestonkTerminal/GamestonkTerminal)

The keys can be set and tested by navigating to /keys

The keys manager in Gamestonk Terminal (https://github.com/GamestonkTerminal/GamestonkTerminal)

The maintainers of this project provide great tech support for those in need. Any questions at all can be directed to the Discord server where a friendly member of the community is happy to help and discuss: https://discord.com/invite/Up2QGbMKHY

Follow Gamestonk Terminal on Twitter: https://twitter.com/gamestonkt

Thanks for reading, I hope this helps those struggling with Tensorflow and M1 compatibility problems.

become a writer

--

--

Danglewood

Community Growth Manager @OpenBB https://openbb.co #Free #OpenSource #Python #Finance #Research — on Twitter: @openbb_finance